基于NB-IoT的移动环境数据巡检系统的设计与实现
2021-03-31刘文财李雪艳
戴 路,张 洁,刘文财,李雪艳
(阳光学院 人工智能学院,福建 福州 350015)
0 引言
随着电子商务的崛起,作为电子商务行业的基础设施的仓库也凸显出其越来越重要的地位,随着市场对于仓储环境的要求越来越高,仓储监控技术也在适应市场的同时得到了长足的进步[1]. 中国物流与采购联合会提供的数据显示,2019年8月到2020年2月间,我国仓储行业指数总体处在景气区间,由于疫情影响,2020年2月出现了一个低谷,近期中国仓储行业指数(如图1所示)处于持续向好的趋势.
图1 中国仓储行业指数
而仓储的环境监控就是保障物资的重要手段,随着信息网络技术的不断发展,现阶段根据市场需求新建设的现代化仓库已经设计了有效的集仓库监控、管理为一体的系统,但是老旧仓库的占比还是很大,而改造老旧仓库的环境监控设备具有较大的应用前景.
针对较落后的仓库,秦腾飞团队将物联网技术结合到仓库监控系统中,采用CC2530组建ZigBee网络,将感知层采集的数据发送到远端监控中心,监控中心能自动判断和处理一些异常的情况,用户能通过手机、网页等方式实时监控仓库数据[2]. 中国海洋大学的程凯团队在通信端采用基于SAM R21控制芯片的RF233射频模块组建LwMesh架构的低功耗无线网络,并采用了精度更高的SHT11温湿度传感器作为数据感知节点,实现了对仓库中环境数据的实时监控[3]. 这两种方案都是采用无线的方式将传感器分散布置在室内的各个方位进行测试,能够较为精准地测试出环境数据. 虽然这两种方案都尽可能地降低了传感器的功耗,但是当传感器没电的时候也需要人员对电池进行维护.
美国的Scilimati团队提出使用无人机进行环境数据的实时采集并将数据实时发送给服务端. 但是该方法较适合用于大气环境的采集,在相对封闭的仓库内,环境无人机的自身热量和螺旋桨产生的气流会对单个采集点造成较大影响,且仓库环境较为复杂,无人机有破坏仓库物资的风险,因此该方案不适合用于仓库等场所[4].
针对以上研究团队存在的问题,本方案提出采用移动机器人移动到不同的检测点进行环境参数的采集,当采集完成后,机器人能自动回到充电点自行充电,该方法对于老旧仓库的环境监控问题提出了一种新的解决方案.
1 系统框架设计
移动环境监测系统结构图如图2所示,系统分为环境数据采集机器人和数据服务端两部分. 整体框架如图2所示.
图2 移动环境监测系统结构图
根据环境数据采集的需求,环境数据采集机器人具有数据检测、数据传输、自动循迹和自动回充四大功能. 终端采用红外循迹方式行沿着预先布置的轨道,驶至测试点,通过STH11温湿度传感器获取当前测试点的环境温湿度数据,并通过BC26窄带物联网模块将数据转发给中国电信IoT核心网,同时终端还能行驶至指定区域自动回充.
数据服务端可进行数据汇聚,能够实时监测温度,同时能绘制出测试点的温湿度曲线,最终通过线性回归法还原当前场景的温度场.
基于NB-IoT的无接触式移动环境数据巡检系统各部分功能导图如图3所示:
图3 数据巡检系统功能导图
2 移动机器人硬件设计
系统终端由核心控制模块、传感器模块、红外循迹模块、无线通信模块和电机控制模块构成。 移动机器人硬件框图如图4所示.
图4 移动机器人硬件框图
核心控制模块采用STM32F407主控芯片作为移动机器人的核心控制器,该芯片是一款工业级的高性能主控芯片,其最高主频高达168 MHz,同时内部也有足够的硬件资源,并能为后续升级提供硬件保障.
环境感知模块,当前只添加了最为基础的温湿度传感器,但机身预留了相关接口,后期可根据需求增加PM2.5传感器、烟雾传感器等其他类型的环境传感器. SHT11是一款高精度的温湿度传感器,其能输出14位的湿度,测量精度为±3%RH,测试范围为0~100%RH,可以显示12位的温度数据,测量精度可达±0.4 ℃,测试范围为-40~123.8 ℃,该传感器能够满足基础仓储在温、湿度监测上的需求.
终端采用L298N作为电机控制模块,并通过PWM控制两路直流减速电机实现终端的前进、后退、转向等操作. 同时L298N与核心控制模块采用PC817光电耦合芯片,防止直流减速电机的电流倒灌击坏核心控制器.
终端采用红外循迹模块,通过红外线会被黑色吸收和被其他颜色反射的特性,加入比较器实现识别黑色和其他颜色,终端前、后各加入两个红外循迹模块,最终实现终端能够沿着预先布置的轨道,驶至测试点和返回充电区域自行充电的功能,环境数据巡检前端,即测试机器人如图5所示.
3 自动充电设计
系统采用的是接触式充电方式,移动机器人测试完环境数据后,将沿循迹轨道行驶到充电区域进行自主充电,充电区域如图6(a)所示. 充电区域前有两条纵向的黑线用于辅助移动机器人判断是否进入了充电区域.
图5 环境数据巡检前端
当移动机器人判断已进入充电区域后,机器人将降低速度,缓慢向回充点移动,直到移动机器人的充电触点移动到自动回充点的充电触点,如图6(b)所示.
图6 充电区域图
自动回充点上有两个充电触点,充电触点具有磁性,而移动机器人的充电触点为可上下自由活动的铁片,如图7(a)所示. 当移动机器人的充电触点移动到自动回充点的充电触点下方附近时,自动回充点的充电触点会通过磁力,吸附移动机器人的充电触点,如图7(b)所示. 此时移动机器人开始充电,同时移动机器人的充电触点将通过光耦隔离的方式接入主控芯片的外部中断引脚,当系统开始充电时,该引脚被拉高,进入中断,让小车停止向后移动进入充电状态,同时等待下一次的环境数据采集.
图7 充电触点示意图
4 环境数据采集机器人软件设计
终端沿着所铺设的轨道,通过红外循迹方式行驶至待测点,在待测点停止,通过SHT11测量20次当前的温湿度,并分别去掉两个最高值、最低值,再对剩下的值求出平均值. 同时将当前的测试位置信息和温湿度的平均值通过BC26模块发送给中国电信IoT平台. 再判断是否进入最后一个测试点. 如未进入最后一个测试点,则行驶至下一个测试点继续测试; 否则将行驶至充电区域进行充电等待进入下一次测试程序. 整个测试流程不需要人工参与,环境数据监测流程图如图8所示.
图8 环境数据监测流程图
测试数据由16个字节构成,前两个字节为报头,报头设置为0X0A,0X0A,第3、4个字节为当前测试位置的编号,第5、6个字节为当前测试位置的温度信息,第7、8个字节为当前测试位置的湿度信息. 温度信息和湿度信息都只数据保留到小数点后一位,数据发送时放大10倍以整数形式存入报文中. 9-16字节为保留字节,后期可以添加其他的环境参数. 报文格式见表1.
表1 数据报文格式
如:在测试点1,测试出温度值为35.2 ℃,湿度值为60.0%RH,则报文信息为:
0X0A,0X0A //0A0A为报文的报头.
0X00,0X01 //测试点1转换为16进制.
0X01,0X60 //温度35.2转为352,再转为16进制.
0X02,0X58 //湿度60.0换为600,再转为16进制.
0XFF,0XFF //保留值1无数据则填入0XFF.
0XFF,0XFF //保留值2无数据则填入0XFF.
0XFF,0XFF //保留值3无数据则填入0XFF.
0XFF,0XFF //保留值4无数据则填入0XFF.
系统采用BC26模组实现与服务平台进行通信,MCU通过串行口与BC26模块进行交互,并通过AT指令集控制BC26与平台的数据交互. 系统通过OneNET作为数据服务端,并通过MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)实现机器人与服务器的通信. MQTT是基于订阅模式的轻量级消息协议,其底层采用的是TCP/IP协议,为MQTT提供了可靠的基础.
OneNET平台已经将MQTT协议进行封装,产品在OneNET平台上注册后,平台将会给产品分配独立的注册码和ID,只需要提供这两个参数就能实现产品与平台的对接.
BC26模块在与数据服务平台连接时,MCU需要通过串口向BC26模块发送AT指令,首先通过“AT+NRB”指令实现BC26模块的软重启,之后采用“AT+CMEE=1”让模块进入简报模式,接下来通过“AT+CFUN=1”打开模块的射频功能,同时需要通过“AT+CIMI”和“AT+CGATT=1”指令获取物联网卡的状态和注册网络,之后通过“AT+QIOPEN=1,0,”TCP”,”183.230.40.39”,6002,1234,1 ”建立模块与OneNET平台的连接,183.230.40.39为OneNET平台的MQTT服务器,其端口号为6002,之后通过提交平台分配的设备ID和设备注册码,就能实现模块与平台的数据交互. 数据通过窄带物联网与云端服务器建立通信初始化流程,如图9所示.
5 数据服务端的实现
云端采用OneNET中国移动物联网平台,通过MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议)进行通信. 前端与平台端必须先建立TCP连接,当TCP连接建立完成后,通过MQTT的固定报文格式进行用户登录,登录成功后前端就能通过协议进行数据的订阅与消息的发布.
在OneNET平台上先注册为开发者用户,并在开发者中心创建项目,项目创建完成后添加设备. 在产品界面下记录产品ID、设备的注册码和鉴权信息. 在系统终端登入时,配置好以上信息,云端就能够通过获取终端传感器采集的数据. 云端查询数据情况如图10所示。
图9 通信初始化流程图
图10 平台查询数据
同时还能通过OneNet平台提供的相关控件,编辑出适合网页或手机端查看的界面,环境数据巡检系统手机端编辑界面如图11所示. 根据终端传感器采集数据,系统添加了室内平均温度、室内最高温度、室内平均湿度和室内最高湿度等数据方便用户查看.
图11 环境数据巡检系统手机端编辑界面
6 系统测试
将设计的数据采集机器人在具体仓库中进行测试,机器人能够沿预先布设轨道行驶,当到达规定地点时能够采集当前的环境数据,并通过BC26模块发送到数据服务端. 且数据实时性能够满足系统要求,同时平台将采集到的环境数据进行处理,并能通过系统平台和移动端展示出当前仓库的实时环境数据,环境数据巡检系统平台端如图12所示. 测试过程中,系统整体功能运行稳定.
图12 环境数据巡检系统平台端实时监控
7 结语
为适应老旧仓库的温湿度监测问题,本系统提出了一种新的检测方案,本方案由具有自动回充功能的移动机器人携带环境传感器行驶至关键的测试点进行环境监测,同时将每个测试点的数据传输至服务端,整个过程完全不需要人工参与.
本方案与当前主流的在固定点放置环境传感器的方案相比,在老旧仓库改造方面,具有以下优势:
(1) 测试灵活,由于传感器放置在移动的平台上,因此可以根据需求灵活地设置测试点.
(2) 维护方便,当采集设备出现问题时,只需要单点进行维护,而固定放置传感器则需要到不同位置进行维护.
后期系统将通过在移动机器人上增加伸缩结构测试不同高度的环境数据,从而生成当前仓库的三维温度场、湿度场图,以让管理人员更清楚地了解仓库中各个区域的环境状况.