云天 发表于 2025-1-13 10:13:39

行空板K10——WLED控灯(新年快乐)

【项目背景】
[*]本项目旨在通过行空板 K10 通过 HTTP POST 请求控制 ESP32-C3 连接的 WS2812 灯带。ESP32-C3 作为控制节点,运行 WLED 项目提供的固件,实现对 WS2812 灯带的精细控制。行空板 K10 作为控制端,发送 HTTP POST 请求来控制灯带的颜色、效果和其他参数。
[*]WLED 是一个开源项目,提供了一个快速且功能丰富的 ESP8266/ESP32 Web 服务器,用于控制 NeoPixel(WS2812B, WS2811, SK6812)LED 灯带,以及基于 SPI 的芯片集,如 WS2801 和 APA102。WLED 项目集成了 WS2812FX 库,支持超过 100 种特殊效果,并提供了现代的用户界面,包括颜色、效果和段控制。此外,WLED 还支持多种控制接口,如 JSON 和 HTTP 请求 API、MQTT、Blynk IoT、E1.31、Art-Net、DDP 和 TPM2.net 等。
【项目设计】
[*]实现远程控制:通过行空板 K10 语音指令发送 HTTP POST 请求,远程控制 ESP32-C3 连接的 WS2812 灯带。
[*]提供丰富的效果:利用 WLED 项目提供的多种效果,实现灯带的动态显示。
【项目硬件】
[*]行空板 K10:作为控制端,通过语音指令发送 HTTP POST 请求。
[*]ESP32-C3:作为控制节点,运行 WLED 固件,控制 WS2812 灯带。
[*]WS2812 灯带:被控制的 LED 灯带,支持多种颜色和效果。
【制作步骤】1.硬件准备:准备行空板 K10、ESP32-C3 和 WS2812 灯带。






2.固件部署:在 ESP32-C3 上部署 WLED 固件。通过https://install.wled.me/网站在线安装。同时配置wifi连接。



3.网络配置:配置行空板 K10 和 ESP32-C3 的网络连接。
访问无线路由,获取ESP32-C3的IP地址。
4.控制端开发:开发行空板 K10 的控制程序,结合语音指令发送 HTTP POST 请求。


/*!
* MindPlus
* esp32s3bit
*
*/
#include "asr.h"
#include <DFRobot_Iot.h>
#include "unihiker_k10.h"
#include <DFRobot_HTTPClient.h>
// 函数声明
void DF_MoShi(float mind_n_XiaoGuoXuHao);
// 创建对象
DFRobot_Iot      myIot;
UNIHIKER_K10       k10;
uint8_t            screen_dir=2;
                   String bodydata="";
int                c=0;
ASR                asr;
DFRobot_HTTPClient http;


// 主程序开始
void setup() {
      k10.begin();
      k10.initScreen(screen_dir);
      k10.creatCanvas();
      asr.asrInit(CONTINUOUS, CN_MODE, 60000);
      while(asr._asrState == 0){delay(100);}
      asr.setAsrSpeed(2);
      http.init();
      Serial.begin(9600);
      myIot.wifiConnect("sxs", "************");
      while (!myIot.wifiStatus()) {}
      k10.setScreenBackground(0x000000);
      k10.canvas->canvasText(myIot.getWiFiLocalIP(), 35, 0, 0xFFFFFF, k10.canvas->eCNAndENFont24, 50, true);
      k10.canvas->canvasText("行空板K10 WLED", 25, 100, 0xFFFFFF, k10.canvas->eCNAndENFont24, 50, true);
      k10.canvas->canvasText("1.语音唤醒:你好小行", 0, 200, 0xFFFFFF, k10.canvas->eCNAndENFont24, 50, true);
      k10.canvas->canvasText("2.说命令词:模式?", 0, 250, 0xFFFFFF, k10.canvas->eCNAndENFont24, 50, true);
      k10.canvas->updateCanvas();
      asr.addASRCommand(1+1, "mo shi yi");
      asr.addASRCommand(2+1, "mo shi er");
      asr.addASRCommand(3+1, "mo shi san");
      asr.addASRCommand(4+1, "mo shi si");
      asr.addASRCommand(27+1, "mo shi er shi qi");
      asr.addASRCommand(60+1, "mo shi liu shi");
      asr.addASRCommand(73+1, "mo shi qi shi san");
      asr.addASRCommand(82+1, "mo shi ba shi er");
      asr.addASRCommand(83+1, "mo shi ba shi san");
      asr.addASRCommand(93+1, "mo shi jiu shi san");
      asr.speak("初始化完成");
}
void loop() {
      if (asr.isDetectCmdID(1+1)) {
                DF_MoShi(1);
      }
      if (asr.isDetectCmdID(2+1)) {
                DF_MoShi(2);
      }
      if (asr.isDetectCmdID(3+1)) {
                DF_MoShi(3);
      }
      if (asr.isDetectCmdID(4+1)) {
                DF_MoShi(4);
      }
      if (asr.isDetectCmdID(27+1)) {
                DF_MoShi(27);
      }
      if (asr.isDetectCmdID(60+1)) {
                DF_MoShi(60);
      }
      if (asr.isDetectCmdID(73+1)) {
                DF_MoShi(73);
      }
      if (asr.isDetectCmdID(82+1)) {
                DF_MoShi(82);
      }
      if (asr.isDetectCmdID(83+1)) {
                DF_MoShi(83);
      }
      if (asr.isDetectCmdID(93+1)) {
                DF_MoShi(93);
      }
}


// 自定义函数
void DF_MoShi(float mind_n_XiaoGuoXuHao) {
      c=(floor(mind_n_XiaoGuoXuHao));
      DFRobot_HTTPClient http;;
      http.addHeader("Content-Type", "application/json");
      http.addHeader("charset", "UTF-8");
      bodydata=R"({"on":1,"bri":128,"seg":[{"id":0,"start":0,"stop":120,"on":true,"bri":50,"col":[],"fx":)"+String(c)+R"(,"pal":1}]})";
      Serial.println((bodydata));
      http.addString((bodydata));
      http.POST("http://192.168.31.207/json", 10000);
      Serial.println(http.getString());
      asr.speak((String("已设置模式") + String(c)));
}


【演示视频】

https://www.bilibili.com/video/BV19CckeqEay/?share_source=copy_web

页: [1]
查看完整版本: 行空板K10——WLED控灯(新年快乐)