moki 13c372bf9a bug 修复 hai 1 semana
..
ai_light 13c372bf9a bug 修复 hai 1 semana
README.md 6fb7f7a881 删除独立固件 hai 1 semana

README.md

AI-Light 固件

基于 ESP32-C3 SuperMini 的桌面状态灯固件,通过 BLE 蓝牙或 MQTT 接收状态指令,控制红绿灯挂件显示 AI 工作状态。

固件

ai_light.ino 支持 BLE + MQTT 双模式,通过 BOOT 按钮切换。

Web Bluetooth 配置页面

web/ble-config.html 是一个独立的 Web 页面,通过浏览器的 Web Bluetooth API 连接设备进行配置。

使用方法

  1. Chrome / Edge / Opera 浏览器打开 web/ble-config.html
  2. 点击 Connect 按钮,选择 AI-Light 设备
  3. 连接后可查看设备状态、切换灯效、配置 WiFi/MQTT 参数
  4. 点击 Save & Restart 保存配置

功能

功能 说明
设备状态 显示 WiFi/MQTT 连接状态、当前灯效
灯效控制 点击按钮切换灯效模式
WiFi 配置 SSID、密码
MQTT 配置 Broker、Port、用户名、密码、Client ID、Topic

注意事项

  • 需要支持 Web Bluetooth 的浏览器(Chrome/Edge/Opera)
  • 首次使用需在 HTTPS 环境或 localhost 打开
  • ESP32 需在 BLE 广播范围内(约 10 米)

BLE 参数(双模式版)

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 全灭 关闭

WiFi/MQTT 配置(BLE)

向 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)

combined/ai_light.ino 同时支持 BLE 和 MQTT:

操作 效果
运行长按 BOOT 3 秒 切换 BLE/MQTT 模式并重启
  • 开机始终启动 BLE,可用于灯效控制和 WiFi/MQTT 配置
  • 默认 MQTT 模式,切换后自动保存到 NVS
  • 使用 web/ble-config.html 通过浏览器配置设备

硬件接线

基于公共正极灯板:

ESP32 3.3V  -> 灯板正极
ESP32 IO2   -> 220Ω -> 绿灯
ESP32 IO3   -> 220Ω -> 红灯
ESP32 IO4   -> 220Ω -> 黄灯

公共正极逻辑:GPIO LOW = 灯亮,GPIO HIGH = 灯灭

烧录方法

  1. 安装 Arduino IDE 2.x
  2. 安装 ESP32 开发板包:esp32 by Espressif Systems
  3. 选择开发板:ESP32C3 Dev Module
  4. 打开 .ino 文件,点击 Upload
  5. 串口监视器波特率:115200

依赖库

  • WiFi.h(ESP32 内置)
  • PubSubClient.h
  • ArduinoJson.h
  • BLEDevice.h(ESP32 内置)
  • Preferences.h(ESP32 内置)

通过 Arduino IDE → Sketch → Include Library → Manage Libraries 安装。