物联网教学实践研讨一

2021-03-31 19:15王维涛郑芳
江苏广播电视报·新教育 2021年43期
关键词:树莓局域网编程

王维涛 郑芳

摘要:以局域网作为物联网教学环境,集成物联网络消息处理服务、物联网软件开发环境、单板计算机及微处理器控制开发板物联网开发硬件,完成物联网消息协议、物联网开发编程语言、传感器数据采集等教学内容。

信息社会物联网无处不在。其在现代农业工业、交通运输、生物医疗、智慧城市等各领域应用广泛。本文以物联网体系工作框架,给出物联网教学实践的基本环境及方法。

目前物联网的体系工作框架由底层至高层分为:设备层、网络层、平台层、应用层。设备层包括:传感器、通信模组、感知类智能设备及执行装置;网络层包括:通信运营商的2G、3G、4G、5G网络,局域网的WiFi、、ZigBee、LPWAN(LoRa、SigFox、NB-Iot)等;平台层包括:接入管理、设备管理、消息处理、数据处理、机器学习等;应用层包括:各应用领域App及服务软件。

物联网教学实践环境,以局域网为基础,以教学内容为原则,简化体系结构,实现物联网教学实操环境。

在局域网中,我们可以合并应用层、平台层,以微型计算机(PC)、单板计算机(SBC)构成,软件选用开源软件,主要服务软件是Mosquitto,实现物联网络消息处理服务(MQTT),采用Node.js、Node-RED(JavaScript)、SQLite、Python(MicroPython)实现物联网开发环境(SDK)。

MQTT消息队列遥测传输是物联网OASIS标准消息传递协议,是非常轻量级的发布/订阅消息传输协议。MQTT协议工作在 TCP/IP协议族之上,非常适合低性能硬件及低带宽网络,连接控制远程硬件系统。

Mosquitto是Eclipse基金会实现MQTT V5.0、V3.1.1、V3.1版本协议的服务器软件,适合安装在低功耗的单板计算机、微型计算机、服务器上使用。我们既可以把它安装在流行的树莓派(Raspberry Pi 3 B+)Raspberry Pi OS系统的SBC机上,也可以把它安装在Windows 10系统的PC机上运行。MQTT服务器在局域网内,可使用用户/密码方式保证安全。

在局域网中,移动设备、嵌入式系统、各类传感器开发板,以相应接入方式接入网络,客户端可采用命令方式、图形界面、编程方式与服务端处理消息。

在设备层面,我们使用构建在Node.js之上,事件驱动、低代码量编程的 Node-RED (https://nodered.org/)和面向微处理器控制开发板的 MicroPython 语言进行编程开发;如需大量数据处理,选用SQLite数据库。

Node-RED是基于流程的可视化编程工具,以浏览器作为编辑界面,使用系统提供的各类功能节点。在Node-RED节点编辑框中,可以设置参数和使用JavaScript语言及函数,完成消息处理及硬件系统控制。MicroPython是兼容Python 3的子集,优化设计,运行在微处理器、微控制器、嵌入式系统上,主要使用在连接传感器及执行控制器的开发板系统中。单板计算机树莓派的Raspberry Pi OS(https://www.raspberrypi.org/software/)系统,集成Node-RED、Python、Thonny环境,给学习实践带来诸多便利。连接传感器及执行控制器的开发板系统,我们使用ESP8266、ESP32(https://www.espressif.com/)这类高性价比开发板,既可使用树莓派(Thonny IDE-Raspberry Pi)的集成环境,也可以使用Windows10系统的Thonny IED版本或其它开发环境(ThonnyIDE-Linux、Thonny IDE-Mac OS X、Arduino IDE等)进行学习。

網络消息处理协议MQTT的学习

网络消息处理原理学习,是理解物联网运行的基础。MQTT技术文档给出的协议通信规则及数据帧结构,学习者需要在实际网络中加以理解。Windows10系统安装设置好Mosquitto服务器后,局域网中的其它计算机或硬件设备作为客户端,和服务器即可建立起消息通信机制。我们使用开源软件Wireshark网络协议分析器,抓取网络通信数据包,进行直观分析学习。图一是局域网中抓取的数据帧截图,图中给出服务端192.168.0.114与客户端192.168.0.110的消息通信过程。

物联网编程过程学习

在局域网中,我们使用树莓派(Raspberry Pi)、Windows 10 PC机、智能移动设备(手机)说明学习过程。图二是消息发布/订阅示意图。

Mosquitto服务器在Windows10 PC(192.168.0.114)机上运行,在树莓派(192.168.0.105)上运行Node-RED,使用局域网中的计算机浏览器访问树莓派192.168.0.105:1880端口(可设置用户/密码访问权限),打开Node-RED编辑界面,通过编辑界面左侧节点版面,拖拽所需若干功能节点到编辑界面中部编辑区,经设置参数及使用JavaScript语言、函数,连接各节点完成所需编程要求。图三是模拟传感器数据输入,经Mosquitto服务器发布消息,通过Mosquitto服务器,设置树莓派GPIO26(PIN37)脚位输出值。可以在智能移动设备(手机)安装设置MQTT Dash App(https://play.google.com/store/apps/details?id=net.routix.mqttdash&hl=en_IN≷=US),使用开源软件实现消息的订阅/发布及可视化显示控制。

总之,物联网实践教学环境,是物联网教学的必备的实操教学平台,对于理解物联网工作原理、物联网消息发布订阅,物联网远端数据采集及执行控制,十分必要。随着物联网技术的不断发展,网络的可视化及可视化控制,也必将大量应用到实际工作环境中。

作者简介:

王维涛(1964.7),男,汉族,河北石家庄,高级工程师,研究方向:计算机通信及物联网。

猜你喜欢
树莓局域网编程
玩游戏学编程,Blockly Games上手玩
纺织机上诞生的编程
编程屋完成数百元万天使轮融资
学编程,先画画
计算机局域网组建及管理探讨
用无线路由器共享单位局域网
黄金水果红树莓
树莓红了 游人醉了
e络盟率先推出第三代树莓派
年度睡姿大盘点(下)