Mind+上实现Easy IoT配置和Easy IoT上mqtt消息的通讯
- Mind上的图块代码显示
- 源代码
- 实验效果图
- 总结
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上。这样就可以完成此次实验了。