基于NB-IoT与WSN的多传感器医药冷链监测系统
2022-07-12范小青王宜怀张艺琳
范小青 王宜怀 张艺琳
(苏州大学计算机科学与技术学院 江苏 苏州 215006)
0 引 言
全球每天生产、运输、储存、分发数百万吨温湿度敏感医药,然而国内医药冷链的发展仍存在医药冷链功耗较高、通信不稳、监测数据失真等问题[1],亟需开发一整套低功耗、高稳定性、高准确性的医药冷链监测系统。因此国内外许多学者对医药冷链监测系统进行了大量的研究和探索。无线传感网络(Wireless Sensor Network,WSN)[2]因其安装灵活无害、维护方便、扩展性高等优点,应用领域日趋广泛,尤其在监测领域表现不俗。文献[3]设计一种基于GPRS-ZigBee的物联网医疗冷链自动检测温控系统,用于监测医疗冷链信息,但通信稳定性不足。文献[4]设计一种结合433 MHz频段ZigBee技术与2.4 GHz频段Wi-Fi技术的无线监测系统,实现对无人值守处环境的实时监控,但Wi-Fi通信距离较短,功耗也相对偏高。窄带物联网(Narrow Band Internet of Things,NB-IoT)[5-7]的出现为医药冷链监测系统提供了新思路。NB-IoT作为一种基于蜂窝网络的低功耗广域无线接入技术,具有大连接、广覆盖、深穿透、低成本、低功耗等优点,在智能测量、智能家居和环境监测等领域有广泛应用[8-10],但是与医药冷链监测系统相结合的研究却较少。
本文设计并实现一套以433 MHz频段ZigBee为WSN通信协议,以NB-IoT通信方式远距离接入广域网的多传感器医药冷链监测系统。该系统选择433 MHz频段作为WSN通信频率,相比高频段穿透性更强、传输距离更远;选择NB-IoT通信技术实现数据远程传输,相比使用GPRS实现远程传输数据更高效更低耗;提出一种多传感器数据融合方法,保证医药冷链监测数据的真实性与可靠性,为NB-IoT与WSN相结合的多传感器医药冷链监测系统的应用提供可行性方案。
1 系统整体通信架构
该系统整体通信架构参考物联网分层模型,并面向医药冷链监测场景进行适应性应用,如图1所示。自左向右分为感知层、网络层和应用层。感知层利用传感器实现医药冷链的信息采集、感知与控制;网络层支撑感知层的冷链信息传递、路由和控制;应用层针对医药冷链的业务需求进行信息处理[11]。将该模型实例化,感知层由多个传感器节点和网关节点构成,主要采集医药冷链的温度、湿度、加速度、光照强度等信息,节点间通过433 MHz频段无线通信组成WSN,网关节点通过NB-IoT直接连接至广域网;网络层由NB-IoT基站、NB-IoT核心网及NB-IoT平台组成,该部分由运营商负责;应用层由用户云服务器及人机交互系统组成。
图1 系统整体通信框架
2 终端硬件设计
终端硬件设计主要分为传感器节点硬件设计和网关节点硬件设计两部分。
2.1 传感器节点硬件设计
传感器节点需要实现采集监测点数据和无线组网传输数据的功能。因此,硬件设计主要包含KW01Z128硬件最小系统、射频天线前端电路及传感器信息采集模块。
(1) KW01Z128硬件最小系统。KW01Z128芯片集成了KL26Z128芯片与SX1231射频收发器,两者之间通过内部SPI通信,本系统选择KW01Z128芯片,既能满足对主控器低功耗的需求,也能避免增加独立射频收发器的不便。KW01Z128芯片是一款基于ARM Cortex-M0+内核的32位MCU,具有低功耗、高集成、扩展性强等特点,且芯片内部集成射频收发器,在WSN领域有广泛使用。该MCU工作频率高达48 MHz,拥有128 KB的Flash和16 KB的SRAM,提供UART、SPI、I2C等多种外设接口,扩展方便。其硬件最小系统如图2所示。
图2 KW01Z128硬件最小系统
(2) SX1231射频天线前端电路。SX1231是一款Sub 1 GHz的超低功耗射频收发控制器,具有出色的灵敏度和高选择性,支持多种无线频段,具有低功耗、低成本、高度集成、通信稳定等特点,适用于诸如工业监测、智能家居、智能城市等多种物联网产品的研究与开发[12]。由于射频收发器集成在KW01Z128内部,所以该模块电路部分囊括在KW01Z128最小硬件系统中,而射频前端电路需要适配433 MHz的载波频率,做出恰当的阻抗匹配并留出天线接口。射频前端电路如图3所示。
图3 SX1231射频收发器天线前端电路
(3) 传感器信息采集模块。为获取医药冷链关键状态信息,可借助热敏电阻、湿度传感器、光敏电阻等传感器对医药冷链的环境进行数据采样。表1给出各传感器型号、与主控芯片KW01Z128的通信方式、量程及分辨率和功能说明。
表1 传感器采样方式及功能说明
2.2 网关节点硬件设计
网关节点需要与获取医药冷链信息的传感器节点无线组网,并将传感器数据通过NB-IoT通信方式传输至服务器。因此,网关节点硬件设计包含KW01Z128硬件最小系统、射频天线前端电路与ME3616硬件最小系统。其中KW01Z128硬件最小系统和射频天线前端电路与传感器节点一致,这里不再赘述。ME3616是一款支持NB-IoT通信标准的窄带蜂窝物联网通信模组,能够提供最大66 Kbit/s上行速率和34 Kbit/s下行速率,支持UART接口,具有小尺寸、低功率、远距离等优点。ME3616通过UART与主控芯片KW01Z128相连,将处理后的传感器数据远程传输至服务器。其硬件最小系统如图4所示。
图4 ME3616硬件最小系统
3 系统软件设计
系统软件设计分为传感器节点软件设计、网关节点软件设计、多传感器数据融合三部分。
3.1 传感器节点软件设计
传感器节点软件主要功能需求为实现433 MHz频段ZigBee通信和采集处理医药冷链传感器数据。软件采用模块构件化编程思想,将ZigBee通信功能相关函数封装成ZigBee构件,实现射频收发器初始化、ZigBee协议封装发送、ZigBee数据包接收解帧和重复振帧过滤等功能;将传感器数据采集处理相关函数封装成sensor构件,实现传感器初始化、传感器数据采集和传感器数据滤波处理等功能。在主函数中调用相应功能函数,最终实现传感器节点软件需求,程序流程如图5所示。
图5 传感器节点软件流程
传感器节点上电后,主控芯片首先读取存放在FALSH最后一个扇区的节点配置参数,如射频模块硬件滤波地址、射频模块软件地址和节点传感器类型等,并使用读取的参数初始化芯片外设及射频收发器。进入主循环后,周期性采集多传感器的医药冷链数据,根据不同类型传感器确定不同采集间隔,数据采集完成后,对数据进行异常数据滤波处理,最终对正常数据按传感器类型进行均值化,最终确定各个传感器数据,并将传感器数据封装成ZigBee数据包通过射频模块发送。主循环正常进行的同时,若节点接收到ZigBee数据包,将进入射频接收中断,在本系统中表现为UART中断,中断内完成数据包接收和解析,跳转回主循环后,在循环中执行数据包中命令对应的操作。
3.2 网关节点软件设计
网关节点软件功能主要实现多传感器数据汇总和ZigBee协议与NB-IoT技术的转换。使用传感器节点软件已经封装的ZigBee构件,并新增NB-IoT通信相关的uecom构件,用于实现NB-IoT模块初始化、NB-IoT连接、NB-IoT数据包收发等功能。在主函数中调用相应功能函数,最终实现网关节点软件需求,程序流程如图6所示。
图6 网关节点软件流程
网关节点上电后,读取FLASH中节点配置、射频模块和NB-IoT通信模组相关参数,并对芯片外设、射频模块和NB-IoT模块进行初始化。接着进入主循环,在主循环中不断检测是否触发中断,当节点接收到ZigBee数据包,在中断中对数据包进行接收解析,并封装成NB-IoT数据包。接着初始化NB-IoT模块,建立TCP连接,发送NB-IoT数据包;如果数据发送失败,则通信模组ME3616再次执行初始化、连接基站、上传数据操作,如果发送成功,则再次循环检测是否触发中断。系统的这种“数据发送失败重传”机制,有利于保证数据传输的可靠性。
3.3 多传感器数据融合方法设计
自适应加权融合算法根据各传感器历史数据求出对应方差,对历史监测数据的依赖度极大,一旦样本量过大,极易使方差值变得僵化。分批估计理论对监测数据进行分批处理,使得方差根据样本的变化而改变,从而有效避免监测数据误差所导致的融合结果偏差,进而提高整个系统的容错性和鲁棒性。因此,本文结合分批估计理论,将多个传感器多次采样的结果进行自适应加权平均融合处理。
将n个传感器的所有数据按照时间段分为若干组,然后对每个传感器各组内的数据做分批处理,过程如下。
(2) 计算该时间段内每个传感器的最小平方误差,表达式如下:
(1)
(3) 计算该时间段内每个传感器的融合值,表达式如下:
(2)
对传感器数据进行分批处理后,然后进行自适应加权平均融合,具体过程如下。
(3)
(2) 为达到数据融合的目标,得到总方差最小的融合值,即:
(4)
(5)
此时Wi为:
(6)
(4) 最终融合值为:
(7)
为测试基于分批估计的自适应加权融合方法的置信度,本次实验使用自适应加权平均融合方法和基于Rough集理论的多传感器数据融合方法进行数据融合置信度比较。温度传感器节点传输半径为80 m,数据采集半径为20 m,传输数据包的大小为500 bit/s,将10个温度传感器测得的温度数据按时间段分为若干组,每组均为连续10个时间点的监测数据,测试三种融合方法的置信度,如图7所示。
图7 三种数据融合方法置信度对比
实验结果表明,基于Rough集理论的多传感器数据融合方法的融合置信度最高为0.801,自适应加权平均融合方法的融合置信度最高为0.679,本文所使用的基于分批估计的自适应加权融合方法的置信度最高为0.971。通过实验对比结果可知,在多传感器医药冷链监测系统中,使用本文方法,融合置信度最高,融合效果更好。
3.4 用户云服务器软件设计
用户云服务器作为医药冷链终端和人机交互系统的通信桥梁,负责医药冷链数据的接收、存储与处理。云服务器上的侦听程序一方面侦听终端发来的数据,一旦侦听到数据,就把它接收下来,并存放到数据库中;另一方面为人机交互系统中的各种客户端程序提供数据访问接口,并能够反馈数据到终端,达到远程控制医药冷链终端的目的。终端与用户云服务器之间通过嵌入式应用层驱动构件uecom实现通信;终端与人机交互系统中客户端程序之间的通信接口采用WebSocket协议方式,通过通信接口类HCICom实现通信。
3.5 人机交互系统软件设计
在人机交互系统软件方面,设计了客户端程序、WEB网页、微信小程序、Android App等,用来显示医药冷链终端上传的数据以及将数据回发给终端,以满足不同用户的需要。
4 系统测试
4.1 网关整体通信测试
为测试医药冷链系统整体通信性能,搭建1个网关、3个温度传感器节点、3个湿度传感器节点和4个光照传感器的自组网,通过网关收集不同类型医药传感器节点数据,上传至用户云服务器,由运行在服务器端的侦听程序接收统计数据包,检验网关从收集数据到上传数据的丢包率。
在整个系统供电正常和NB-IoT基站信号良好的前提下,保证所有类型传感器节点正常运行,通过网关连续收集10个不同类型传感器节点的1 000个数据包,统计接收、丢失、错误数据包的数量;同时改变网关与不同类型传感器节点的通信距离,测试网关收发数据的性能,测试结果如表2所示。
表2 网关整体通信丢包率和误包率测试
从统计结果可以看出,该网关采用的“数据发送失败重传”机制效果明显,测试结果良好,可实现预期设计目标。丢包率虽然随着通信距离有一定的增长,但仍在可控范围,通信稳定性和可靠性完全可以满足医药冷链监测场景的需求。
4.2 医药冷链数据融合测试
为测试医药冷链监测系统中多传感器数据融合方法的有效性,选择一般药品作为实验对象,其温度储存范围是0℃~8℃。本次实验为得到医药冷链的温度融合信息,设置10个温度传感器,以获取医药冷链10:00-12:00内连续10个时间点的温度监测数据,选择其中一组数据,如表3所示。
表3 10个温度传感器采样数据 单位:℃
使用本文提出的多传感器数据融合方法计算该时段内10个温度传感器的最小平方误差、融合值、最优权值,如表4所示。最终可得该时段内温度融合值为:
表4 融合值最小平方误差和最优权值W
同理,可得到该时段内医药冷链环境的湿度为65.912 145%RH,光线强度为357 lx。多传感器数据融合结果与真实测量值之间的相对误差如表5所示。
表5 多传感器数据融合结果与相对误差比较
由表4和表5可知,采用分批估计进行数据融合,得到的方差可根据监测数据的变化而改变,由此避免数据量过大时产生方差值僵化。同时,采用本文所提出的多传感器数据融合方法得到的数据更接近于测量值,且相对误差小于自适应加权平均融合方法与基于Rough集理论的多传感器数据融合方法的融合结果,因此可保证医药冷链环境数据的精确性与准确性。
5 结 语
本文设计一套基于NB-IoT与WSN相结合的多传感器医药冷链监测系统。该系统以NB-IoT作为医药冷链终端与用户云服务之间的通信方式,有效降低系统整体功耗;同时结合WSN技术,利用本文提出的多传感器数据融合方法,可以稳定且准确地监测医药冷链环境。测试结果表明,网关整体通信稳定可靠,医药冷链监测数据稳定精准,对医药冷链监测系统的实际应用具有重要价值。