emqx+阿里云+app 控制灯带
2025-02-062425
AI 快速预览详细
该项目通过行空板K10、EMQX和阿里云搭建MQTT服务器,并使用App Inventor设计APP来控制灯带。硬件包括行空板K10、k10扩展板和32*8的ws2812b柔性屏。项目不仅适合作为学校STEM教育的一部分,也适合作为个人爱好者的DIY项目。通过动手实践,用户可以掌握在云上搭建MQTT服务器的方法,理解MQTT通信的基本用法,以及物联网的基本应用。
|
【项目背景】随着人工智能技术的快速发展,物联网技术已经广泛应用于智能家居、自动化系统等多个领域。在教育领域,通过编程和电子硬件的结合,可以激发学生的创造力和实践能力,同时也为爱好者提供了一个有趣且富有教育意义的动手项目。 【项目设计】
【项目硬件】
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, 下载次数: 2110

















