一、实验目的及要求

【实验一】实现Easy IoT配置。
【实验二】实现Easy IoT上mqtt消息的通讯。

二、实验原理与内容

实现mind+下Easy IoT上mqtt消息的通讯。

三、实验软硬件环境

硬件:掌控板
软件:Mind+
辅助平台:Easy IoT

四、Easy IoT平台上的注册与使用

(1)平台的注册网址

点击此处进行Easy IoT注册(http://iot.dfrobot.com/workshop.html),可以点击进去自行注册即可使用。

(2)平台的配置使用

(3)查看设备的所有通讯消息

五、Mind+上的配置与操作步骤

步骤1:连接设备与模式切换

步骤2:选择主控板

步骤3:添加网络服务!

步骤4:开始图形化编程

步骤5:MQTT参数初始化

步骤6:完成编程

六、代码展示

(1)核心代码

连接手机Wi-Fi热点:

myIot.wifiConnect("meizu 16", "88888888");

MQTT初始化参数:

 myIot.init("iot.dfrobot.com.cn","5-iocmFMR","","5-iocmKGRz",topics,1883);

MQTT发起连接:

myIot.connect();

引用文本:

var foo = 'bar';

按A键发送消息:

void loop() {if ((buttonA.isPressed())) {myIot.publish(topic_1, "NBA!牛逼!");display.setCursorLine(1);display.printLine("MQTT发送成功");}
}

我成功接收到对方信息后的回调响应事件:

// 事件回调函数
void obloqMqttEventT0(String& message) {display.fillScreen(0);display.setCursorLine(4);display.printLine(message);rgb.write(1, 0xFFFF00);
}

(2)完整代码

/*!* MindPlus* mpython**/
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT0(String& message);
// 静态常量
const String topics[5] = {"wDHT5mFGg","s7V05iFMR","","",""};
const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;// 主程序开始
void setup() {mPython.begin();myIot.setMqttCallback(msgHandles);display.setCursorLine(1);display.printLine("程序开始");myIot.wifiConnect("meizu 16", "88888888");while (!myIot.wifiStatus()) {yield();}rgb.write(0, 0x0000FF);display.setCursorLine(2);display.printLine("Wi-Fi连接成功");display.setCursorLine(2);display.printLine(myIot.getWiFiLocalIP());myIot.init("iot.dfrobot.com.cn","5-iocmFMR","","5-iocmKGRz",topics,1883);myIot.connect();while (!myIot.connected()) {yield();}display.setCursorLine(2);display.printLine("MQTT连接成功");
}
void loop() {if ((buttonA.isPressed())) {myIot.publish(topic_1, "NBA!牛逼!");display.setCursorLine(1);display.printLine("MQTT发送成功");}
}// 事件回调函数
void obloqMqttEventT0(String& message) {display.fillScreen(0);display.setCursorLine(4);display.printLine(message);rgb.write(1, 0xFFFF00);
}

七、实验效果图

(1)我的设备连接和发送消息成功截图:

(2)对方收到我的消息截图:

(3)对方发送信息成功的截图:

(4)我收到对方消息的截图:

(5)在Easy loT平台设备上查看到的通信消息详情截图:

八、实验体验与体会

(1) 在配置mqtt初始化参数时,发送方和接收方的所有的参数配置要保持一致,保证两者共同使用同一个服务器来通信。
(2) 在配置mqtt初始化参数时,一定要要注意每个参数不能有错,一定要细心,不然出现消息发送或者接受不成功。
(3) 编程时一定要添加循环条件,否则只会执行一次,最后会导致接收方不能接收·到信息。
(4) 在判断某一步是否成功,可以在某一步后加入一些显示文字或者灯亮的测试来判断此步是否执行成功,比如测试Wi-Fi和MQTT是否连接成功。
(5) 如果要测试自己程序或MQTT的初始化参数是否有错,可以自己发给自己来看是否能发送和接收消息成功。

在Mind+下使用Easy loT实现mqtt消息消息的通讯相关推荐

  1. 【掌控板2.0】<Mind+>:光控灯、声控灯、语音识别模块、实现Easy IoT上MQTT消息的通讯实验

    一.实验目的及要求 [实验一]光控灯 [实验二]声控灯 [实验三]语音识别控制灯 [实验四]实现Easy IoT上mqtt消息的通讯 (1)甲按A键(或触摸P)发送消息至topic1,同时监听topi ...

  2. 实现mind+下光控灯、声控灯、语音识别灯以及Easy IoT上mqtt消息的通讯

    实现mind+下光控灯.声控灯.语音识别灯以及Easy IoT上mqtt消息的通讯 摘要 本篇文章实现四个功能 (除3采用实时模式,其余都采用上传模式) 1.实现天黑自动亮灯,天亮灭灯 2.实现声音强 ...

  3. 在VUE中利用MQTT协议实现即时通讯

    前言 建议先阅读: 在Node.js下运用MQTT协议实现即时通讯及离线推送 以前尝试在vue中用上mqtt,了解到mqtt实质上是基于websocket进行数据通信,所以上文中在node下实现的服务 ...

  4. mqtt 发送消息过多_阿里云MQTT服务端注解式消息处理分发与同步调用实践小结

    一.前言 前段时间公司预研了设备app端与服务端的交互方案,出于多方面考量最终选用了阿里云的微服务队列MQTT方案,基于此方案,本人主要实践有: 1. 封装了RocketMQ实现MQTT订阅与发布的实 ...

  5. 「Android基于MQTT实现消息通知」

    「Android基于MQTT实现消息通知」 一.写在前面 在对接项目中IoT时,发现目前有对MQTT做了接入,这里记录一下,官方的资料比较详细,这里主要从实现细节出发:对具体的需求以及配套的技术方案进 ...

  6. 一种MQTT客户端消息队列的设计

    MQTT 简介 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议.它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟 ...

  7. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...

    二.Work Queues(using the Java Client) 走起 在第上一个教程中我们写程序从一个命名队列发送和接收消息.在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者 ...

  8. 柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航)...

    柯南君:看大数据时代下的IT架构(4)消息队列之RabbitMQ--案例(Helloword起航) 二.起航 本章节,柯南君将从几个层面,用官网例子讲解一下RabbitMQ的实操经典程序案例,让大家重 ...

  9. MQTT 遗嘱消息(Will Message)的使用

    简介 当客户端断开连接时,发送给相关的订阅者的遗嘱消息.以下情况下会发送 Will Message: 服务端发生了I/O 错误或者网络失败: 客户端在定义的心跳时期失联: 客户端在发送下线包之前关闭网 ...

  10. Activemq MQTT 简单消息推送示例

    Activemq MQTT 简单消息推送示例 简介     简单使用 MQTT 连接 Activemq 进行消息推送的示例代码 编写详情 环境准备     使用docker启动Activemq,查看M ...

最新文章

  1. 顺序结构,判断结构 if,switch
  2. 字幕学英语app隐私政策网址(URL)
  3. Mysql 加锁防并发
  4. IDEA 值得推荐的十几款优秀插件,狂,拽,屌!
  5. ad19电气规则检查_铁路机车操作规则(铁运2012281号)
  6. uniapp动态显示数组_【报Bug】uniapp 在小程序中 动态修改添加 数组 数据 ,点击获取的索引值错误...
  7. hadoop hive集群_大数据专栏 | Hive 安装初体验
  8. html页面插歌,怎样在HTML播放器里插入歌曲
  9. 神舟笔记本电脑进入u启动之BIOS设置方法
  10. 北京375路公交车灵异事件真相
  11. gensim基本使用+文本相似度分析
  12. 2022年618机顶盒哪款好?当贝盒子功能最全性价比更优
  13. Python基础知识学习笔记(一)
  14. vue中单选框设置默认选中值
  15. 云服务完整删除mysql
  16. 【题解】洛谷P4996[【LGR-055】洛谷11月月赛]C.咕咕咕 组合数
  17. 线程钩子HookC#实例
  18. NSComboBox 使用方法
  19. 利用jquery插件的图片剪切上传功能
  20. starUML建模C++【逆向工程】

热门文章

  1. rtsp、rtmp测试地址
  2. 【chrome】谷歌chrome浏览器离线安装包的获取及使用技巧
  3. 答题小程序 服务器,开源的基于云开发的在线答题小程序
  4. 生信技能树R语言学习
  5. 工程计算——实战:追赶法扰动分析
  6. 面试题,微信朋友圈的“赞”和“评论”为啥是隐藏操作的?
  7. C# excel导入导出,NOPI ,简单例子
  8. C语言经典面试题100道(附完整答案)
  9. 如何撰写软件详细设计内容?
  10. layui之 实现图片放大