Loading...
Searching...
No Matches
DHT Family of Humidity and Temperature Sensors

Device driver for the DHT Family of humidity and temperature sensors. More...

Detailed Description

Device driver for the DHT Family of humidity and temperature sensors.

This driver provides [S]ensor [A]ctuator [U]ber [L]ayer capabilities.

Files

file  dht_params.h
 Default configuration for DHT devices.
 
file  dht.h
 Device driver interface for the DHT family of humidity and temperature sensors.
 

Data Structures

struct  dht_data_t
 Data type for storing DHT sensor readings. More...
 
struct  dht_params_t
 Configuration parameters for DHT devices. More...
 
struct  dht_t
 Device descriptor for DHT sensor devices. More...
 

Enumerations

enum  { DHT_OK = 0 , DHT_NOCSUM = -EIO , DHT_TIMEOUT = -ETIMEDOUT }
 Possible return codes. More...
 
enum  dht_type_t {
  DHT11 , DHT11_2022 , DHT22 , DHT21 = DHT22 ,
  AM2301 = DHT22
}
 Device type of the DHT device. More...
 

Functions

int dht_init (dht_t *dev, const dht_params_t *params)
 Initialize a new DHT device.
 
int dht_read (dht_t *dev, int16_t *temp, int16_t *hum)
 get a new temperature and/or humidity value from the device
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Possible return codes.

Deprecated:
The functions use errno codes instead now
Enumerator
DHT_OK 

all good

DHT_NOCSUM 

checksum error

DHT_TIMEOUT 

communication timed out

Definition at line 48 of file dht.h.

◆ dht_type_t

enum dht_type_t

Device type of the DHT device.

Enumerator
DHT11 

Older DHT11 variants with either 1 °C or 0.1 °C resolution.

DHT11_2022 

New DHT11 variant with 0.01 °C resolution.

DHT22 

DHT22 device identifier.

DHT21 

DHT21 device identifier.

AM2301 

AM2301 device identifier.

Definition at line 65 of file dht.h.

Function Documentation

◆ dht_init()

int dht_init ( dht_t dev,
const dht_params_t params 
)

Initialize a new DHT device.

Parameters
[out]devdevice descriptor of a DHT device
[in]paramsconfiguration parameters
Return values
0Success
-EXDEVA low level on the input after the sensor's startup time indicates that either no sensor or pull-up resistor is connected, or the sensor is physically poorly connected or powered.
-ENODEVThe sensor did not respond to the transmission of a start signal. Likely there were a pull-up resistor but no sensor connected on the data line.

◆ dht_read()

int dht_read ( dht_t dev,
int16_t *  temp,
int16_t *  hum 
)

get a new temperature and/or humidity value from the device

Note
if reading fails or checksum is invalid, no new values will be written into the result values
Parameters
[in]devdevice descriptor of a DHT device
[out]temptemperature value [in °C * 10^-1], may be NULL if not needed
[out]humrelative humidity value [in percent * 10^-1], may be NULL if not needed
Return values
0Success
-ENODEVThe sensor did not respond to the transmission of a start signal. Likely the RESPAWN_TIMEOUT is insufficient.
-EIOThe received and the expected checksum didn't match.
-ENOSYSUnable to parse the received data. Likely the data format is not implemented.
-ERANGETemperature low byte >= 10. Likely misconfigured device type (DHT11_2022).