/** * @file config.h * @brief 全局配置文件 - 五劳无感康养监测系统 * * 协议版本: V0.08 (2026-07-17) * 包含: 硬件引脚定义、WiFi/MQTT 默认参数、 * 雷达协议常量、告警阈值、任务配置等 */ #ifndef CONFIG_H #define CONFIG_H #include // ============================================================ // 1. 硬件引脚定义 (ESP32-S3) // ============================================================ // --- R60ABD1 毫米波雷达 --- #define RADAR_UART_PORT Serial2 #define RADAR_RX_PIN 17 #define RADAR_TX_PIN 1 // UART 发送 (从18挪到1) #define RADAR_BAUD_RATE 115200 // --- 雷达备用 GPIO --- #define RADAR_GPIO1_PIN 2 // 活跃/静止指示 (从10挪到2) #define RADAR_GPIO2_PIN 11 // 有人/无人指示 // --- DHT11 温湿度传感器 --- #define DHT11_PIN 4 // 温湿度传感器 // --- 水浸传感器 --- #define WATER_SENSOR_PIN 6 // 数字输入, 低电平=有水 // --- 蜂鸣器 (PWM) --- #define BUZZER_PIN 7 #define BUZZER_PWM_CHANNEL 0 #define BUZZER_PWM_FREQ 2000 #define BUZZER_PWM_RESOLUTION 8 // --- 配网按钮 --- #define CONFIG_BUTTON_PIN 0 // 长按 3 秒复位 WiFi #define BUTTON_LONG_PRESS_MS 3000 // --- 状态指示灯 --- #define LED_WIFI_PIN 8 // 蓝色 - WiFi 状态 #define LED_ALARM_PIN 9 // 红色 - 报警指示 // --- OLED 显示屏 (SSD1306 128x64 I2C) --- #define OLED_SDA_PIN 14 // I2C 数据线 #define OLED_SCL_PIN 15 // I2C 时钟线 // --- 交互按钮 --- #define BTN_PROVISION_PIN 16 // 擦除WiFi配网按钮 (长按3秒) #define BTN_ALARM_DISMISS_PIN 13 // 解除报警按钮 #define BTN_PAGE_SWITCH_PIN 10 // 翻页按钮 #define BTN_DEBOUNCE_MS 50 // 去抖时间 #define BTN_LONG_PRESS_MS 3000 // 长按判定 // ============================================================ // 2. 设备标识 (协议规范 §2) // ============================================================ #define SALEID_DEFAULT "10100001" // 站点/系统编号 #define GATEID_DEFAULT "10100001001" // 网关唯一编号 #define METER_ID_DEFAULT "ENV001" // 感知节点ID (卧室=ENV001, 卫生间=ENV002, 客厅=ENV003) #define METER_NAME_DEFAULT "RadarDHT11" // 设备型号名称 #define FW_VERSION "V1.0.0" // ============================================================ // 3. WiFi 默认配置 (配网使用) // ============================================================ #define WIFI_AP_SSID "HealthMonitor-Setup" #define WIFI_AP_PASSWORD "12345678" #define WIFI_CONFIG_TIMEOUT 300 #define WIFI_CONNECT_TIMEOUT 15 #define WIFI_RETRY_INTERVAL 10000 // ============================================================ // 4. MQTT 默认配置 (协议规范 §2) // ============================================================ #define MQTT_DEFAULT_SERVER "202.110.234.102" #define MQTT_DEFAULT_PORT 8000 #define MQTT_DEFAULT_PORT_STR "8000" // WiFiManager 参数用字符串 #define MQTT_DEFAULT_USER "test" #define MQTT_DEFAULT_PASS "testtest" #define MQTT_DEFAULT_DEVICE "10100001001" // 默认网关ID = gateid #define MQTT_DEFAULT_ENV "主卧" // 默认环境备注 #undef MQTT_KEEPALIVE #define MQTT_KEEPALIVE 30 // 30秒 (协议规范) #define MQTT_RECONNECT_MIN 1000 #define MQTT_RECONNECT_MAX 60000 // ============================================================ // 5. MQTT 主题定义 (协议规范 §3) // ============================================================ // --- 上行主题 (设备 → 服务端) --- #define MQTT_TOPIC_REPORT_ALLPOINTS "report/allpoints" // 全量遥测上报 QoS0 #define MQTT_TOPIC_STATUS_ONLINE "status/%s/online" // 上线通知 QoS1 #define MQTT_TOPIC_STATUS_OFFLINE "status/%s/offline" // 离线遗嘱 QoS1 #define MQTT_TOPIC_STATUS_PROVISION "status/%s/provision" // 配网状态 QoS1 #define MQTT_TOPIC_RESPONSE_CMD "response/%s/cmd" // 指令响应 QoS1 #define MQTT_TOPIC_RESPONSE_PROVISION "response/%s/provision" // 配网响应 QoS1 // --- 下行主题 (服务端 → 设备) --- #define MQTT_TOPIC_CMD_ALARM "cmd/%s/alarm" // 告警指令 QoS1 #define MQTT_TOPIC_CMD_ALARM_RESTORE "cmd/%s/alarm/restore" // 告警恢复 QoS1 #define MQTT_TOPIC_CMD_CONTROL "cmd/%s/control" // 控制指令 QoS1 #define MQTT_TOPIC_CMD_PROVISION_WIFI "cmd/%s/provision/wifi" // WiFi配网 QoS1 // ============================================================ // 6. 上报配置 (协议规范 §4.1, §7.2) // ============================================================ #define REPORT_INTERVAL_MS 1000 // 遥测上报周期 1秒 #define REPORT_QOS 0 // 遥测 QoS 0 #define STATUS_QOS 1 // 状态/响应 QoS 1 // ============================================================ // 7. 报警阈值 (协议规范 §6, 服务端判定用) // ============================================================ #define HEART_RATE_MIN 50 #define HEART_RATE_MAX 120 #define BREATH_RATE_MIN 8 #define BREATH_RATE_MAX 24 #define TEMP_LOW 5.0f #define TEMP_HIGH 45.0f #define HUMI_LOW 15.0f #define HUMI_HIGH 90.0f #define WATER_DEBOUNCE_MS 50 // ============================================================ // 8. 任务配置 // ============================================================ #define RADAR_TASK_STACK 4096 #define RADAR_TASK_PRIORITY 5 #define RADAR_TASK_CORE 0 #define MQTT_TASK_STACK 8192 #define MQTT_TASK_PRIORITY 4 #define MQTT_TASK_CORE 1 // ============================================================ // 9. NTP 时间同步 // ============================================================ #define NTP_SERVER "ntp.aliyun.com" #define NTP_GMT_OFFSET_SEC 28800 // UTC+8 (北京时间) #define NTP_DAYLIGHT_OFFSET 0 // ============================================================ // 10. LittleFS 配置文件名 // ============================================================ #define CONFIG_FILE_MQTT "/mqtt_config.json" #define CONFIG_FILE_WIFI "/wifi_config.json" #define CONFIG_FILE_DEVICE "/device_config.json" // ============================================================ // 11. 结构体: 全量遥测数据 (协议规范 §4.1) // ============================================================ struct TelemetryData { // --- 设备标识 --- char saleid[12]; // 站点编号 "10100001" char gateid[16]; // 网关编号 "10100001001" char meterId[8]; // 节点ID "ENV001" char meterName[16]; // 设备型号 "RadarDHT11" // --- 环境数据 (DHT11) --- float temp; // 温度 ℃ float humi; // 湿度 %RH bool dhtValid; // 温湿度有效性 // --- 雷达: 存在/运动 --- bool presence; // 有人=1 无人=0 bool motion; // 有运动=1 无运动=0 bool fall; // 跌倒检测 1=触发 bool resident; // 驻留状态 1=驻留 // --- 雷达: 生命体征 --- uint8_t heartRate; // 心率 bpm (无效=0) uint8_t breathRate; // 呼吸 次/分 (无效=0) uint8_t body; // 人体能量/体征值 bool radarValid; // 雷达数据有效性 bool vitalValid; // 心率呼吸有效性 // --- 水浸 --- bool rainDO; // 1=正常 0=水浸触发 bool rainValid; // 水浸传感器有效性 // --- 设备状态 --- bool wifiReady; // WiFi/MQTT 连接状态 uint32_t uptimeSec; // 设备累计运行秒数 bool buzzerState; // 蜂鸣器状态 1=开启 // --- 时间戳 --- uint32_t lastUpdate; // 最后更新 ms }; // 结构体: 下行报警指令 (协议规范 §5.1, §5.2) struct AlarmCommand { char cmdId[32]; // 指令唯一ID char type[20]; // alarm / alarm_restore char alarmType[24]; // fall/water_leak/heart_abnormal/breath_abnormal char alarmLevel[8]; // low/medium/high char alarmDesc[64]; // 告警描述 char meterId[8]; // 触发节点ID char relatedCmdId[32]; // 关联原始告警ID (恢复用) // 联动动作 bool buzzerOn; // 蜂鸣器开关 uint16_t buzzerDuration; // 蜂鸣持续秒数 (0=持续到恢复) bool nightLight; // 夜灯 uint32_t timestamp; }; // 结构体: 下行控制指令 (协议规范 §5.3) struct ControlCommand { char cmdId[32]; char type[20]; // control char controlType[24]; // buzzer_test/device_restart/report_interval_set/factory_reset uint32_t params_duration; // 参数: 持续秒数 uint32_t params_interval; // 参数: 上报间隔 uint32_t timestamp; }; // 结构体: 下行配网指令 (协议规范 §5.4) struct ProvisionCommand { char cmdId[32]; char wifi_ssid[33]; char wifi_password[65]; char wifi_encrypt[8]; // OPEN/WPA2/WPA3 char mqtt_broker[64]; uint16_t mqtt_port; bool mqtt_useTls; uint32_t timestamp; }; #endif // CONFIG_H