feat: Adiciona suporte para dispositivo combo (relé + sensor de temperatura/umidade) e driver para sensor ultrassônico JSN-SR04T

This commit is contained in:
2026-01-17 00:34:24 +00:00
parent fcecd9d273
commit 5c063ff367
32 changed files with 467 additions and 9 deletions
+66
View File
@@ -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