楚琳琳 徐江涛
摘 要:文章以无线网络为背景,确定通信协议为MQTT,有序完成节点微控制器单元(NodeMCU)与云平台(OneNET)的连接,尝试进行信息传递。在系统开发期间,含有四个组成要素:项目准备、设备运行、程序运行、平台控制,以系统试运行方式,展现数据收集、环境监测、信息处理过程,验证节点微控制器单元与云平台的联合使用功效。
关键词:物联网;节点微控制器单元;云平台
0 引言
物联网技术在原有网络环境基础上,开展了功能延伸、模块扩展,旨在多元网络连接技术使用基础上,借助信息传感技术的优势,完成物物、物人的关联与信息传递,同时积极处理收集数据,形成远程智能控制体系,具有自动化运作能力。为此,以节点微控制器单元、云平台为背景,探索物联网技术的应用方法,为相关技术研发提供参考依据。
1 系统开发准备工作
1.1 环境准备
在系统开发前期,应选择稳定的管道、运行流畅的通信协议,以此保障节点微控制器单元与云平台连接的顺利性,提升数据传输稳定性。为此,以消息队列遥测传输协议为通信协议,此传输协议发行于20世纪90年代,作为轻量级通信协议,能够在各种平台间进行高效性通信传输。此协议在使用期间,具有功能开放、程序简单、操作灵活等特点,在物联网产品中使用较为广泛。
在研究期间,云平台确定为移动单位发行的开放平台,集合了物联网技术与产业性能。节点微控制器单元确定为开发板,具有能耗低、集成能力强等优势。此开发板功能完备,同时完成了程序设计语言的录入。
1.2 项目设定
在云平台进行信息处理、命令传输各项任务时,应完成产品设备的创建与设立。用户在平台注册信息时,可依据开放平台的流程提示,或者选择开发者文档。在用户登录系统时,能够在开发者中心模块中完成产品的处理。值得关注的问题是:在技术参数添加时,应进行设备通信协议的确定,比如联网形式为无线、设备接入协议为MQTT[1]。
用户在操作产品名时,能够顺利进入操作产品的管理程序。在设备列表中,选择目标,进行设备管理。在设备添加时,依据要求添加的“鉴权信息”,作为产品信息的唯一标识,同样是设备登录参数的信息。此外,平台对于产品、设备给予的地址信息,用户应准确记录。“鉴权信息”“设备列表”“产品与设备地址”3个要素在终端平台连接时,能够保障数据交换平稳性。
2 开发调试
2.1 连接网络
网络模块为系统开发提供了驱动程序。在系统开发期间,应对无线网类进行调用,完成无线网对象的创设,同时将无线网对象设定为STA模式,再运行数据接收方法,激活无线网被调用的对象。在此基础上,在无线网对象的连接方式中,完成无线网目标的密码信息输入,在单片机处于连电狀态时,进行单片机与无线网络的有序连接。
2.2 执行程序
系统执行与开发,运行了MicroPython脚本。此脚本作为Python3开发语言的升级版,能够以简短精练的语言,完成系统开发,在微控制器、多条件环境中具有运行能力。MicroPython脚本中,含有多种高级功能,比如交互式信息提醒,各类精度的数据标准等。语言表达足够精简,在256 k代码环境、16 k芯片中具有运行适用性。
现阶段,使用MicroPython脚本,将其程序在单片机系统中运行,是较为关键的程序设计方法,主要是借助一款软件、一款在线客户端进行设计开发。在软件应用时,选择的是MicroPython脚本的运行软件,具有工具体积小、数据传输能力强。然而,在单片机运行时,应保障单片机与计算机终端连接的有序性,同时在计算机终端完成驱动安装。
MicroPython网络运行的客户端在与开发板处于相同网络环境时,能够在网页上完成文化传输,再将信息传输至单片机。与此同时,在单片机终端完成脚本下载。然而,客户端中的固件,其默认程序为“关闭”。因此,在首次运行客户端时,应进行程序启动的设置:让单片机与计算机终端相互连接,再启动软件,选择对应的开启操作端口,能够在操作平台对开发板传送“运行”指令。
在命令传输期间,在输入框中进行“运行启动”的命令编辑,继而结合信息提示内容,完成功能密码设计。在此技术上,每次软件运行将会保持并再次运行此配置。此外,在输入框中添加的“运行启动”“程序开始”等内容,能够有效开启网络服务,保障单片机与在线终端处于远程连接状态。由于网络启动的调用程序与无线网调用对象的启动方式具有相似性,均在开发板上完成电力接通,继而有序执行程序命令。在一般情况下,此种指令程序无须进行任何改动。应将两种程序启动代码补充在程序启动程序中[2]。
3 指令运行
3.1 测定环境条件
dht11是一种传感器,传感对象为温度、湿度,具有精确感应、数字输出优势。其温度感应精准度在±5%RH范围内,温度感应精度为±2摄氏度,量程湿度感应取值为[20,90]%RH,量程温度感应取值为[0,50]摄氏度。dht11传感器在开发固件中有录入,能够在dht模块完成信息导入。因此,借助传感器信息调取方法,能够有效获取传感器采取的各项信息,比如环境温度、环境湿度等。
应该关注的问题是:在dht11信息调取方法中,如若使用零号引脚完成对象创建,将会在实际接线时,对传感器进行再次引脚,继而进行引脚连接。
3.2 收集有效信息
以区域气象监测站的实例,此项目是以节点微控制器单元(NodeMCU)与云平台(OneNET)的连接为背景下,运行了物联项目气象监控,对周边气象信息具有一定收集整合能力,信息整合项目包括压力、温度等。项目硬件组成包括:NodeMCU分线板×1,dht11传感器×1,压力传感器×1,电阻测定仪器×1,跳线一根。此物联项目同时配置了应用程序、在线程序服务功能。在运行此项目时,能够获取局部地区的气象信息,包括温度、湿度等,数据读取为平均数。
在运行此项物联网项目时,借助Python进行网络感应数据采集,同时运行urllib标准库的信息请求模块,或者进行多个请求三方库的调取,以此保障感应数据采集的全面性。请求模块在节点微控制器单元中,不具备运行能力,在MicroPython脚本中对请求模块的进行重新定义,使请求模块在节点微控制器单元中拥有了运行能力。因此,在气象监测物联项目中,可以使用请求模块进行感应信息的收集。
现阶段针对气象条件温度、湿度进行采集时,大致分为两种方法:
运行get方法,在方法内输入网络地址,以 UTF-8编码规则,对所收集的信息的解码,获取文本的全部采集信息。
使用正则表达式,有效截取采集信息的可用信息,剔除无关信息。针对正则表达式的应用,MicroPython给出了运行的替代模块,保障正则表达式的运行能力。比如,在使用search方法調取气象信息时,同时对于动态变化的气象参数使用通配符予以替代。在通配符中,“·”符号,能够代表任意单个字符,“·#”符号,具有字符匹配回溯性,能够进行字符多次匹配,对于符合条件的匹配仅有1次。在search方法运行完成时,运行group方法,依次返回通配符信息,获取匹配到的各项信息[3]。
3.3 处理收集数据
在主脚本的主函数中,进行数据的集中接收传送处理。在此程序运行期间,MQTT软件运行大类,在umqtt.robust库中完成调取,同时创建MQTT对象,作为客户端运行对象。在此基础上,运行客户端对象的连接方法函数,完成节点微控制器单元(NodeMCU)与云平台(OneNET)的连接。在案例物联网项目中,首选运行set _ callback方法,借助此方向完成回调函数的设计,再对系统特定主体进行申请。在此基础上,示例脚本中含有两种指令接受的方式,其一为wait _ msg方法,其二为check _ msg方法。第一种指令接受方法程序,能够暂停程序的运行,对新指令进行传达。第二种指令接受方法程序,先确定指令内容,如若无指令,则运行后续程序。在节点微控制器单元接收云平台指令后,程序将会运行回调函数,以decode方法,对接收指令信息进行解码,获取指令信息,达成终端与云平台的连接目标。
4 结语
综上所述,在节点微控制器单元(NodeMCU)与云平台(OneNET)的连接背景下,形成了全新的物联网信息交流体系,便于用户在物联网平台,有序观看网络气象信息的动态情况。实践证明:此种物联网组建方式,具有可行性,能够高效完成数据处理。
[参考文献]
[1]肖杨,林钊浩.基于NodeMCU的双向通信系统[J].工业技术创新,2020(4):80-84.
[2]方中纯,李海荣.基于Arduino和ZigBee的物联网智能网关设计与实现[J].山东工业技术,2018(2):101-102.
[3]李海园.基于RT-Tread OS和OneNet云的IoT系统设计[J].物联网技术,2020(1):75-76,82.
(编辑 何 琳)