欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-09 08:55:02
...

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


一、实验目的:
【实验一】实现Easy IoT配置。
【实验二】实现Easy IoT上mqtt消息的通讯。通过mqtt实现两个掌控板之间的通讯

二、实验软硬件环境:
硬件:掌控板
软件:Mind+

三、实验过程:
(1)实验一
首先实现Easy IoT的配置,登录网站iot.dfrobot.com.cn注册一个新账号,随后在我的工作间页面添加两个新的设备。将掌控板接入电脑,打开mind+。点击左下角的扩展按钮,在主控板页面选择掌控板。
回到主页面,在左上角的选择设备中选择设备。进入上传模式,在扩展中的网络服务页面选择MQTT和wifi服务。

(2)实验二
①在本实验中首先要让掌控板连接上wifi并连接到互联网。当连接上互联网后才会进行下一步操作。实现mind+下Easy IoT上mqtt消息的通讯
②对MQTT进行初始化参数操作,在topic中写入两个topic,其中topic0用于发送信息至其他掌控版,topic1用于接收信息初始化参数成功后,向MQTT发起连接。连接成功MQTT后在掌控版上显示文字“连接成功”,否则继续尝试连接。
实现mind+下Easy IoT上mqtt消息的通讯
连接wifi和MQTT操作代码

void setup() {	myIot.setMqttCallback(msgHandles);
	mPython.begin();	
	display.setCursorLine(1);	
	display.printLine("开始执行程序");	
	myIot.wifiConnect("HUAWEI P30", "chan8859");	
	while (!myIot.wifiStatus()) {yield();}	myIot.init("iot.dfrobot.com.cn","FNmhcmFMg","","FNmh5iFMRz",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}	display.setCursorLine(2);	
	display.printLine("连接成功");}

③当MQTT连通后,设置当掌控板中A键被按下时,发送一条消息至另一台掌控板上。设置循环执行,可以不限次数发送消息。

实现mind+下Easy IoT上mqtt消息的通讯
发送信息代码

void loop() {	
if ((buttonA.isPressed())) {
		myIot.publish(topic_0, "发送信息ccc");
		display.setCursorLine(4);	
		display.printLine("已发送消息");
		}
			}

④当收到另外一台掌控板发出的消息时,在掌控板的第三行上显示“收到信息:+MQTT消息”。收到消息同时掌控板会发出声音提醒,并亮灯提醒。看到消息后按下B键后停止声音并关灯。
实现mind+下Easy IoT上mqtt消息的通讯

void obloqMqttEventT1(String& message) {
	display.setCursorLine(3);	
	display.printLine((String("收到消息:") + String(message)));
		buzz.freq(131, BEAT_1);
			rgb.write(-1, 0xFF0000);	
			while (!(buttonB.isPressed())) {yield()}
			buzz.stop();
			rgb.write(-1, 0x000000);
			}

四、实验效果图
实现mind+下Easy IoT上mqtt消息的通讯
实现mind+下Easy IoT上mqtt消息的通讯

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

五、实验结论与体会
这次实验是用MQTT技术实现两个掌控板之间的交互。实验本身内容并不复杂,但是需要有创新的思维,在原本的基础上加入更多的创意。设计了在收到消息时放音乐和亮灯,但是在实际使用中发现音乐要在循环一次之后才能够关闭,浪费较长时间。于是改为了提示音。掌控板很有意思,里面有很多内容,这两次尝试了其中的一部分。

相关标签: 物联网