|
idfxx 1.0.0
Modern C++23 components for ESP-IDF
|
Type-safe DS18x20 1-Wire temperature sensor driver for ESP32. More...
Namespaces | |
| namespace | idfxx |
| namespace | idfxx::ds18x20 |
| DS18x20 1-Wire temperature sensor classes and utilities. | |
Classes | |
| class | idfxx::ds18x20::device |
| DS18x20 1-Wire temperature sensor device. More... | |
Enumerations | |
| enum class | idfxx::ds18x20::family : uint8_t { idfxx::ds18x20::family::ds18s20 = 0x10 , idfxx::ds18x20::family::ds1822 = 0x22 , idfxx::ds18x20::family::ds18b20 = 0x28 , idfxx::ds18x20::family::max31850 = 0x3B } |
| DS18x20 device family identifiers. More... | |
| enum class | idfxx::ds18x20::resolution : uint8_t { idfxx::ds18x20::resolution::bits_9 = 0x1F , idfxx::ds18x20::resolution::bits_10 = 0x3F , idfxx::ds18x20::resolution::bits_11 = 0x5F , idfxx::ds18x20::resolution::bits_12 = 0x7F } |
| DS18B20 ADC resolution configuration. More... | |
Functions | |
| std::vector< device > | idfxx::ds18x20::scan_devices (idfxx::gpio pin, size_t max_devices=8) |
| Scans for DS18x20 devices on a 1-Wire bus. | |
| std::vector< thermo::millicelsius > | idfxx::ds18x20::measure_and_read_multi (std::span< const device > devices) |
| Measures and reads temperatures from multiple devices. | |
| result< std::vector< device > > | idfxx::ds18x20::try_scan_devices (idfxx::gpio pin, size_t max_devices=8) |
| Scans for DS18x20 devices on a 1-Wire bus. | |
| result< std::vector< thermo::millicelsius > > | idfxx::ds18x20::try_measure_and_read_multi (std::span< const device > devices) |
| Measures and reads temperatures from multiple devices. | |
Type-safe DS18x20 1-Wire temperature sensor driver for ESP32.
Provides temperature measurement and scratchpad access for DS18S20, DS1822, DS18B20, and MAX31850 1-Wire temperature sensors.
Depends on Core Utilities for error handling and GPIO Component for pin configuration.
|
strong |
DS18x20 device family identifiers.
Each 1-Wire device family has a unique 8-bit code stored in the low byte of the device's ROM address.
| Enumerator | |
|---|---|
| ds18s20 | DS18S20 (9-bit, +/-0.5C) |
| ds1822 | DS1822 (12-bit, +/-2C) |
| ds18b20 | DS18B20 (12-bit, +/-0.5C) |
| max31850 | MAX31850 (14-bit, +/-0.25C) |
Definition at line 45 of file ds18x20.hpp.
|
strong |
DS18B20 ADC resolution configuration.
Values correspond to the configuration register byte in the scratchpad. Higher resolution provides better precision but increases conversion time.
Definition at line 59 of file ds18x20.hpp.
|
inline |
Measures and reads temperatures from multiple devices.
Sends a measure command for each bus and reads the temperature from each device.
| devices | Devices to read from. |
| std::system_error | on failure. |
Definition at line 128 of file ds18x20.hpp.
References idfxx::ds18x20::try_measure_and_read_multi(), and idfxx::unwrap().
|
inline |
Scans for DS18x20 devices on a 1-Wire bus.
Discovers all DS18x20-family devices connected to the specified GPIO pin.
| pin | GPIO pin connected to the 1-Wire bus. |
| max_devices | Maximum number of devices to discover. |
| std::system_error | on failure. |
Definition at line 124 of file ds18x20.hpp.
References idfxx::ds18x20::try_scan_devices(), and idfxx::unwrap().
| result< std::vector< thermo::millicelsius > > idfxx::ds18x20::try_measure_and_read_multi | ( | std::span< const device > | devices | ) |
Measures and reads temperatures from multiple devices.
Sends a measure command for each bus and reads the temperature from each device.
| devices | Devices to read from. |
Referenced by idfxx::ds18x20::measure_and_read_multi().
| result< std::vector< device > > idfxx::ds18x20::try_scan_devices | ( | idfxx::gpio | pin, |
| size_t | max_devices = 8 |
||
| ) |
Scans for DS18x20 devices on a 1-Wire bus.
Discovers all DS18x20-family devices connected to the specified GPIO pin.
| pin | GPIO pin connected to the 1-Wire bus. |
| max_devices | Maximum number of devices to discover. |
| invalid_state | If the pin is not connected. |
Referenced by idfxx::ds18x20::scan_devices().