基于STM32的冷库环境远程监测系统

2021-11-22 08:13张志远杨永康刘明鑫张伟利
物联网技术 2021年11期
关键词:冷库网关远程

张志远,杨永康,刘明鑫,张伟利

(郑州轻工业大学 机电工程学院,河南 郑州 450000)

0 引 言

冷库作为食品保鲜的主要场所,其状态的稳定是保证冷藏食品安全卫生的必要前提[1]。因此,冷库状态监控非常重要。

传统的监测方式大多采用单点监测和人工轮流值守的方式,但由于风机间距及食物摆放的原因,这种方式可能出现局部温度偏高时无法及时报警、人工查看容易疏漏和监控效率低等问题。因此,对冷库进行全方位、高效率、便捷远程监测就成为了解决问题的关键。文献[2-3]设计了立体仓库的分布式温度监控系统,通过协议或光纤组成主-从式网络,实现一台主机与多台从机进行通信,由主机对从机数据进行分析和储存,通过多点集中管理,实现了对立体仓库全方位的状态监测。文献[4-6]采用无线传感器网络WSN和非接触式识别技术相结合的方式,由CC2530作为主控板进行信息采集,通过GSM/GPRS技术将采集的信息传至固定上位机进行远程监测,大大提高了数据的传输效率。文献[7-10]结合了物联网技术和无线传输技术,基于ARM或DSP处理器对冷库状态信息进行采集,通过无线传输技术将采集到的信息传到上位机或数据库进行查看和储存,实现对冷库的远程监测,提高了监测的便捷性。

为实现对冷库全方位、高效率和更加便捷的监测,本文基于物联网技术和智能控制技术,设计一种基于STM32的冷库环境远程监测系统。系统中由STM32和温度、氧气浓度等传感器对冷库状态信息进行采集,通过RS 232接口基于Modbus通信协议将数据传送给网关,网关通过MQTT通信协议将数据上传到云平台服务器,云平台服务器收到这些数据进行缓存和存储,并通过编程实现数据在Web页面展示以及冷库环境信息的远程采集和控制。管理人员随时可以通过手机浏览器或电脑端对冷库的状态进行查看,实现对冷库全方位的监测,提高监测效率和数据查看的便捷性。

1 系统架构

本系统整体结构框图如图1所示,主要分为采集上传和远程监测两部分。采集上传部分由电源模块、采集模块、控制模块和传输模块组成。通过温度传感器、氧气浓度传感器等传感器组成的采集模块完成对冷库内环境参数的采集,将采集到的数据信号传输给主控芯片STM32F103VEP6,由主控芯片对数据进行分析。一旦出现数据高于或低于设定值,单片机会进行报警提醒,提示管理人员进行查看。然后STM32将数据打包通过RS 232接口将数据交给网关,再由网关通过MQTT通信协议将数据上传到物联网云平台服务器,服务器再对数据进行储存。远程监测部分主要包括能够连接云平台服务器的手机或PC机,通过手机APP或PC端监测程序连接服务器,将服务器上缓存的温度传感器和氧气浓度传感器所测得的数据以折线图的形式展示出来,方便用户或管理人员进行查看对比。

图1 冷库状态远程监测系统架构

2 采集上传硬件设计

2.1 电源模块

本系统采用12 V固定电源供电,通过TSP5430集成降压芯片和LM1117-3.3稳压芯片为系统提供5 V和3.3 V电源。同时系统配有备用电池,即使处于断电的环境下,整个系统依旧能够正常工作。3.3 V电源为主控制芯片和温度传感器等设备进行供电。其电路如图2所示。

图2 3.3 V电源电路

2.2 采集模块

传感器作为整个系统的信息来源,可以根据不同的冷藏环境需求对冷库主要工作区域进行重点监测。由于风机间距以及货物间距会对冷库温度场产生影响[11],所以系统使用多个温度传感器测量冷库不同位置的温度。

(1)温度传感器:主要是对冷库内环境温度进行测量。根据储藏食物的种类不同,冷库的温度调节范围大致为-20~10 ℃[12-14]。因此系统选用K型封装PT100铂电阻温度传感器,测量范围为-50~300 ℃,显示精度为0.1 ℃,综合精度为0.3 ℃,满足冷库环境变化测量需求,并且具有较好的稳定性,其具体特性见表1所列。由于直接通过PT100电阻变化引起电阻桥输出的压差信号较小,因此不能够直接应用于与单片机的接口中,须进行信号放大处理,其电路如图3所示。

表1 PT100特性参数表

图3 PT100电路图

(2)氧气浓度传感器:主要用于测量冷库环境中氧气浓度。氧气浓度的多少决定了果蔬储存时间的长短,一般冷库内氧气含量保持在1~10%。因此系统选用KE-25氧气浓度传感器,其特性参数见表2所列。

表2 KE-25特性参数表

根据需要通过信号调理电路,将信号放大至冷库适用范围,量程设计为0~30%,误差不高于±0.5%。其输出电压信号由所接电阻两端的电压通过温度补偿后获得,输出电压的变化就表示氧气浓度。

2.3 控制模块

冷库的运行状态采用分布式采集,以小型冷库为例,库房中均匀性布点测温传感器数量至少为9个,再加上氧气浓度传感器,至少需要30个I/O接口;如果要扩展的话,还需要更多。这要求主控单片机拥有足够多的I/O接口,对数据的处理速率也有较高的要求,再结合芯片的成本以及冷库内特殊的环境温度,所以系统的控制芯片选用基于ARM Cortex-M3内 核 的 STM32F103VEP6。STM32F103VEP6是STM32F系列的增强型型号,具备32位的CPU性能,内置512 KB的FLASH,是同类产品中性能较高的产品,其具体功能配置见表3所列。同时STM32作为当下主流的微处理器有其显著的优势,体积小、性能强大、功耗低、外设丰富等优点使其能够在大部分应用场景中使用[15]。低电压和节能也是其主要优势,2.0 V到3.6 V的电压就可以支持系统长时间工作,即使是处于断电的环境下,整个系统依旧能够正常工作一段时间。

表3 STM32F103VEP6功能配置

2.4 传输模块

整个系统所连接的传感器至少有10个,即每次上传的数据有10组,每组数据最大值为4 B,每次上传的数据就有40 B,同时还要对每组数据进行封装打包,所以系统选用工业网关对数据进行传输。考虑到系统的可扩展性,同时结合冷库中的温度环境以及开发成本,系统选用基于ECU-1051TL RISC的工业通信网关。ECU-1051TL为开放式平台设计,使用Cortex A8处理器,带DDR3L 256 MB RAM,串口速率能达到50~115.2 Kb/s,支持Web服务已进行远程在线监测,具有两个10/100以太网端口,支持MQTT客户端进行云通信,工作温度范围为-40~70℃,满足系统要求。网关基于MQTT协议将数据打包发送至物联网云平台服务器。消息队列遥测传输协议(Message Queuing Telemetry Transport, MQTT)是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通信协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT的最大优点在于:可以以极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通信协议,其在物联网、小型设备、移动应用等方面应用较广泛。该协议实现方式如图4所示,其中消息的发布者和订阅者都是客户端,消息代理者是服务器,消息发布者可以同时是订阅者。

图4 MQTT协议实现方式

2.5 物联网云平台

云平台服务器作为与用户或管理员交互最多的部分,同时也是数据的存储中心,对其性能的要求较高。目前较为常见的云服务器有阿里云服务器、腾讯云服务器、小米云服务器、百度云服务器等,但大部分都是用于商用大数据分析。考虑到为冷库使用,结合云服务器的性能和成本,本系统选用戴尔R740物联网云平台服务器,可以通过电脑远程登录,拥有高性能的硬件配置、数据处理快、储存空间足、传输速率快等优点。戴尔R740最多可同时记录18组数据,每组数据最大值为4 B,18组为72 B;按照每秒上传一次数据,一次上传18组数据,一天须存储6 220 800 B,也就是5.94 MB,一年连续工作需要2.2 GB存储空间,服务器储存硬盘为2.5 TB,完全满足存储需求。其应用架构如图5所示。联网平台的基础服务包括设备连接管理服务、存储服务、数据可视化服务、Web服务。接入物联网云平台后,通过连接管理服务对设备的连接进行管理;其他服务通过订阅MQTT消息,实现对终端设备消息的解析、计算、存储,并通过接口服务为物联网应用层提供数据调用接口,应用层通过接口服务获取终端节点的监测信息和对终端节点进行控制。应用层实现数据可视化服务。

图5 云平台应用架构

3 系统软件开发

系统软件开发分为采集上传和远程监测两部分。

(1)采集上传部分:是整个系统的基础部分,这一部分的稳定决定了采集数据的准确性以及远程监测对冷库运行状态的准确判断。此部分主要包括单片机系统初始化配置、传感器数据的读取、数据的比价分析和数据打包上传4个模块。结合系统选用的传感器和控制芯片,采集上传部分选用Keil MDK作为软件开发工具,主程序用C语言进行编写[16]。其流程如图6所示:系统上电复位后进行一系列初始化配置,先进行时钟配置和中断优先级的配置;然后模块进行初始化,其中包括按键初始化、LED初始化、ADC初始化、串口初始化以及定时器初始化。初始化完成之后就可以读取各个传感器的数据,并将数据与设定的标准值进行对比,若数据高于设定的值,则进行报警提示;然后将数据进行打包,通过RS 232接口基于Modbus通信协议将数据交给网关,再由网关通过MQTT通信协议将数据上传到云平台服务器,服务器收到这些数据进行缓存和存储。为实现实时监测,系统设置每4 s读取一次传感器的数据,并打包上传至云服务器,保证数据的实时性。

图6 单片机主程序流程

(2)远程监测部分:该部分的软件设计主要是针对客户端,实现用户和服务器之间的交互作用,监测部分软件使用JavaScript进行设计。其流程如图7所示,用户或管理人员通过手机APP或PC端等能连接云平台服务器的设备进行登录;登录之后会自动向网关发送收集数据的请求指令,网关收到请求后通知现场的采集模块进行数据采集;采集完成后将数据上传至云平台服务器,再由服务器通知网关数据收集完成;同时云服务器的Web服务将数据以折线图的方式通过页面展示给用户或管理人员,以此达到实时监测的目的。

图7 远程监测程序流程

为了可以实时采集并监控数据,系统选用的是InfluxDB时间序列数据库,简称时序数据库(Time Series Database),其最大的特点就是每条数据都带有Time列。InfluxDB数据库不仅可以按时间写入InfluxDB,也可以按不同纬度聚合查询和展现监控数据,更可以持续查询、定时归集指定时间的数据,展现更大时间范围的监控数据;并且还提供了HTTP/API直接访问,即通过固定的网址或API接口即可查询数据,系统部分API接口设置见表4所列。

表4 部分API接口设置

4 软硬件调试

由于实验室设备条件原因,调试时使用恒温箱代替冷库进行实验,并将恒温箱温度设置为5 ℃。将各个传感器模块连接到核心控制板上,将主程序烧录进单片机里,确认单片机与网关和云平台服务器之间通信正常,调试安装如图8所示。系统运行之后用手机浏览器登录服务器对采集到的数据进行监测查看,结果如图9所示。两个温度传感器所测位置不同,温度相差0.2 ℃,在误差允许范围内[17]。各个模块工作正常,能够随时对冷库的环境进行监测,对可能出现的问题进行及时的排查。同时,监测到的历史数据也以Excel表格的形式进行储存,方便对以往的数据进行查找,图10所示为历史数据。

图8 系统安装调试

图9 远程监控界面

图10 历史数据

5 结 语

本文经过实验得出以下结论:

(1)本文设计的冷库远程状态监测系统运行良好,能够对冷库状态进行远程监测,运行稳定。

(2)在冷库的主要工作区域布置多个传感器,能够实现对冷库状态较全面的监测。

(3)通过网关对数据进行传输,数据传输效率高;同时,使用云平台服务器进行数据存储,有效地缓解了上位机的存储压力。

(4)系统能够应用PC端和手机端等联网设备随时对冷库状态进行查看,没有时间地点的限制,提高了对冷库状态监测的便捷性。

猜你喜欢
冷库网关远程
让人胆寒的“远程杀手”:弹道导弹
冷库上“云端” 共享促共富
远程工作狂综合征
四十余家肉类企业被暂停进口
善良不会被辜负
远程诈骗
应对气候变化需要打通“网关”
一种实时高效的伺服控制网关设计
基于Zigbee与TCP的物联网网关设计
一次神奇的远程渗透破袭战