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

物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯

程序员文章站 2022-03-05 13:23:54
文章目录创作缘由实验目的及要求实验原理与内容实验软硬件环境实验过程(实验步骤、记录、数据、分析)测试、调试及结果分析实验结论与体会创作缘由大三上学期,我们的专业开设了一门物联网的课程,用到的教材是由刘伟善编著的《Arduino创客之路(智能感知技术基础)》以及使用的软件是国产青少年编程软件Mind+。为了记录和分享我的学习成果,我将编写且分享本学期此课程的全部实验作业。实验目的及要求实现sIoT配置并实现sIoT上mqtt消息的通讯。实验原理与内容原理:sIoT可以在局域网上实现mqtt消息的通...

创作缘由

大三上学期,我们的专业开设了一门物联网的课程,用到的教材是由刘伟善编著的《Arduino创客之路(智能感知技术基础)》以及使用的软件是国产青少年编程软件Mind+。为了记录和分享我的学习成果,我将编写且分享本学期此课程的全部实验作业。

实验目的及要求

实现sIoT配置并实现sIoT上mqtt消息的通讯。

实验原理与内容

原理:sIoT可以在局域网上实现mqtt消息的通讯。

内容:两人合作,首先在各自的电脑上实现掌控板和Mind+的连接,再创建局域网环境和两个sIoT设备。
最后利用Mind+网络服务中的WiFi和MQTT等功能编写图形程序实现两块掌控板之间的消息通讯。

实验软硬件环境

硬件:掌控板
软件:Mind+、SIoT_windows1.2

实验过程(实验步骤、记录、数据、分析)

  1. 实验步骤
    ① 打开Mind+与掌控板设备连接。
    ② 切换到上传模式,在扩展中主控板选项中选择掌控板,在网络服务选项中选择WiFi和MQTT。
    物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯

③ 合作双方的个人电脑都连接到同一个WIFI热点,使合作双方连接在同一个局域网内。
④ 运行SIol_windows1.2.exe,实验中途不得关闭,将自己的计算机作为MQTT服务器(两人合作只需要一个服务器就行)。
物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯
⑤ 在浏览器中用SIol_windows1.2的Web服务器地址打开自己的服务器,输入用户名和密码登录后创建两个项目。
物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯
⑥ 编写代码:连接WIFI热点→MQTT初始化参数→MQTT发起连接→循坏执行在A键被按下之后MQTT发送消息给Topic_1。
编写代码:当接收到Topic_0的MQTT消息→屏幕显示文字MQTT消息。(以下是我方代码及MQTT初始化参数)
物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯

物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯
⑦ 把代码上传到设备、等待WIFI连接后及MQTT初始化后,按下掌控板的A键发送消息并接收来自合作方的消息。

  1. 核心代码
/*!
		 * MindPlus
		 * mpython
		 *
		 */
		#include <MPython.h>
		#include <DFRobot_Iot.h>
		// 函数声明
		void obloqMqttEventT0(String& message);
		// 静态常量
		const String topics[5] = {"xxxxxx4247/xxx","xxxxxxx242/xxx","xxxxxx249/xxx","",""};
		const MsgHandleCb msgHandles[5] = {obloqMqttEventT0,NULL,NULL,NULL,NULL};
		// 创建对象`在这里插入代码片`
		DFRobot_Iot myIot;
		
		
		// 主程序开始
		void setup() {
			mPython.begin();
			myIot.setMqttCallback(msgHandles);
			myIot.wifiConnect("orange", "12345678");
			while (!myIot.wifiStatus()) {yield();}
			display.setCursorLine(1);
			display.printLine(myIot.getWiFiLocalIP());
			myIot.init("192.168.43.xxx","602","","iot", topics, 1883);
			myIot.connect();
			while (!myIot.connected()) {yield();}
			display.setCursorLine(2);
			display.printLine("MQTT连接成功");
		}
		void loop() {
			if ((buttonA.isPressed())) {
				myIot.publish(topic_1, "2018764242陈畅润");
			}
		}
		
		
		// 事件回调函数
		void obloqMqttEventT0(String& message) {
			display.setCursorLine(3);
			display.printLine(message);
		}
  1. 实验效果图

① 本人掌控板显示为
物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯

② 合作方同学掌控板显示为
物联网:实现sIoT配置并实现sIoT上mqtt消息的通讯

测试、调试及结果分析

① 合作双方的个人电脑需要连接在同一个WiFi热点中。个人用手机创建WIFI移动热点时,对移动热点的切断再重连会更换局域网的IP地址,此时要注意MQTT初始化中的服务器地址的设置,以及需要重启服务器。

② MQTT初始化参数中的服务器地址是个人电脑的局域网IP地址,双方需要填写一致。Topic_0和Topic_1中的信息要与在SIol_windows1.2的Web服务器中创建的设备信息一致。

实验结论与体会

① SIoT是一个为中小学STEM教育定制的跨平台的开源MQTT服务器程序,S指科学(Science)、简单(Simple)的意思。SIoT重点关注物联网数据的收集和导出,是采集科学数据的最好选择之一。
SIoT为“虚谷物联”项目的核心软件,是为了帮助中小学生理解物联网原理,并且能够基于物联网技术开发各种创意应用。

② 实验中可以巧妙地利用屏幕提示语句进行程序的调试,方便逻辑语句的检查。

本文地址:https://blog.csdn.net/weixin_44594267/article/details/109015364