feat: Adiciona suporte para controle de LED RGB e animações de estado

This commit is contained in:
2026-01-15 22:55:23 +00:00
parent a05ac96d97
commit 2b9642ebd2
9 changed files with 354 additions and 11 deletions
+8 -7
View File
@@ -41,6 +41,7 @@
#include "freertos/queue.h"
#include "esp_zigbee_core.h"
#include "switch_driver.h"
#include "led_indicator.h"
/* Estado atual do relay */
static bool relay_state = false;
@@ -123,13 +124,9 @@ static void switch_driver_button_detected(void *arg)
if ((current_time - press_start_time) >= LONG_PRESS_DURATION_MS) {
ESP_LOGI(TAG, "Botão pressionado por 5 segundos - Iniciando factory reset...");
ESP_LOGI(TAG, "Dispositivo entrará em modo de pareamento após reiniciar");
/* Piscar relay para feedback visual */
for (int i = 0; i < 5; i++) {
relay_set_state(true);
vTaskDelay(pdMS_TO_TICKS(100));
relay_set_state(false);
vTaskDelay(pdMS_TO_TICKS(100));
}
/* Animação arco-íris no LED para feedback visual */
led_indicator_set_state(LED_FACTORY_RESET);
vTaskDelay(pdMS_TO_TICKS(2000)); /* 2 segundos de animação */
/* Factory reset - limpa NVS e reinicia */
esp_zb_factory_reset();
switch_state = SWITCH_IDLE;
@@ -229,6 +226,10 @@ void relay_set_state(bool state)
{
relay_state = state;
gpio_set_level(GPIO_OUTPUT_RELAY, state ? 1 : 0);
/* Atualiza LED para refletir estado do relay */
led_indicator_set_state(state ? LED_RELAY_ON : LED_RELAY_OFF);
ESP_LOGI(TAG, "Relay %s", state ? "LIGADO" : "DESLIGADO");
}