Files
esp32-zigbee/main/device_config.h
T
2026-01-15 23:11:17 +00:00

74 lines
3.1 KiB
C

/* Device Configuration - Permite configurar diferentes tipos de dispositivos Zigbee */
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/* ========================= SELEÇÃO DO TIPO DE DISPOSITIVO ========================= */
/* Descomente APENAS UMA das opções abaixo para definir o tipo de dispositivo */
#define DEVICE_TYPE_RELAY /* Relé controlável (on/off light) */
// #define DEVICE_TYPE_TEMP_SENSOR /* Sensor de temperatura */
// #define DEVICE_TYPE_DOOR_SENSOR /* Sensor de porta/janela */
// #define DEVICE_TYPE_MOTION_SENSOR /* Sensor de movimento */
/* ========================= CONFIGURAÇÃO DE HARDWARE ========================= */
/* GPIOs comuns (usados por todos os tipos) */
#define GPIO_BUTTON_PAIRING 9 /* Botão para pareamento/factory reset */
#define GPIO_LED_RGB 8 /* LED RGB indicador de status */
/* GPIOs específicos por tipo de dispositivo */
#ifdef DEVICE_TYPE_RELAY
#define GPIO_OUTPUT_RELAY 4 /* Relé de saída */
#define HAS_BUTTON_TOGGLE 1 /* Botão também faz toggle do relé */
#endif
#ifdef DEVICE_TYPE_TEMP_SENSOR
#define GPIO_SENSOR_I2C_SDA 6 /* I2C SDA para sensor de temperatura */
#define GPIO_SENSOR_I2C_SCL 7 /* I2C SCL para sensor de temperatura */
#define SENSOR_UPDATE_INTERVAL 30000 /* Intervalo de atualização em ms */
#endif
#ifdef DEVICE_TYPE_DOOR_SENSOR
#define GPIO_SENSOR_REED 5 /* Reed switch para sensor de porta */
#define HAS_TAMPER_DETECTION 0 /* Detecção de violação (anti-tamper) */
#endif
#ifdef DEVICE_TYPE_MOTION_SENSOR
#define GPIO_SENSOR_PIR 5 /* Sensor PIR para detecção de movimento */
#define PIR_TIMEOUT_MS 60000 /* Timeout para resetar movimento detectado */
#endif
/* ========================= FUNCIONALIDADES OPCIONAIS ========================= */
#define FEATURE_LED_INDICATOR 1 /* Habilita LED RGB indicador */
#define FEATURE_LONG_PRESS_RESET 1 /* Habilita factory reset por long press (5s) */
#define FEATURE_OTA_UPDATE 0 /* Habilita atualização Over-The-Air */
/* ========================= CONFIGURAÇÕES AVANÇADAS ========================= */
#define BUTTON_LONG_PRESS_MS 5000 /* Tempo para long press (factory reset) */
#define LED_BRIGHTNESS_NORMAL 50 /* Brilho normal do LED (0-255) */
#define LED_BRIGHTNESS_DIM 10 /* Brilho reduzido do LED (0-255) */
/* ========================= VALIDAÇÃO ========================= */
/* Verifica se pelo menos um tipo de dispositivo foi selecionado */
#if !defined(DEVICE_TYPE_RELAY) && !defined(DEVICE_TYPE_TEMP_SENSOR) && \
!defined(DEVICE_TYPE_DOOR_SENSOR) && !defined(DEVICE_TYPE_MOTION_SENSOR)
#error "Nenhum tipo de dispositivo selecionado! Defina um DEVICE_TYPE_* em device_config.h"
#endif
/* Verifica se mais de um tipo foi selecionado */
#if (defined(DEVICE_TYPE_RELAY) + defined(DEVICE_TYPE_TEMP_SENSOR) + \
defined(DEVICE_TYPE_DOOR_SENSOR) + defined(DEVICE_TYPE_MOTION_SENSOR)) > 1
#error "Múltiplos tipos de dispositivo selecionados! Defina apenas um DEVICE_TYPE_*"
#endif
#ifdef __cplusplus
}
#endif