NB-IoT和ZigBee技术融合下的实验室环境监测系统设计
2021-02-10陈旭东
陈旭东
(闽南理工学院 实践教学中心,福建 石狮 362700)
高校实验室是师生开展专业实践的重要场所,安全管理尤为重要,环境监测是安全管理的重要一环,监测系统是否高效、可靠运行将直接影响实验实训的顺利开展[1-4].随着物联网技术的发展和普及,实验实训环境监测必须摒弃传统方式,运用先进技术提高管理效率,保障实验实训安全运行.前期调研发现,实验实训场地本身设备种类繁多,配电及各类信号传输线占用较多,因此环境监测系统,需满足高可靠性、灵活布局、低成本、低功耗等前提要求,不宜大量布线及占用配电资源.与现有成熟的仓储、酒店、火车站等使用场景的环境监测系统相比,实验室监测系统具有可变动性及灵活性的特点,系统搭建完成后,监测位置及监测节点数量需要根据实验室开课需要进行变动.在环境监测实践中,相关技术在其他设计系统中已有所运用.比如利用ZigBee与WiFi技术相结合,实现环境数据的采集及互联网传输,但WiFi系统设计复杂无法实现低功耗及低成本[5-7];也有直接利用NB-IoT模块作为环境数据采集节点,实现低功耗且灵活的远程监测,但NB-IoT模块作为节点成本过高,特别是遇到要监测多个实验实训场地的时候,需要大量的节点,无法实现低成本.各类无线网关对比如表1所示,综合对比成本、通信距离和传输速率.作为远程监测系统的网关模块,NB-IoT具备比较大的优势.基于实验实训环境监测的实际需求,采用ZigBee模块作为数据采集结点及终端设备控制节点,同时设计ZigBee协调器实现与各个节点快速组网获取监测数据及下发控制指令,ZigBee协调器只需借助一个NB-IoT模块作为网关与IoT云平台进行数据传输,实现远程监测及终端设备控制,满足低功耗、低成本的实际需求.
表1 各类无线网关对比
1 系统整体设计
以提升实验实训环境监测效率为目的,设计基于NB-IoT和ZigBee的实验室环境监测系统,该系统包含传感及控制模块、集中模块、云平台和应用模块四大部分(图1).传感及控制模块负责监测数据的采集及功能控制,传感器包括烟雾、温度及湿度,控制器包括喷淋器及风扇,ZigBee节点包括单片机系统电路、电池供电电路及外围接口电路[8-9].集中模块负责监测数据的收集及上传,设置一个ZigBee节点作为ZigBee协调器,完成ZigBee自组网内各个监测点数据的收集和命令下发;NB-IoT模块与ZigBee协调器进行串口通信,作为ZigBee自组网的网关,负责将数据上传到云平台及控制命令接收.云平台采用中国移动OneNET云平台,完成数据的存储及管理.应用模块采用WEB架构,基于OneNET平台提供的API及开发工具,搭建应用终端,实现远程查看监测数据及远程控制[10-11].
2 硬件设计
系统硬件由传感及控制模块、集中模块两部分组成.ZigBee传输使用2.4 GHz通用频段,在自组网10~100 m的范围内,根据实际监测点需要可设置多个传感及控制模块,系统只需设置一个集中模块,降低了网关设计成本.
2.1 传感及控制模块
传感及控制模块包括ZigBee节点、传感器和控制器三大部分(图2).
图2 传感及控制模块硬件连接
ZigBee节点采用TI公司生产的CC2530单片机作为主控芯片,模块实物及单片机主要功能IO口设计(图3).ZigBee节点硬件结构包括单片机主控板、供电电路(采用3.3 V电池供电)和外围电路扩展板,完成传感器驱动、控制器驱动及无线射频驱动三大部分内容.
图3 CC2530单片机模块
温湿度传感器采用DHT11数字温湿度传感器,其具有已校准的数字信号输出,湿度量程5~95%RH,温度量程-20~60℃,其灵敏性及可靠性满足实验实训环境监测要求.CC2530单片机使用IO口P0_7作为数字信号接收口,单片机需对接收的温湿度信息进行字符串转换,利用变量temp和humidity存储温湿度信息用于OLED显示及单片机逻辑控制条件,关键功能通过以下代码实现:
DHT11();//获取温湿度
//将温湿度的转换成字符串
temp[0]=wendu_shi+0x30;
temp[1]=wendu_ge+0x30;
humidity[0]=shidu_shi+0x30;
humidity[1]=shidu_ge+0x30;
烟雾传感器有可靠性及灵敏度要求,MQ-2烟雾传感器可适配,其测量范围较宽,可达到15 000 ppm.传感器的导电率随环境中气体浓度增大而增大,其模拟输出电压也加大CC2530单片机使用P0_6口作为模拟量输入口获得输入电压并进行AD转换,与传感器量程进行相应的比例运算可以计算出环境浓度值(以测量最大值20 000 ppm计算,输入电压Vin表示,参考电压VRef表示):
控制器主要由风扇及喷淋设备组成,当实验实训室温湿度过高时可以自动或者手动开启风扇进行降温除湿.当烟雾传感器监测到室内烟雾浓度过高时,则需要向协调器发送警报信号,进而手动或者自动开启喷淋设备.对风扇及喷淋设备的控制需使用两组继电器,单片机分别使用P1_0、P1_1两个IO口对继电器进行控制,采用低电平驱动,继电器常开触点进而控制功能设备高电压线路通断,驱动电路(图4).
图4 继电器驱动电路
2.2 集中模块
集中模块由ZigBee协调器和NB-IoT节点两部分组成,硬件连接如图5.ZigBee协调器结构与其他ZigBee节点一样,完成ZigBee自组网的创建及组网管理,集中来自不同ZigBee监测节点的信息,包括温湿度、烟雾量、电池电量和报警信息等,最后通过串口传输给NB-IoT节点.
图5 集中模块硬件连接
NB-IoT节点采用上海移远公司的BC28模组(图6),协调器CC2530使用串口1(P0_4、P0_5)与NBIoT节点进行串口通信,实现发送AT指令或接收控制信息.
图6 BC28模组
由于CC2530的串口电压3.3 V与BC28的1.8 V不匹配,所以需要先进行串口电平转换后才可以连接通信,串口转换电路(图7).考虑功耗控制要求,CC2530使用P1_2口对BC28的开启及休眠进行控制.
图7 串口电平转换电路
3 软件设计
系统控制ZigBee自组网以及控制ZigBee协调器与NB-IoT节点之间的通信需要进行合理的软件设计,主要包括传感及控制模块程序设计、集中模块程序设计及耗能控制.
3.1 传感及控制模块程序设计
为了满足监测节点功耗控制要求,在保证ZigBee各节点快速组网并能实时传输数据的基础上,引入系统节点休眠及唤醒机制,即各监测节点由ZigBee协调器进行休眠及唤醒控制.监测节点初始化后会立即搜寻ZigBee信道并请求入网,组网成功后除了将获取的传感器数据传输给协调器之外,每个实验室的监测节点还会将自己的位置标记信息一并发送,协调器根据接收的标记信息区分不同实验室房间数据,传输成功后监测节点获得休眠指令即可进入休眠模式,有效做到能耗控制(图8).
图8 传感及控制模块程序设计
3.2 集中模块程序设计
集中模块由ZigBee协调器和NB-IoT节点组成.ZigBee协调器创建ZigBee网络,等各监测节点成功连接进入自组网后,协调器即可接收监测节点发送来的数据并通过串口传输给BC28节点,以BC28节点为网关实现数据上传云平台.等数据传输完毕,ZigBee协调器立即向各监测节点及BC28节点同时广播休眠指令,此时系统立即进入休眠模式.为保证设备同步性,各节点必须设置相同的休眠定时器(图9).
图9 集中模块程序设计
3.3 耗能控制
传感及控制模块及集中模块节点均采用电池供电,提高了环境监测布局的灵活性,降低了应用成本,但对电池耗能控制的要求更加严格.CC2530模组及BC28模组的主要耗能在射频模式下,即发送、接收数据,在休眠及待机模式下的耗能极低(表2).根据表2数据,休眠状态下相比发送及接收的耗能明显降低,故通过软件设计延长休眠时间是控制功耗的有效方法,一个周期内的耗能用C1表示,节点电池总电量用C总表示,电池可使用次数用N表示,相关计算方法为:
表2 BC28和CC2530节点能耗表
由此可见,通过控制单周期内的发送及接收能耗即可大幅度增加电池使用次数.降低能耗的同时要保证监测数据的实时性,所以软件设计需要根据使用场所的不同监测需要,经过多次调试以确定合理的休眠和唤醒时间.
4 云平台设计
云平台实现数据管理、数据显示及控制命令发送,系统采用OneNET云平台.OneNET云平台提供了丰富的API和各类应用开发模板,能快速接入各类传感器及智能硬件,其友好的开发环境及支持多协议接入让智能应用开发变得简单.平台采用Web架构,开发环境提供了必须的界面搭建元素,数据绑定简洁直观,控制台可以自动生成Web应用链接,利用浏览器或OneNET手机端APP可以方便实现远程监测及控制.
4.1 数据管理
云平台数据管理实现Web应用和底层传感网络的数据交互及分析处理.云平台是连接Web应用和底层传感网络的桥梁,云平台接收并存储来自传感网的监测数据并为Web应用开发提供API.由于环境监测系统侧重于数据实时处理,无需庞大的历史数据存储量,故系统使用OneNET平台自带数据库而无需另外搭建数据库,平台设备接入方式选择NB-IoT方式系统数据管理流程(图10).
图10 系统数据管理
4.2 防误报机制
为保障系统稳定性及可靠性,引入防误报机制(图11).监测点传感器由于信号干扰或者传输错误可能出现上传数据偏差,防误报设计思路是若一个监测点上传数据超过阈值,数据平台不会立刻做出警报及控制终端设备驱动,而是先下发指令再次读取监测数据,数据若再次超过设定阈值,系统即可做出报警处置并驱动控制终端设备运行,否则系统就会忽略本次警报,提高了系统监测数据的稳定性,避免因误报造成损失.
图11 系统防误报机制
4.3 应用设计
利用OneNET云平台的应用管理功能可快速搭建Web应用.工作台提供数据管理,实现数据存储及调用,不同类型控件可绑定对应设备的数据源,控件包括显示类(曲线、仪表、图片等)和控制类(开关、旋钮、命令框等),控件状态与数据源对应关系实现一对一或多对一.应用界面设计效果(图12),界面设计包括三部分:阈值设置及报警标志、数据显示折线图、设备及工作模式控制.在实际应用中,可根据需要设定其他功能设备的控制按钮.
图12 应用界面设计
系统设计自动模式及手动模式两种工作状态.在自动模式下,当监测数据如温度、湿度或烟雾浓度超过阈值,系统确认无误报产生报警标志,并自动驱动功能继电器动作,进而让喷淋设备或风扇等功能设备启动;在手动模式下,当监测数据如温度、湿度或烟雾浓度超过阈值,系统确认无误报后同样会产生报警标志,但功能继电器的驱动需要值守人员根据需要手动控制开启.在手动模式下,若监测数据没有超过阈值,也可根据需要手动启停功能设备.
5 系统测试及分析
系统测试主要验证系统的稳定性及可靠性,重点对比监测数据跟标准仪器测试数值是否一致,是否会产生误报,检验喷淋设备、风扇等功能设备能否有效控制.除此之外,还需检验系统能耗是否符合低功耗要求以及能否降低后期系统维护成本.系统测试采用实验验证方式,用2个ZigBee节点模块作为传感及控制模块,用1个ZigBee节点模块作为协调器,用1个NBIoT模块作为系统网关设备.NB-IoT模块无线通信流量使用中国移动物联网专用卡进行测试.每个监测点的喷淋设备及风扇的驱动使用两组继电器模块进行驱动实验,继电器采用直流5 V电压供电,线圈低电平驱动控制,继电器动作情况可使用万用表测量常开触点状态或外接LED灯控制电路进行模拟展示.
两个监测节点分别监测相邻两个实验室数据,程序设计中位置标记分别设定为“ZD1”和“ZD2”,协调器根据位置标记对数据进行不同房间区分.
5.1 可靠性分析
系统测试数据结果从应用终端读取并记录两个监测节点数据(表3),从9:00至19:00每隔2小时记录一次数据,数据分为温度值、湿度值、烟雾浓度值等几类,每项数据均与标准仪器作比较,测试数据与标准数据的误差值在2%以内.在报警测试中,温度报警及湿度报警分别采用人为加热烟熏和加湿的方法模拟环境数据超标,报警结果符合预期,无出现误报情况,自动模式下及手动模式下驱动功能继电器正常.综合测试数据,系统可靠性符合设计预期.
表3 系统测试实验数据(ZD1/ZD2)
5.2 低功耗分析
系统主要对监测节点进行电源节能设计.监测节点通过使用CC2530内部ADC通道测量电池电量,测量结果随环境监测数据一并上传到云平台数据库.NB-IoT节点采用外部ADC通道测量电池电量,实验过程可采取电池供电,也可以使用稳压电源供电.实验对监测节点电量进行记录分析,由表3电池电量数据绘制的电池电量消耗(图13),分析监测节点(ZD1)电量消耗为1.8%,监测节点(ZD2)电量消耗为1.7%,符合低功耗设计预期.
图13 电池电量消耗
6 结论
NB-IoT和ZigBee技术融合下的实验室环境监测系统设计,把ZigBee快速自组网的优势跟NB-IoT的高效远程透传能力相结合,应用到实验实训环境监测中,实现对实验室温度、湿度、烟雾浓度的实时监测,同时能对喷淋设备及风扇等功能设备进行远程操控.一个中小规模的监测系统只需定期向电信运营商缴纳一个NB-IoT网关模块的流量费用而不需要其他费用,后期运维成本大幅降低,此外系统的低功耗设计及防误报机制也极大提高了系统的稳定性,具有广阔的应用前景.