|
|
1 周之前 | |
|---|---|---|
| .. | ||
| README.md | 1 周之前 | |
| ai_light.ino | 1 周之前 | |
基于 ESP32-C3 SuperMini 的桌面状态灯固件,通过 BLE 蓝牙或 MQTT 接收状态指令,控制红绿灯挂件显示 AI 工作状态。
ai_light.ino 支持 BLE + MQTT 双模式,通过 BOOT 按钮切换。
web/ble-config.html 是一个独立的 Web 页面,通过浏览器的 Web Bluetooth API 连接设备进行配置。
web/ble-config.htmlAI-Light 设备| 功能 | 说明 |
|---|---|
| 设备状态 | 显示 WiFi/MQTT 连接状态、当前灯效 |
| 灯效控制 | 点击按钮切换灯效模式 |
| WiFi 配置 | SSID、密码 |
| MQTT 配置 | Broker、Port、用户名、密码、Client ID、Topic |
Device Name: AI-Light
Service UUID: b8b7e001-7a6b-4f4f-9a8b-11c0ffee0001
Mode Characteristic: b8b7e002-7a6b-4f4f-9a8b-11c0ffee0001 (灯效控制)
Config Characteristic: b8b7e003-7a6b-4f4f-9a8b-11c0ffee0001 (WiFi/MQTT 配置)
向 Mode 特征写入 UTF-8 字符串即可控制灯效:
| 模式 | 灯效 | 典型场景 |
|---|---|---|
init |
开机初始化 | 启动 |
thinking |
跑马灯 | AI 分析中 |
ai |
慢速跑马灯 | AI 生成中 |
busy |
黄灯慢闪 | 命令执行中 |
success |
绿灯常亮 | 任务成功 |
error |
红灯快闪 | 任务失败 |
alarm |
红黄交替警灯 | 严重异常 |
traffic |
模拟红绿灯 | 展示模式 |
off |
全灭 | 关闭 |
向 Config 特征写入 JSON 配置,设备自动保存到 NVS 并重启:
{
"wifi_ssid": "你的WiFi名",
"wifi_pass": "你的WiFi密码",
"mqtt_broker": "192.168.1.100",
"mqtt_port": 1883,
"mqtt_user": "mqtt用户名",
"mqtt_pass": "mqtt密码",
"mqtt_client": "AI-Light",
"mqtt_topic": "opencode/status",
"mqtt_status": "openCodeLight/status"
}
combined/ai_light.ino 同时支持 BLE 和 MQTT:
| 操作 | 效果 |
|---|---|
| 运行长按 BOOT 3 秒 | 切换 BLE/MQTT 模式并重启 |
web/ble-config.html 通过浏览器配置设备基于公共正极灯板:
ESP32 3.3V -> 灯板正极
ESP32 IO2 -> 220Ω -> 绿灯
ESP32 IO3 -> 220Ω -> 红灯
ESP32 IO4 -> 220Ω -> 黄灯
公共正极逻辑:GPIO LOW = 灯亮,GPIO HIGH = 灯灭
esp32 by Espressif SystemsESP32C3 Dev Module.ino 文件,点击 Upload115200WiFi.h(ESP32 内置)PubSubClient.hArduinoJson.hBLEDevice.h(ESP32 内置)Preferences.h(ESP32 内置)通过 Arduino IDE → Sketch → Include Library → Manage Libraries 安装。