基于ZigBee的冷库环境监测系统设计
2021-09-13王志明杨金鑫丁忠昌
王志明 杨金鑫 丁忠昌
摘 要:文章以温湿度和二氧化碳浓度作为监测参数,选择CC2530作为系统节点的核心芯片,设计并实现了基于ZigBee技术的冷库环境监测系统;进行了其他相关硬件电路的设计,完成了节点的硬件设计;在硬件的基础上结合ZigBee协议栈对协调器、路由节点和终端节点的软件以及传感器采集数据程序进行了设计;最后对系统的上位机进行了设计与实现。
关键词:ZigBee; 冷库贮藏; 环境监测系统; 系统设计
0 引言
自从19世纪中叶制冷机出现后,将食品如水产品、肉类食品、乳制品、农产品等放置于冷冻、冷藏设备中贮藏成为食品保质保鲜的主要措施。随着现代科学技术的迅猛发展,越来越多的新科技被应用到冷冻、冷藏设备中进行环境(温度、湿度等)监测,例如设备向智能化、控制远程化、参数多元化和操作的便捷简易化方向发展。1987年加拿大安大略省园艺研究所Lauro等[1]对果蔬储藏温、湿度监测设备增加了气体浓度和其他相关参数的监测功能。2004年韩国木浦国立大学Lim等[2]对冷库环境进行远程监控,采用有线方式进行了冷库温度的监测,开发了便捷简易的操作软件。2016年葡萄牙波尔图大学Sousa等[3]设计的环境监测系统对冷库的温度、相对湿度、用电功耗和冷库门开关的状态等进行监测。2016年印度蒂鲁吉拉伯利国立技术学院Kumar[4]利用无线通信方式对冷库的温湿度和气体浓度以及其他参数进行监测。2017年印度蒂鲁吉拉伯利国立技术学院Sathish 等[5]运用ZigBee技术构建了无线传感器监测系统,除了监测常规温湿度之外,增加了光照强度监测,并通过模糊逻辑控制器实现参数的控制。2017年印度班加罗尔工程学院Chandanashree等[6]运用物联网技术、嵌入式操作系统进行组网和各节点终端的开发。在国内,2006年桂林工学院赵政春等[7-8]用CAN總线技术以及数字传感器进行冷库环境的监测,同时对大范围的冷库区域通过布置多个节点来得到更精确的测量结果。2007年西北农林科技大学的高宝平等[9]在监测参数方面增加了气体的监测和互联网的连接,进而能够实现更大范围的冷库监测。2013年山西大学的张军等[10-11]在冷库监测中增加了GSM报警功能,实现了对监测参数的远程预警。
目前国内冷库、冷藏货架的监测设备存在环境参数单一、数据传输方式不灵活、数据处理方式的抗干扰能力差等问题,而食品储藏环境冷库、冷藏货架设备的网络化、智能化和安全化是未来若干年的发展方向,其中比较适合使用的就是ZigBee无线通信技术,使用无线数据传输方式逐步取代有线的传输方式。本文将无线传感器技术应用在冷库的监测中,通过对冷库环境、ZigBee技术以及数据融合算法的研究,设计并实现了基于ZigBee技术的冷库环境监测系统。
1 硬件设计
ZigBee名称的命名来源于蜜蜂采蜜时相互之间的交流方式。当蜜蜂发现花粉源,会通过跳“之”字形舞蹈(英文名称为Zigzag)通知其他蜜蜂花粉源的信息,如距离、方位、多少和其他与位置相关的信息,实现信息共享。蜜蜂这种传递信息的方式具有体积小、距离近、能耗少和全向性等特点,这跟无线数据传输技术的体积小、能耗低和近距离传输等特点非常类似。因此,人们将ZigBee代表这种新兴的短距离无线通信技术。在此之前,ZigBee也被称为“HomeRF Lite”“RF- EasyLink”或“fireFly”无线电技术,从这些字面上也可以理解这种技术的特点。
ZigBee的物理层工作在868 MHz,915 MHz和2.4 GHz这3个频段上,868 MHz和915 MHz是欧洲和美国专有, 2.4 GHz在全球范围内都可以使用。因此,国内的ZigBee设备一般都使用2.4 GHz的频段,其速率也最高。
随着ZigBee技术的飞速发展,很多大的半导体公司都推出了能够支持IEEE 802.15.4标准即ZigBee技术的射频芯片,CC2530是TI公司推出的用于2.4 GHz的IEEE 802.15.4/RF4CE/ZigBee的第二代芯片的片上系统,具备低功耗、射频功能强大、增强型内核、多种独有资源和功能的特点。针对ZigBee协议内置了特有的一些资源和功能,如4个定时器中T2定时器为MAC层定时器,硬件具有AES安全协处理器并支持可靠性更高的CSMA/CA,能够将RSSI等链路质量数字化,还配备有内置的8通道12位可配置分辨率的ADC。由于CC2530具有如此多样的功能特性,且其基于8051的内核以及较广的应用,成本也较低,因此本系统采用的射频芯片为CC2530芯片。
本文所做的冷库环境监测系统选用SHT10数字温湿度传感器,它由一个电容性聚合体测湿敏感元件、一个用能隙材料制成的测温元件和信号处理电路集成在一块芯片上,通过IIC协议进行通信,输出经过标定的数字信号,具有体积小、功耗低、抗干扰性能强、响应速度快、性价比较高等优点。部分食品保鲜制冷设备采用气调冷库形式,因此需要实时监测冷库中的二氧化碳浓度。本系统选用了能够在-40 ℃低温下工作的SGP30数字二氧化碳传感器,它是一种金属氧化物气体传感器,芯片上集成了多个传感元件,有较强的抗干扰和低漂移特性,具有温度补偿功能,可以对CO2浓度进行测量。二氧化碳传感器与温湿度传感器的通信方式一样,也是支持IIC通信协议的IIC器件,与主控连接后需要通过I/O口模拟IIC总线测量气体。在ZigBee技术的应用中,需用大量的代码进行ZigBee协议的实现,而这些代码是要在无线芯片(例如本文中的CC2530)上运行,因此,需要一种适合该硬件场景的编译器(Embedded Workbench)进行软件的开发。本文选择TI官方推荐的瑞典软件公司IAR的产品IAR集成编译器进行软件功能开发。IAR是专门为嵌入式软件开发设计的一种交叉编译器,它支持多种8位、16位、32位处理器的开发,其中就包括本文所用的基于8051内核的CC2530芯片。IAR能够实现C/C++语言程序的编译,从仿真器还可以进行程序的下载、仿真和在线调试;它可以输出多种格式的目标文件,方便第三方软件进行其他功能应用和接口使用。由于在ZigBee的开发中需要Z-Stack协议栈与IAR配合,因此它们的版本要兼容,否则会导致无法编译。在本系统中,Z-Stack协议栈使用的版本是ZStack-2.5.1a,IAR的版本是IAR EW8051-8.1,是兼容的。
硬件功能模块由4个模块组成(见图1)。
(1)采集模块。
采集模块主要是利用传感器将需要采集的环境信息进行较为准确的测量。目前的传感器一般可分为数字传感器和模拟传感器,对于本系统而言,出于系统的便利性考虑,使用的传感器都是数字传感器。数字传感器只需要连接相应的I/O口,然后利用软件读出测量的数据即可完成测量。
(2)控制器模块。
控制器模块主要是单片机最小系统的构建,在本系统中使用无线芯片,主要是保证芯片能够正常运行。
(3)通信模块。
本系统的通信主要分为两个部分:与PC间的通信和各节点之间的通信。与PC的通信一般是使用串口(USART)通信,由于PC常用USB通信方式,因此需要进行USART-USB的转换。无线通信部分则是保证无线数据的收发正常,一般是使用天线进行收发。
(4)电源模块。
目前的无线芯片和多数传感器都使用3.3V电压供电,本系统也使用3.3V供电,但为了系统的拓展性和电压的稳定性,总的供电电压选择5V,同时预留5V的输出接口,3.3V电压则使用稳压器进行3.3V电压输出。考虑到便携性,除协调器外的无线节点不仅可以采用直接电源供电,还可选用5V电池供电。
2 软件设计
系统软件设计主要包括各节点上的软件设计和上位机端的软件设计两大部分。由于各类节点的功能不同,所以各节点的软件部分设计也各有不同,如终端节点需要进行数据采集,路由节点侧重于数据转发,协调器需要与上位机通信等。上位机的软件设计主要侧重对采集到的最终数据的处理,能够显示处理结果和进行相应的提示和预警(见图2)。
数据终端采集节点主要控制相关传感器进行物理量、化學量参数的采集,并周期性循环地将采集到的数据进行一级融合,然后将融合后的数据发送给母节点。数据采集节点的软件流程如图3所示。
本文在程序中将每个传感器所测量的物理量、化学量参数代码封装成函数形式以方便调用。具体应用中,可以直接利用这些函数进行数据的获取和计算,并将融合值发送出去。考虑到冷库环境监测系统的能源消耗和各种环境参数变化较为缓慢,可以将数据周期性地发送出去,这在整个程序流程中加入延时程序即可以实现。
本文所涉及的硬件系统有两种传感器,即温湿度传感器和二氧化碳传感器,它们都是通过I/O口模拟IIC协议进行测量。本文对这两种传感器的测量程序进行了设计。
(1)温湿度传感器。
温湿度传感器的测量主要是利用IIC总线进行命令的发送和数据的接收,SHT10主要的命令集如表1所示。
温湿度测量的程序流程如图4所示。
首先通过复位时序进行IIC总线的复位,然后发送启动时序进行数据传送的初始化,将命令集中的相应命令指令写进传感器即可读取测量数据,读取出的数值再经过公式计算就可以完成冷库环境温湿度物理量的测量。在I/O口模拟IIC通信的过程中最重要的是时序的模拟,利用与时钟和数据总线相连的I/O口进行高、低电平的切换和延时即可实现特定的时序。下面是部分通过I/O口模拟IIC协议的代码:
#define SCK1 P0_5
#define DATA P0_7
P0DIR |= 0xA0;
DATA = 1; SCK1 = 0;
_nop_();
SCK1 = 1;
_nop_();
DATA = 0;
……
本系统中的温湿度传感器将P05和P07两个I/O口分别作为时钟线DATA和数据线SCK,SCK一直是由主控输出,而DATA在写和读时分别作为输出和输入,因此在不同的操作中要进行相应的引脚配置。
(2)二氧化碳传感器。
本系统中的二氧化碳传感器和温湿度传感器一样,利用I/O口模拟IIC协议进行测量,其程序流程如图5所示。
SGP30的测量流程与SHT10的测量流程类似,SGP30严格按照IIC协议的时序进行传输,没有特定的复位和启动传输时序,所有的功能都是通过写具体的命令来实现的。SHT10没有IIC地址,SGP30的地址为0x58。
SGP30的部分命令集如表2所示。
上位机开发使用C#语言进行程序的实现,C#是由C语言和C++语言衍生出的一种面向对象的程序设计语言,它兼有C和C++的强大功能,但使用起来比这两种语言要简单,易于上手。此外C#还具有VB的可视化操作,可以直接面向组件编程。上位机的开发环境选择Visual Studio 2015,该开发环境可以支持多种语言的编译,如C/C++/C#等主流编程语言,同时具有界面开发和其他功能相关的控件,能够很好地进行上位机界面的开发。
上位机的主要功能是进行冷库环境信息物理量、化学量参数的接收、存储、处理、显示、预警等,同时为了确保安全性,也需要具有密码登录等功能。上位机各功能的构成如图6所示。
上位机的主要流程如图7所示。打开上位机软件后,首先进入登录模块,登录模块是为了确保整个上位机的安全,防止无关人员使用该软件。如果输入数据库中储存的正确的工号和密码,就可以进入上位机监测界面,而如果输入的信息与预设的不符,就会提醒重新输入。
登录成功后的上位机的界面设计如图8所示。考虑到使用串口通信,左侧界面设置了串口开关以及波特率和串口的选择,右侧界面设置为冷库环境监测界面,ZigBee协调器发来处理后的环境参数信息都是在这里显示。本文监测系统和软件兼备预警的功能,可以针对具体的储藏物品的最适宜环境进行各种参数的上下限区间设置,如果某一节点经过一级融合后的某参数超过了该参数设置的区间,会弹出具体异常情况的预警框,同时会在提示信息框提示某节点显示异常,提示工作人员进行核对查看。如果经过二级融合后参数仍然异常,说明问题比较严重,系统就会直接弹出预警框告知存在某种参数异常,并在提示框进行提示。系统在接收到数据后即自动存储,此外系统也对预警信息进行存储,为了方便查看,这些信息直接存储在上位机中。
3 结语
本文针对目前冷库所监测的环境参数单一、数据传输方式不灵活、数据处理方式的抗干扰能力差等问题,以ZigBee技术作为系统的通信方式,进行了冷库环境温湿度、二氧化碳浓度监测系统的设计。选择CC2530作为系统的无线芯片,设计了相关硬件电路,并完成传感器的选型;软件方面,基于ZigBee协议栈设计了节点的程序,对协调器、路由器和终端节点进行具体的软件设计,以及在终端节点的软件设计中包括传感器数据采集的程序设计;基于C#语言的上位机的软件设计,开发设计了上位机的具体界面。
[参考文献]
[1]LAURO E M. Temperature monitor and alarm system for cold storage rooms [J].International Journal of Refrigeration,1987(2):106-107.
[2]LIM D Y,RYOO Y J. Development of remote monitoring system for cold-storage [C].Conference of the IEEE Industrial Electronics Society,IEEE,2004.
[3]SOUSA P J,QUINTAS M,ABREU P. Monitoring system for cold storages [C].2015 3rd Experiment International Conference(exp.at15). IEEE,2015.
[4]KUMAR A S,SUDHA S. Design of wireless sensor network based fuzzy logic controller for a cold storage system[C].IEEE Power India International Conference,IEEE,2016.
[5]SATHISH K A,SUDHA S. Hardware realization of fuzzy logic driven PWM controller for a cold storage system[C].2017 2nd IEEE International Conference on Recent Trends in Electronics,Information & Communication Technology(RTEICT),Bangalore,2017.
[6]CHANDANASHREE V C,BHAT U P,KANADE P,et al. Tinyos based WSN design for monitoring of cold storage warehouses using internet of things[C].International Conference on Microelectronic Devices,Circuits and Systems,2017.
[7]趙政春,陆绮荣,孙秀桂. CAN总线的冷库控制系统 [J].计算机测量与控制,2006(10):1334-1337.
[8]曾斌.基于CAN总线的冷库监控系统设计[D].长沙:湖南大学,2009.
[9]高宝平.基于LabVIEW的冷库检测与控制系统的设计[D].杨凌:西北农林科技大学,2007.
[10]张军.冷库温度监测与信息管理系统设计[D].太原:山西大学,2013.
[11]杨金鑫,王志明.基于多无线传感器的改进数据融合算法[J].仪表技术与传感器,2020(8):118-121.
(编辑 王雪芬)