2025-2-6 22:30:31 [显示全部楼层]
258浏览
查看: 258|回复: 0

[K10项目分享] emqx+阿里云+app 控制灯带

[复制链接]
本帖最后由 天空1 于 2025-2-6 22:50 编辑

【项目背景】随着人工智能技术的快速发展,物联网技术已经广泛应用于智能家居、自动化系统等多个领域。在教育领域,通过编程和电子硬件的结合,可以激发学生的创造力和实践能力,同时也为爱好者提供了一个有趣且富有教育意义的动手项目。

【项目设计】
  • 项目的目标是通过emqx在阿里云上搭建自己的MQTT服务器,让灯带连接到自己搭建的MQTT服务器,并通过appinvtor设计app来控制灯带的亮和灭,以及灯带的亮灯的模式。
  • 这个项目不仅适合作为学校STEM(科学、技术、工程和数学)教育的一部分,也适合作为个人爱好者的DIY项目。通过动手实践,用户可以基本掌握在云上emqx搭建自己的MQTT服务器方法,理解MQTT通信的基本用法,理解物联网的基本运用,通过设计APP同时也能够享受到创造和编程带来的乐趣。

【项目硬件】
  • 行空板k10
  • k10扩展板
  • 32*8的ws2812b柔性屏
【制作步骤】
1.硬件准备:行空板k10,k10扩展板,32*8的ws2812b柔性屏。

emqx+阿里云+app 控制灯带图1

emqx+阿里云+app 控制灯带图2

emqx+阿里云+app 控制灯带图14

2.申请阿里云免费ECS服务器,并创建实例,并在安全组中开放18803端口,并连接服务器
emqx+阿里云+app 控制灯带图3

emqx+阿里云+app 控制灯带图4

emqx+阿里云+app 控制灯带图5

emqx+阿里云+app 控制灯带图6

3.并在阿里云服务器上部署EMQX

emqx+阿里云+app 控制灯带图7

  • 配置 EMQX Apt 源
   curl -s https://assets.emqx.com/scripts/install-emqx-deb.sh | sudo bash
  • 安装 EMQX
sudo apt-get install emqx
  • 启动 EMQX
   sudo systemctl start emqx

4.登陆登 录 - EMQX,用户名admin,密码:public

emqx+阿里云+app 控制灯带图8

5.程序编写:灯带连接emqx物联网服务器

emqx+阿里云+app 控制灯带图9

emqx+阿里云+app 控制灯带图10

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控制灯带

emqx+阿里云+app 控制灯带图11

7.测试

emqx+阿里云+app 控制灯带图12

emqx+阿里云+app 控制灯带图13




app.aia

566.17 KB, 下载次数: 25

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
关于楼主

楼主的其它帖子

上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail