CuVoodoo STM32F1 firmware template
Macros | Enumerations | Functions | Variables
sensor_dht22.c File Reference

library to query measurements from Aosong DHT22 temperature and relative humidity sensor (code) More...

Go to the source code of this file.

Macros

#define SENSOR_DHT22_TIMER   4
 timer peripheral
 
#define SENSOR_DHT22_CHANNEL   3
 channel used as input capture
 
#define SENSOR_DHT22_JITTER   0.2
 signal timing jitter tolerated in timing
 

Enumerations

enum  sensor_dht22_state_t {
  SENSOR_DHT22_OFF, SENSOR_DHT22_HOST_START, SENSOR_DHT22_HOST_STARTED, SENSOR_DHT22_SLAVE_START,
  SENSOR_DHT22_SLAVE_BIT, SENSOR_DHT22_MAX
}
 communication states
 

Functions

static void sensor_dht22_reset (void)
 reset all states
 
void sensor_dht22_setup (void)
 setup peripherals to communicate with sensor
 
bool sensor_dht22_measurement_request (void)
 request measurement from sensor More...
 
struct sensor_dht22_measurement_t sensor_dht22_measurement_decode (void)
 decode received measurement More...
 
void TIM_ISR() SENSOR_DHT22_TIMER (void)
 interrupt service routine called for timer
 

Variables

volatile bool sensor_dht22_measurement_received = false
 a measurement response has been received
 
enum sensor_dht22_state_t sensor_dht22_state = SENSOR_DHT22_OFF
 current communication state
 
volatile uint8_t sensor_dht22_bit = 0
 the bit number being sent (MSb first), up to 40
 
volatile uint8_t sensor_dht22_bits [5] = {0}
 the 40 bits (5 bytes) being sent by the device
 

Detailed Description

library to query measurements from Aosong DHT22 temperature and relative humidity sensor (code)

Author
King Kévin kingk.nosp@m.evin.nosp@m.@cuvo.nosp@m.odoo.nosp@m..info
Date
2017
Note
peripherals used: GPIO and timer timer peripheral used to measure signal timing for bit decoding
the DHT22 protocol is very similar but nit completely compatible with the DHT22 protocol: only 1 ms initial host pull low is required (vs. 18 ms), the data is encoded as int16_t (vs. uint8_t), and the signal has more jitter

Definition in file sensor_dht22.c.

Function Documentation

◆ sensor_dht22_measurement_decode()

struct sensor_dht22_measurement_t sensor_dht22_measurement_decode ( void  )

decode received measurement

Returns
decoded measurement (0xff,0xff if invalid)

Definition at line 126 of file sensor_dht22.c.

◆ sensor_dht22_measurement_request()

bool sensor_dht22_measurement_request ( void  )

request measurement from sensor

Returns
request started successfully

Definition at line 104 of file sensor_dht22.c.