Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

ESP32-C3 灯带控制器

ESP32-C3 灯带控制项目:固件 + Android 控制 App + AstrBot 插件。

  • 固件:HTTP + BLE 双控,四档亮度(关/低/中/高),PWM 柔和渐变
  • Android App:BLE 控制,双通道扫描,记忆设备自动连接
  • AstrBot 插件:微信机器人自然语言控制灯光

目录结构

├── firmware/                 ESP32 固件(Arduino)
│   └── esp32c3_light_control/
├── android/                  Android 控制 App
│   ├── LightControlApp/      App 源码
│   ├── build.ps1             手动构建脚本(免 Gradle/Android Studio)
│   └── app-release/          已构建的 APK
├── plugin/                   AstrBot 微信机器人插件
│   └── esp32_pwm_control/    ESP32 PWM 灯光控制插件

硬件

  • ESP32-C3 开发板
  • MOS 管(驱动灯带)
  • 灯带(共阳/共阴按 MOS 接法)

接线:MOS 栅极接 ESP32-C3 GPIO10(MOS_PWM_PIN)。

固件

用 Arduino IDE 打开 firmware/esp32c3_light_control/esp32c3_light_control.ino,安装 ESP32 开发板支持后烧录。

控制方式

BLE(服务 4fafc201-1fb5-459e-8fcc-c5c9c331914b,特征 beb5483e-36e1-4688-b7f5-ea07361b26a8,属性 READ/WRITE/NOTIFY):

写入值 功能
0 关闭
1 低档(PWM 40)
2 中档(PWM 130)
3 高档(PWM 255)

设备特征写入后返回 OK 或 Invalid(通过 notify)。

HTTP(静态 IP 192.168.1.11):

GET /off      -> 关闭
GET /low      -> 低档
GET /mid      -> 中档
GET /high     -> 高档
GET /gear     -> {"gear":0} 当前档位

配置修改

固件开头(必须修改为自己的 WiFi 信息):

const char* WIFI_SSID = "你的WiFi名";
const char* WIFI_PWD  = "你的WiFi密码";
uint8_t lightGear[4] = {0, 40, 130, 255};  // 四档 PWM 值
#define TRANSITION_STEP     2    // 渐变步长(越大越快)
#define TRANSITION_INTERVAL 20   // 渐变间隔 ms(越小越平滑)

Android App

功能

  • BLE 扫描(双通道:新 API + 旧 API 兜底,无过滤,兼容国产 ROM)
  • 四档亮度控制
  • 记忆上次设备,下次打开自动连接(失败自动重试 3 次)
  • 运行日志(排查连接问题)

安装

直接安装 android/app-release/LightControlApp-debug.apk(debug 签名,个人使用)。

从源码构建(无需 Android Studio)

本机需要 JDK 11+。构建脚本会使用 D:\android-build 下的 JDK / build-tools / platform(首次需手动准备,见脚本头部路径变量)。

powershell -ExecutionPolicy Bypass -File build.ps1

产物:LightControlApp-debug.apk

说明:项目去掉了 androidx 依赖(纯 Android framework API),因此可以完全不依赖 Gradle/Google Maven 构建,适合离线环境。

AstrBot 插件

微信机器人插件,支持自然语言控制灯光(需要 AstrBot 部署环境)。

安装

把 plugin/esp32_pwm_control/ 整个目录放到 AstrBot 的插件目录,重启 AstrBot。

使用

  • 低档 / 中档 / 高档 / 开灯 / 关灯 / 查询灯光

配置

修改 main.py 顶部:

ESP32_IP = "192.168.1.11"   # ESP32 局域网 IP
WEB_PORT = 80

注意:AstrBot 所在设备需与 ESP32 在同一局域网。

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages