李文趋 高大利 刘赟 陈玉思
(泉州师范学院数学与计算机科学学院 福建省泉州市 362000)
物联网应用系统的设计是物联网技术落地应用的一个重要内容,物联网应用系统的数据传输方式可以分为有线传输和无线传输,其中无线传输方式常用的技术方案有:Wi‐Fi、ZigBee、蓝牙等,这些技术都是短距离通信技术,当需要长距离通信时,现有的无线通信技术中LORA[1]和NB‐IOT[2]技术是两种常用的选择方案,NB‐IOT 有赖于移动运营商的网络,如果用户想要保持数据通信的独立性,LORA 技术就是一种较好的选择。
典型的基于LORA 的物联网应用系统是通过LORA 终端向LORA 基站发送数据,再由LORA 基站通过网关将数据上云[3][4],本文设计的应用系统采用LORA 终端点对点通信方式,在担任汇聚节点的终端中添加Wi‐Fi 通信模块,通过Wi‐Fi 模块完成数据的上云工作,这样做成本更低,部署更简单。我们再通过设计自己的服务器平台通过云平台的API 接口获取监测数据,系统架构图1所示。
图1:系统总体结构图
终端节点由MCU、传感器单元、电源模块、LORA 通信模块、SWD 调试模块等构成,MCU 采用STM32F103 系列的芯片,该芯片应用广泛,成本较低。LoRa 通信单元主要采用 Semtech 公司的SX1278 射频芯片实现 LoRa 数据的传输。整体构造如图2所示。
图2:终端节点硬件结构图
LORA 汇聚节点担负收集传感数据和将数据上传到云端的功能,在硬件结构上比终端节点多了一个WIFI 模块(或者4G 模块),其他结构和终端节点一样,这里不在赘述。
软件系统包括:终端节点软件和汇聚节点软件,汇聚节点通过通讯模块连接到云平台(机智云物联网云平台[5]),依赖云平台快速开发出系统的WEB 应用端。
终端节点采集传感器数据,并将采集的数据通过点对点的方式发送到汇聚节点,在终端节点发送给汇聚节点的数据报文中包含终端节点的编号、传感器类型等信息。汇聚节点在接收到终端节点发送的报文后,检查报文中的节点编号、传感器类型等信息分别通过通信模块上报的物联网云平台。终端节点和汇聚节点的软件流程图如图3、图4。
图3:终端节点程序流程图
图4:汇聚节点程序流程图
由于所有的终端节点和汇聚节点都是采用点对点通信,因此必须设计一套终端节点和汇聚节点之间的通信协议,以便汇聚节点能够识别各个终端节点发送的数据。我们设计了一个简单的协议格式。该协议的数据格式如表1。
表1:协议的数据格式
为了提高数据通信的可靠性,2 个字节的地址编码我们只采用了如表2 的地址。
即除了汇聚节点外,每个终端节点的地址编码只能是2n,可以容纳16 个终端节点,通过冗余便于节点检查地址编码传输是否出错。这样做的代价较大,可以通过实际部署环境的实际通信状况修改地址编码的方法,提高通信的效率。传感器类型的编码可以参考地址编码的方法,这样就可以部署8 种不同类型的传感器,如果需要部署的传感器类型超过8 个,可以根据实际的通信状况改变传感器类型编码方法或者增加传感器类型字段的长度。数据校验码我们采用数据+数据字段长度的算术和。在系统的部署测试中,我们设计的这套简单通信协议能够支持系统的稳定运行。
我们将设备接入了机智云,基于机智云的Open API 接口,我们设计了系统的服务器平台。我们的服务器平台基于Springboot[6]设计,平台模块包括:用户管理模块、设备管理模块、数据呈现模块。该平台的功能可以继续扩展。
(1)用户管理模块在本服务器上实现用户的注册、登录、修改、删除等功能,使用shiro 框架进行权限管理,通过调用机智云的用户管理API 完成机智云用户的创建、登录等功能。
(2)设备管理模块通过调用机智云的绑定管理API 实现设备的绑定、解绑等功能。
(3)数据呈现模块设置了定时任务,定时任务会定时从机智云获取设备的状态、传感器数据等信息保存到本地数据库,并通过Echarts 可视化库将数据呈现在Web 端。
LORA 基站目前的价格普遍在几百元至上千元之间,本研究采用LORA 汇聚节点匹配相应的软件设计替代LORA 基站实现远距离无线通信,在监测节点数量较少(10 个以下)的应用中可以显著减少硬件成本,是一种经济实用的LORA 应用方案。