58 lines
1.3 KiB
C
58 lines
1.3 KiB
C
/* DHT11 Temperature and Humidity Sensor Driver */
|
|
|
|
#pragma once
|
|
|
|
#include "esp_err.h"
|
|
#include "driver/gpio.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Estrutura para armazenar leitura do DHT11
|
|
*/
|
|
typedef struct {
|
|
float temperature; /* Temperatura em °C */
|
|
float humidity; /* Umidade relativa em % */
|
|
bool valid; /* Indica se a leitura é válida */
|
|
} dht11_reading_t;
|
|
|
|
/**
|
|
* @brief Inicializa o sensor DHT11
|
|
*
|
|
* @param gpio_num Número do GPIO conectado ao pino DATA do DHT11
|
|
* @return ESP_OK em caso de sucesso
|
|
*/
|
|
esp_err_t dht11_init(gpio_num_t gpio_num);
|
|
|
|
/**
|
|
* @brief Lê temperatura e umidade do DHT11
|
|
*
|
|
* @param reading Ponteiro para estrutura que receberá os dados
|
|
* @return ESP_OK em caso de sucesso, ESP_ERR_TIMEOUT se falhar
|
|
*
|
|
* @note O DHT11 requer intervalo mínimo de 1 segundo entre leituras
|
|
*/
|
|
esp_err_t dht11_read(dht11_reading_t *reading);
|
|
|
|
/**
|
|
* @brief Obtém apenas a temperatura do DHT11
|
|
*
|
|
* @param temperature Ponteiro para receber temperatura em °C
|
|
* @return ESP_OK em caso de sucesso
|
|
*/
|
|
esp_err_t dht11_read_temperature(float *temperature);
|
|
|
|
/**
|
|
* @brief Obtém apenas a umidade do DHT11
|
|
*
|
|
* @param humidity Ponteiro para receber umidade em %
|
|
* @return ESP_OK em caso de sucesso
|
|
*/
|
|
esp_err_t dht11_read_humidity(float *humidity);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|