|
1 # esp32-ds18b20 |
|
2 |
|
3 ## Introduction |
|
4 |
|
5 This is a ESP32-compatible C component for the Maxim Integrated DS18B20 Programmable Resolution 1-Wire Digital Thermometer device. |
|
6 |
|
7 It supports multiple devices on the same 1-Wire bus. |
|
8 |
|
9 It is written and tested for v2.1 and v3.0 of the [ESP-IDF](https://github.com/espressif/esp-idf) environment, using the xtensa-esp32-elf toolchain (gcc version 5.2.0). |
|
10 |
|
11 ## Dependencies |
|
12 |
|
13 Requires [esp32-owb](https://github.com/DavidAntliff/esp32-owb). |
|
14 |
|
15 ## Example |
|
16 |
|
17 See [esp32-ds18b20-example](https://github.com/DavidAntliff/esp32-ds18b20-example) for an example that supports single and multiple devices on a single bus. |
|
18 |
|
19 ## Features |
|
20 |
|
21 In cooperation with the underlying esp32-owb component, this component includes: |
|
22 |
|
23 * External power supply mode (parasitic mode not yet supported). |
|
24 * Static (stack-based) or dynamic (malloc-based) memory model. |
|
25 * No globals - support any number of DS18B20 devices on any number of 1-Wire buses simultaneously. |
|
26 * 1-Wire device detection and validation, including search for multiple devices on a single bus. |
|
27 * Addressing optimisation for a single (solo) device on a bus. |
|
28 * CRC checks on temperature data. |
|
29 * Programmable temperature measurement resolution (9, 10, 11 or 12-bit resolution). |
|
30 * Temperature conversion and retrieval. |
|
31 * Separation of conversion and temperature retrieval to allow for simultaneous conversion across multiple devices. |
|
32 |
|
33 ## Documentation |
|
34 |
|
35 Automatically generated API documentation (doxygen) is available [here](https://davidantliff.github.io/esp32-ds18b20/index.html). |
|
36 |
|
37 ## Source Code |
|
38 |
|
39 The source is available from [GitHub](https://www.github.com/DavidAntliff/esp32-ds18b20). |
|
40 |
|
41 ## License |
|
42 |
|
43 The code in this project is licensed under the MIT license - see LICENSE for details. |
|
44 |
|
45 ## Links |
|
46 |
|
47 * [DS18B20 Datasheet](http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf) |
|
48 * [1-Wire Communication Through Software](https://www.maximintegrated.com/en/app-notes/index.mvp/id/126) |
|
49 * [1-Wire Search Algorithm](https://www.maximintegrated.com/en/app-notes/index.mvp/id/187) |
|
50 * [Espressif IoT Development Framework for ESP32](https://github.com/espressif/esp-idf) |
|
51 |
|
52 ## Acknowledgements |
|
53 |
|
54 Parts of this code are based on references provided to the public domain by Maxim Integrated. |
|
55 |
|
56 "1-Wire" is a registered trademark of Maxim Integrated. |
|
57 |
|
58 ## Roadmap |
|
59 |
|
60 The following features are anticipated but not yet implemented: |
|
61 |
|
62 * Concurrency support (multiple tasks accessing devices on the same bus). |
|
63 * Alarm support. |
|
64 * EEPROM support. |
|
65 * Parasitic power support. |