Mind+上实现Easy IoT配置和Easy IoT上mqtt消息的通讯
程序员文章站
2022-06-09 08:55:32
...
Mind+上实现Easy IoT配置和Easy IoT上mqtt消息的通讯
Mind上的图块代码显示
1、连接wifi热点和mqtt并验证连接成功:
2、
(1)当收到topic_0收到mqtt消息后,亮红灯,数字引脚输出高电平,屏幕显示mqtt的消息和提示,并播放音乐;
(2)当按下A键,回复收到到topic_1,如果topic_1成功接收,则屏幕显示文字“发送成功”。
源代码
/*!
* MindPlus
* mpython
*
*/
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT0(String& message);
void onButtonAPressed();
void obloqMqttEventT1(String& message);
// 静态常量
const String topics[5] = {"sed25mFGg","GfFJ5mKGR","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,obloqMqttEventT1,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;
// 主程序开始
void setup() {
mPython.begin();
myIot.setMqttCallback(msgHandles);
buttonA.setPressedCallback(onButtonAPressed);
display.setCursorLine(1);
display.printLine("开始连接");
myIot.wifiConnect("honor 10", "shwh2295");
display.setCursorLine(1);
display.printLine("连接中...");
while (!myIot.wifiStatus()) {yield();}
display.fillScreen(0);
display.setCursorLine(1);
display.printLine("Wi-Fi 连接成功");
display.setCursorLine(2);
display.printLine(myIot.getWiFiLocalIP());
delay(1000);
myIot.init("iot.dfrobot.com.cn","vG4ANmKGg","","vGV0HiFMgz",topics,1883);
myIot.connect();
while (!myIot.connected()) {yield();}
display.fillScreen(0);
rgb.write(-1, 0x000000);
display.setCursorLine(1);
display.printLine("MQTT 连接成功");
myIot.publish(topic_1, "连接成功!");
}
void loop() {
}
// 事件回调函数
void obloqMqttEventT0(String& message) {
digitalWrite(P0, HIGH);
rgb.write(0, 0xFF0000);
display.setCursorLine(1);
display.printLine(message);
buzz.play(DADADADUM, Once);
display.setCursorLine(2);
display.printLine("(收到请按A键)");
}
void onButtonAPressed() {
myIot.publish(topic_1, "收到");
}
void obloqMqttEventT1(String& message) {
if ((message==String("收到"))) {
display.fillScreen(0);
display.setCursorLine(1);
display.printLine("发送成功!");
}
}
实验效果图
(1)开始连接——>连接中
(2)wifi连接成功——>MQTT连接成功
(3)收到topic_0的消息“呼叫班长”,并按下A键回复收到
(4)回复成功!
总结
此次实验主要是运用掌控板和Mind+软件来学习Easy IoT配置和Easy IoT上mqtt消息的通讯。回过头来看,其实并不难,因为在Mind+上都是运用图块来搭建代码,很容易可以实现,我们所要知道的就是这个实验的代码思路,例如搭建MQTT连接和wifi连接,以及当收到topic_0的消息时,我们要在掌控板上显示并加以提醒,然后就是我们要回复收到,发送消息到topic_1上。这样就可以完成此次实验了。