258| 0
|
[K10项目分享] emqx+阿里云+app 控制灯带 |
本帖最后由 天空1 于 2025-2-6 22:50 编辑 【项目背景】随着人工智能技术的快速发展,物联网技术已经广泛应用于智能家居、自动化系统等多个领域。在教育领域,通过编程和电子硬件的结合,可以激发学生的创造力和实践能力,同时也为爱好者提供了一个有趣且富有教育意义的动手项目。 【项目设计】
【项目硬件】
1.硬件准备:行空板k10,k10扩展板,32*8的ws2812b柔性屏。 ![]() ![]() ![]() 2.申请阿里云免费ECS服务器,并创建实例,并在安全组中开放18803端口,并连接服务器 ![]() ![]() ![]() ![]() 3.并在阿里云服务器上部署EMQX ![]()
4.登陆登 录 - EMQX,用户名admin,密码:public ![]() 5.程序编写:灯带连接emqx物联网服务器 ![]() ![]() Arduino c 程序 /*! * MindPlus * esp32s3bit * */ #include <DFRobot_Iot.h> #include "unihiker_k10.h" #include <DFRobot_NeoPixel.h> #include "arduino_image_cache.h" // 函数声明 void DF_model2(); void obloqMqttEventTffkg4(String& message); void DF_mode1(); // 静态常量 const String topics[5] = {"light","","","",""}; const MsgHandleCb msgHandles[5] = {obloqMqttEventTffkg4,NULL,NULL,NULL,NULL}; // 创建对象 uint8_t screen_dir=2; UNIHIKER_K10 k10; DFRobot_NeoPixel neoPixel_P0; DFRobot_Iot myIot; // 主程序开始 void setup() { k10.begin(); myIot.setMqttCallback(msgHandles); k10.initScreen(screen_dir); k10.creatCanvas(); k10.canvas->canvasDrawBitmap(18,80,206,194,image_data1); k10.setScreenBackground(0x33CC00); k10.canvas->canvasText("春节快乐,蛇年大吉!", 5, 20, 0xFF0000, k10.canvas->eCNAndENFont24, 50, false); k10.canvas->updateCanvas(); neoPixel_P0.begin(P0, 256); neoPixel_P0.setBrightness(100); myIot.wifiConnect("HW-2.4G-202", "19770120602xsh"); while (!myIot.wifiStatus()) {} myIot.init("116.62.217.131","zhangsan","4691074095968446","123", topics, 1883); myIot.connect(); while (!myIot.connected()) {} myIot.subscribeTopic("light"); } void loop() { } // 自定义函数 void DF_model2() { for (int index = 0; index < 2; index++) { neoPixel_P0.clear(); delay(1000); neoPixel_P0.showRainbow(0, 255, 1, 360); delay(3000); } } void DF_mode1() { neoPixel_P0.clear(); delay(1000); neoPixel_P0.setRangeColor(0, 255, 0xFF6666); delay(1000); neoPixel_P0.rotate(0); delay(1000); neoPixel_P0.setRangeColor(0, 255, 0x33CC00); delay(1000); neoPixel_P0.setRangeColor(0, 255, 0x0000FF); delay(1000); neoPixel_P0.setRangeColor(0, 255, 0x9999FF); delay(1000); } // 事件回调函数 void obloqMqttEventTffkg4(String& message) { if ((message==String("on"))) { neoPixel_P0.setRangeColor(0, 255, 0xFF0000); } if ((message==String("m1"))) { DF_mode1(); } if ((message==String("m2"))) { DF_model2(); } if ((message==String("off"))) { neoPixel_P0.clear(); } } 6.用Appinventor设计APP连接EMQX控制灯带 ![]() 7.测试 ![]() ![]() |
566.17 KB, 下载次数: 25
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed