基于NB-IoT 的低速率监测物联网应用实验系统

2020-10-08 03:38孙彦景冯甜欣芦楠楠刑天琳
实验技术与管理 2020年3期
关键词:模组联网程序

孙彦景,冯甜欣,李 松,陈 岩,芦楠楠,云 霄,刑天琳

(中国矿业大学 信息与控制工程学院,江苏 徐州 221116)

在移动互联网、物联网等技术迅速发展的背景下,万物互连已成为时代发展的必然趋势[1-2]。物联网应用涉及嵌入式系统开发、计算机网络、无线通信、云计算等多种专业知识,具有很强的综合性与系统性。窄带物联网(narrow band internet of things,NB-IoT)作为一种新兴的物联网技术[3-4],具有强连接、广覆盖、低功耗、低成本等特点,在感知监测场景中具有巨大优势[5-6]。本文基于NB-IoT、嵌入式系统、网络传输、数据库处理及数据可视化等技术,设计了一个低速率监测物联网应用实验系统[7-9]。系统包括数据采集节点、云端数据库、显示终端等模块以及负责各模块间数据交互的控制程序,能够实时感知环境数据,并进行上传、推送、存储,通过终端在线显示。该实验系统有助于通过实验环节帮助学生快速理解物联网的框架结构,增强学生理解所学专业课程之间的关联性,并培养电子信息类学生面向实际场景进行物联网应用系统开发的能力。

1 实验系统结构

根据监测物联网应用的场景需求,对系统结构进行分析后,确定了系统的硬件结构和软件组成。将实验系统根据功能划分为以下部分:具有感知功能的传感器设备,定位标记的定位模块,接入NB-IoT 网络的NB-IoT 模组,控制数据上传的MCU 和控制程序,接收数据的云端服务器,显示监测结果的数据可视化显示程序。实验系统具体数据传递流程如下:首先通过NB-IoT 模组接入NB-IoT 网络,数据采集节点感知环境数据后,由控制程序将数据上传至云端服务器,并通过终端程序将结果展示给用户。图1 为设计的实验系统框架。

2 窄带物联网及云平台

2.1 窄带物联网

NB-IoT 是一种新兴的物联网标准。NB-IoT 构建于蜂窝网络,带宽消耗约180 kHz,可直接在现有的2/3/4G 网络上实现网络复用,降低部署成本。NB-IoT属于低功耗广域网(low power wide area net,LPWAN),具有以下特点:一是更强的覆盖能力,与传统的GPRS 网络相比,NB-IoT 可以提高100 倍的网络覆盖能力;二是更强的连接能力,NB-IoT 对网络架构进行优化,单个扇区可以达到十万级的设备连接能力;三是更低的功耗,NB-IoT 终端最高可以维持10a的正常通信周期,显著的降低了设备的部署频率;四是更低的模块成本,目前单个连接模块的成本已低于5 美元。基于以上优势,NB-IoT 非常适合未来大规模覆盖的物联网场景[10-11]。

2.2 物联网云平台

物联网应用的实际场景中通常需要部署大量节点,为了方便地对这些节点进行管理,需要将物理设备映射到云端,通常为物联网云平台。由于NB-IoT网络基于LTE 网络升级,其映射关系通过NB-IoT 模组嵌入的SIM 物联卡所承载。本实验选用的物联网云平台为中国移动ONENET 平台,ONENET 是一种PaaS物联网开放平台,提供了多种协议接入的API,可以为物联网硬件提供从设备接入到产品部署的开发环境[12]。

3 监测应用系统软硬件结构设计

对面向监测物联网应用的电子信息系统而言,系统的硬件结构决定了软件的开发效率,软件的合理部署有助于充分发挥硬件的功能。本实验通过硬件平台搭建与软件结构分析,锻炼学生系统分析与设计的能力,帮助学生理解物联网应用的框架结构以及开发流程。

3.1 硬件设计

基于实验的通用性与可扩展性,实验系统的硬件主要包括MCU 主控模块、NB-IoT 模组、传感模块和定位模块等。

(1)主控模块负责整体硬件设备的运行流程,包括设备上线控制、数据自动采集、数据交互逻辑等,本文采用STM32 作为微处理器,STM32 功能强大且具有丰富的接口,方便进行扩展。

(2)NB-IoT 模组用于接入NB-IoT 网络,同时将数据上传至云平台,实验中选用SIM7000C 模组,并通过串口模块与STM32 相连,进行数据交互。

(3)传感模块负责感知监测环境数据,选择常用的温湿度传感器,通过STM32 驱动控制程序进行数据采集。

(4)定位模块选择GPS 模块,通过NB-IoT 模组进行终端节点定位。

系统硬件模块结构如图2 所示。

图2 系统硬件模块结构图

3.2 软件设计

为了提高学生的逻辑思维能力,根据图1 的软件结构,将实验系统分为3 个层次,自下而上分别是设备域、平台域、应用域。

设备域主要为系统的硬件模块,以及用于控制硬件运行的数据采集上传程序;平台域为云端服务器,以及将数据转存到私有数据库的数据推送程序;应用域为终端显示设备,以及用于人机交互的可视化显示程序。

图3 展示了系统的软件结构,下面分别给出每层的软件程序设计,方便学生根据模块进行实验程序编写与完善。

3.2.1 数据采集上传程序

数据采集上传程序控制传感设备感知环境数据,同时控制NB-IoT 模组接入网络后将数据上传至云端数据库。

图4 展示了数据采集上传程序的工作流程。首先STM32 通过GPIO 接口驱动温湿度传感器采集数据,并通过串口模块与NB-IoT 模组完成数据交互,之后模组将数据封装到指定字段,通过notify 上传指令发送给基站,完成数据上报。

图3 系统软件结构

图4 数据采集上传程序工作流程

模组通过创建对象来区分不同种类的传感设备,通过添加属性对数据的特征值进行管理。图5 为模组注册成功后设备管理界面。图6 为云平台接收到上传数据时的界面。

图5 设备管理界面

图6 数据上传界面

3.2.2 数据推送程序

数据推送程序将上传的数据转存到本地私有数据库,以供显示终端使用。

数据推送程序通过HTTP 协议实现,首先云平台向私有数据库发送HTTP GET,请求进行token 验证,验证一致后,返回msg 的值,表示连接成功;之后云平台通过HTTP POST 请求向私有数据库的URL 地址推送上传的数据。图7 为数据推送程序的实现流程。

图7 数据传输流程

数据推送的数据格式为json 字符串,置于HTTP请求的body 部分。各字段定义见表1,type 为数据类型;dev_id 为设备ID,作为设备的唯一标识;ds_id是数据流ID,对应一个传感器对象;value 为设备上传或触发的数据;at 为平台时间戳,单位ms。

表1 数据推送json 字符串格式

3.2.3 数据可视化显示程序

数据可视化显示程序通过动态的图表显示监测的数据,针对感知监测的场景需求,实现的功能有显示检测节点位置并进行标注、动态更新实时数据、显示历史数据以及异常警告等。

实验采用WEB 应用程序进行数据的可视化显示,使用HTML 作为WEB 程序的编程语言,可以通过扩展控件满足功能设计差异化的需求。本文通过Ajax技术动态获取后台数据,调用百度地图API 进行位置标记,通过ECharts 图表进行数据的可视化显示[13]。

4 功能展示

图8 为实验设计的一个数据采集节点。

图8 监测节点

图9 为显示采集数据的可视化感知监测管理终端。其中第Ⅰ部分为节点定位标记界面,能够对数据采集节点的位置信息进行标记,点击后能够显示经度、纬度、海拔等详细信息;第Ⅱ部分为历史数据展示界面,通过双Y轴动态显示历史的温度和相对湿度数据,实现监测功能;第Ⅲ部分为实时温度显示界面;第Ⅳ部分为相对湿度显示界面,能够通过仪表盘动态更新实时数据。

图9 NB-IoT 感知监测管理终端

系统还实现了异常数据警告功能,当监测的数据触发设置的阈值时,节点会进行弹窗提醒。图10 为异常数据的警告界面。经实验测试,系统运行稳定。

图10 异常数据警告界面

5 结语

为了启发学生通过所学知识来解决遇到的实际工程应用问题,本文综合电子信息类专业多门课程知识,面向感知监测物联网场景,设计并实现了一个基于NB-IoT 的低速率监测物联网应用实验系统,实现了节点位置标记显示、动态更新历史数据、显示实时数据及异常数据警告等功能。通过硬件平台搭建和软件结构分析,不仅能够锻炼学生的系统分析能力和设计能力,培养学生工程素养,同时还将理论与实践相结合,增强学生理解电子信息工程专业课程间的关联知识体系。

猜你喜欢
模组联网程序
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
光学薄膜技术及在背光模组中的应用研究
试论我国未决羁押程序的立法完善
抢占物联网
高速公路表贴透镜模组设计浅谈
基于吸塑料盘的料仓平台系统
浅谈石墨烯材料在LED路灯模组中的应用及该模组的设计
“程序猿”的生活什么样