Test program for my solar controller breadboard
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
David Antliff 4530a79950 Tidy up. 8 years ago
doc Remove _static headers as hidden structs don't work so well in an embedded environment. Add doxygen documentation. 8 years ago
main Tidy up. 8 years ago
.gitignore DS18B20 initial commit. 8 years ago
.travis.yml Travis WIP. 8 years ago
LICENSE Add owb_verify_rom(). Add MIT license to all source files. 8 years ago
Makefile DS18B20 initial commit. 8 years ago
README.md Tidy up. 8 years ago
sdkconfig Factor out 1-Wire bus functionality. 8 years ago

README.md

ESP32-DS18B20

Introduction

This is a ESP32-compatible C library for the Maxim Integrated DS18B20 Programmable Resolution 1-Wire Digital Thermometer device.

It supports multiple devices on the same 1-Wire bus.

It is written and tested for the ESP-IDF environment, using the xtensa-esp32-elf toolchain (gcc version 5.2.0).

Supported Features

  • External power supply mode (parasitic mode not yet supported).
  • Static (stack-based) or dynamic (malloc-based) memory model.
  • 1-Wire device detection and validation, including search for multiple devices on a single bus.
  • 1-Wire bus operations including multi-byte read and write operations.
  • CRC checks on ROM code and temperature data.
  • Temperature convertion and retrieval.

Documentation

Automatically generated API documentation (doxygen) is available here.

Source Code

The source is available from GitHub.

License

The code in this project is licensed under the MIT license - see LICENSE for details.

Acknowledgements

Parts of this code are based on references provided to the public domain by Maxim Integrated.

"1-Wire" is a registered trademark of Maxim Integrated.

Roadmap

The following features are anticipated but not yet implemented:

  • Simultaneous temperature conversion from multiple devices.
  • Device configuration including resolution.
  • Alarm support.
  • Single device optimisations - avoid ROM addressing when only one device exists.
  • Parasitic power support.
  • EEPROM support.