一、实验目的及要求
【实验一】实现Easy IoT配置。
【实验二】实现Easy IoT上mqtt消息的通讯。
二、实验原理与内容
实现mind+下Easy IoT上mqtt消息的通讯。
三、实验软硬件环境
硬件:掌控板
软件:Mind+
四、实验过程
1.核心代码截图
(1)MQTT初始化参数:
(2)程序:
(3)代码:
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT0(String& message);
void obloqMqttEventT1(String& message);
// 静态常量
const String topics[5] = {"A6N5qslMR","ScB53ylGR","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,obloqMqttEventT1,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;
// 主程序开始
void setup() {
mPython.begin();
myIot.setMqttCallback(msgHandles);
myIot.wifiConnect("602iot", "18wulian");
while (!myIot.wifiStatus()) {yield();}
display.setCursorLine(1);
display.printLine("WIFI连接成功");
myIot.init("iot.dfrobot.com.cn","f_BI3s_Mg","","B_BSqs_GRz",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.setCursorLine(2);
display.printLine("MQTT连接成功");
}
void loop() {
if ((buttonA.isPressed())) {
display.setCursorLine(3);
display.printLine("发送光强度");
myIot.publish(topic_0, (light.read()));
}
else {
if ((buttonB.isPressed())) {
display.setCursorLine(3);
display.printLine("发送声音强度");
myIot.publish(topic_1, (sound.read()));
}
delay(5000);
}
}
// 事件回调函数
void obloqMqttEventT0(String& message) {
display.setCursorLine(4);
display.printLine(message);
}
void obloqMqttEventT1(String& message) {
display.setCursorLine(4);
display.printLine(message);
}
2.实验效果图
(1)按下A,显示光强度:
(2)按下B,显示声音强度:
五、测试/调试及实验结果分析
本次实验成功完成,基本没有遇到问题,只是有时会出现MQTT连接失败的情况,重新连接设备后问题解决。
六、实验结论与体会
通过本次实验,我学会了如何配置Easy IoT,也懂得了如何实现Easy IoT上mqtt消息的通讯,对mind+的使用有了更深的掌握。本次实验也较为简单,主要是要先懂得mqtt消息通讯的原理,再来动手做会比较简单。