feat: Adiciona suporte para dispositivo combo (relé + sensor de temperatura/umidade) e driver para sensor ultrassônico JSN-SR04T
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
/* JSN-SR04T Ultrasonic Distance Sensor Driver */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "esp_err.h"
|
||||
#include "driver/gpio.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief Configuração do sensor JSN-SR04T
|
||||
*/
|
||||
typedef struct {
|
||||
gpio_num_t trigger_gpio; /* GPIO para pino TRIGGER */
|
||||
gpio_num_t echo_gpio; /* GPIO para pino ECHO */
|
||||
uint32_t max_distance_cm; /* Distância máxima em cm (padrão: 400) */
|
||||
uint32_t timeout_us; /* Timeout em microsegundos */
|
||||
} jsn_sr04_config_t;
|
||||
|
||||
/**
|
||||
* @brief Leitura do sensor
|
||||
*/
|
||||
typedef struct {
|
||||
float distance_cm; /* Distância medida em centímetros */
|
||||
uint32_t echo_time_us; /* Tempo do pulso echo em microsegundos */
|
||||
bool valid; /* Indica se a leitura é válida */
|
||||
} jsn_sr04_reading_t;
|
||||
|
||||
/**
|
||||
* @brief Inicializa o sensor JSN-SR04T
|
||||
*
|
||||
* @param config Configuração do sensor
|
||||
* @return ESP_OK em caso de sucesso
|
||||
*/
|
||||
esp_err_t jsn_sr04_init(const jsn_sr04_config_t *config);
|
||||
|
||||
/**
|
||||
* @brief Lê a distância do sensor
|
||||
*
|
||||
* @param reading Ponteiro para estrutura que receberá os dados
|
||||
* @return ESP_OK em caso de sucesso, ESP_ERR_TIMEOUT se não houver resposta
|
||||
*
|
||||
* @note Aguarda pelo menos 60ms entre leituras para melhor precisão
|
||||
*/
|
||||
esp_err_t jsn_sr04_read(jsn_sr04_reading_t *reading);
|
||||
|
||||
/**
|
||||
* @brief Obtém apenas a distância em cm
|
||||
*
|
||||
* @param distance_cm Ponteiro para receber distância
|
||||
* @return ESP_OK em caso de sucesso
|
||||
*/
|
||||
esp_err_t jsn_sr04_get_distance(float *distance_cm);
|
||||
|
||||
/**
|
||||
* @brief Desabilita o sensor e libera recursos
|
||||
*
|
||||
* @return ESP_OK em caso de sucesso
|
||||
*/
|
||||
esp_err_t jsn_sr04_deinit(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user