張志遠,楊永康,劉明鑫,張偉利
(鄭州輕工業(yè)大學 機電工程學院,河南 鄭州 450000)
冷庫作為食品保鮮的主要場所,其狀態(tài)的穩(wěn)定是保證冷藏食品安全衛(wèi)生的必要前提[1]。因此,冷庫狀態(tài)監(jiān)控非常重要。
傳統(tǒng)的監(jiān)測方式大多采用單點監(jiān)測和人工輪流值守的方式,但由于風機間距及食物擺放的原因,這種方式可能出現(xiàn)局部溫度偏高時無法及時報警、人工查看容易疏漏和監(jiān)控效率低等問題。因此,對冷庫進行全方位、高效率、便捷遠程監(jiān)測就成為了解決問題的關鍵。文獻[2-3]設計了立體倉庫的分布式溫度監(jiān)控系統(tǒng),通過協(xié)議或光纖組成主-從式網(wǎng)絡,實現(xiàn)一臺主機與多臺從機進行通信,由主機對從機數(shù)據(jù)進行分析和儲存,通過多點集中管理,實現(xiàn)了對立體倉庫全方位的狀態(tài)監(jiān)測。文獻[4-6]采用無線傳感器網(wǎng)絡WSN和非接觸式識別技術(shù)相結(jié)合的方式,由CC2530作為主控板進行信息采集,通過GSM/GPRS技術(shù)將采集的信息傳至固定上位機進行遠程監(jiān)測,大大提高了數(shù)據(jù)的傳輸效率。文獻[7-10]結(jié)合了物聯(lián)網(wǎng)技術(shù)和無線傳輸技術(shù),基于ARM或DSP處理器對冷庫狀態(tài)信息進行采集,通過無線傳輸技術(shù)將采集到的信息傳到上位機或數(shù)據(jù)庫進行查看和儲存,實現(xiàn)對冷庫的遠程監(jiān)測,提高了監(jiān)測的便捷性。
為實現(xiàn)對冷庫全方位、高效率和更加便捷的監(jiān)測,本文基于物聯(lián)網(wǎng)技術(shù)和智能控制技術(shù),設計一種基于STM32的冷庫環(huán)境遠程監(jiān)測系統(tǒng)。系統(tǒng)中由STM32和溫度、氧氣濃度等傳感器對冷庫狀態(tài)信息進行采集,通過RS 232接口基于Modbus通信協(xié)議將數(shù)據(jù)傳送給網(wǎng)關,網(wǎng)關通過MQTT通信協(xié)議將數(shù)據(jù)上傳到云平臺服務器,云平臺服務器收到這些數(shù)據(jù)進行緩存和存儲,并通過編程實現(xiàn)數(shù)據(jù)在Web頁面展示以及冷庫環(huán)境信息的遠程采集和控制。管理人員隨時可以通過手機瀏覽器或電腦端對冷庫的狀態(tài)進行查看,實現(xiàn)對冷庫全方位的監(jiān)測,提高監(jiān)測效率和數(shù)據(jù)查看的便捷性。
本系統(tǒng)整體結(jié)構(gòu)框圖如圖1所示,主要分為采集上傳和遠程監(jiān)測兩部分。采集上傳部分由電源模塊、采集模塊、控制模塊和傳輸模塊組成。通過溫度傳感器、氧氣濃度傳感器等傳感器組成的采集模塊完成對冷庫內(nèi)環(huán)境參數(shù)的采集,將采集到的數(shù)據(jù)信號傳輸給主控芯片STM32F103VEP6,由主控芯片對數(shù)據(jù)進行分析。一旦出現(xiàn)數(shù)據(jù)高于或低于設定值,單片機會進行報警提醒,提示管理人員進行查看。然后STM32將數(shù)據(jù)打包通過RS 232接口將數(shù)據(jù)交給網(wǎng)關,再由網(wǎng)關通過MQTT通信協(xié)議將數(shù)據(jù)上傳到物聯(lián)網(wǎng)云平臺服務器,服務器再對數(shù)據(jù)進行儲存。遠程監(jiān)測部分主要包括能夠連接云平臺服務器的手機或PC機,通過手機APP或PC端監(jiān)測程序連接服務器,將服務器上緩存的溫度傳感器和氧氣濃度傳感器所測得的數(shù)據(jù)以折線圖的形式展示出來,方便用戶或管理人員進行查看對比。
圖1 冷庫狀態(tài)遠程監(jiān)測系統(tǒng)架構(gòu)
本系統(tǒng)采用12 V固定電源供電,通過TSP5430集成降壓芯片和LM1117-3.3穩(wěn)壓芯片為系統(tǒng)提供5 V和3.3 V電源。同時系統(tǒng)配有備用電池,即使處于斷電的環(huán)境下,整個系統(tǒng)依舊能夠正常工作。3.3 V電源為主控制芯片和溫度傳感器等設備進行供電。其電路如圖2所示。
圖2 3.3 V電源電路
傳感器作為整個系統(tǒng)的信息來源,可以根據(jù)不同的冷藏環(huán)境需求對冷庫主要工作區(qū)域進行重點監(jiān)測。由于風機間距以及貨物間距會對冷庫溫度場產(chǎn)生影響[11],所以系統(tǒng)使用多個溫度傳感器測量冷庫不同位置的溫度。
(1)溫度傳感器:主要是對冷庫內(nèi)環(huán)境溫度進行測量。根據(jù)儲藏食物的種類不同,冷庫的溫度調(diào)節(jié)范圍大致為-20~10 ℃[12-14]。因此系統(tǒng)選用K型封裝PT100鉑電阻溫度傳感器,測量范圍為-50~300 ℃,顯示精度為0.1 ℃,綜合精度為0.3 ℃,滿足冷庫環(huán)境變化測量需求,并且具有較好的穩(wěn)定性,其具體特性見表1所列。由于直接通過PT100電阻變化引起電阻橋輸出的壓差信號較小,因此不能夠直接應用于與單片機的接口中,須進行信號放大處理,其電路如圖3所示。
表1 PT100特性參數(shù)表
圖3 PT100電路圖
(2)氧氣濃度傳感器:主要用于測量冷庫環(huán)境中氧氣濃度。氧氣濃度的多少決定了果蔬儲存時間的長短,一般冷庫內(nèi)氧氣含量保持在1~10%。因此系統(tǒng)選用KE-25氧氣濃度傳感器,其特性參數(shù)見表2所列。
表2 KE-25特性參數(shù)表
根據(jù)需要通過信號調(diào)理電路,將信號放大至冷庫適用范圍,量程設計為0~30%,誤差不高于±0.5%。其輸出電壓信號由所接電阻兩端的電壓通過溫度補償后獲得,輸出電壓的變化就表示氧氣濃度。
冷庫的運行狀態(tài)采用分布式采集,以小型冷庫為例,庫房中均勻性布點測溫傳感器數(shù)量至少為9個,再加上氧氣濃度傳感器,至少需要30個I/O接口;如果要擴展的話,還需要更多。這要求主控單片機擁有足夠多的I/O接口,對數(shù)據(jù)的處理速率也有較高的要求,再結(jié)合芯片的成本以及冷庫內(nèi)特殊的環(huán)境溫度,所以系統(tǒng)的控制芯片選用基于ARM Cortex-M3內(nèi) 核 的 STM32F103VEP6。STM32F103VEP6是STM32F系列的增強型型號,具備32位的CPU性能,內(nèi)置512 KB的FLASH,是同類產(chǎn)品中性能較高的產(chǎn)品,其具體功能配置見表3所列。同時STM32作為當下主流的微處理器有其顯著的優(yōu)勢,體積小、性能強大、功耗低、外設豐富等優(yōu)點使其能夠在大部分應用場景中使用[15]。低電壓和節(jié)能也是其主要優(yōu)勢,2.0 V到3.6 V的電壓就可以支持系統(tǒng)長時間工作,即使是處于斷電的環(huán)境下,整個系統(tǒng)依舊能夠正常工作一段時間。
表3 STM32F103VEP6功能配置
整個系統(tǒng)所連接的傳感器至少有10個,即每次上傳的數(shù)據(jù)有10組,每組數(shù)據(jù)最大值為4 B,每次上傳的數(shù)據(jù)就有40 B,同時還要對每組數(shù)據(jù)進行封裝打包,所以系統(tǒng)選用工業(yè)網(wǎng)關對數(shù)據(jù)進行傳輸。考慮到系統(tǒng)的可擴展性,同時結(jié)合冷庫中的溫度環(huán)境以及開發(fā)成本,系統(tǒng)選用基于ECU-1051TL RISC的工業(yè)通信網(wǎng)關。ECU-1051TL為開放式平臺設計,使用Cortex A8處理器,帶DDR3L 256 MB RAM,串口速率能達到50~115.2 Kb/s,支持Web服務已進行遠程在線監(jiān)測,具有兩個10/100以太網(wǎng)端口,支持MQTT客戶端進行云通信,工作溫度范圍為-40~70℃,滿足系統(tǒng)要求。網(wǎng)關基于MQTT協(xié)議將數(shù)據(jù)打包發(fā)送至物聯(lián)網(wǎng)云平臺服務器。消息隊列遙測傳輸協(xié)議(Message Queuing Telemetry Transport, MQTT)是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通信協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT的最大優(yōu)點在于:可以以極少的代碼和有限的帶寬為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通信協(xié)議,其在物聯(lián)網(wǎng)、小型設備、移動應用等方面應用較廣泛。該協(xié)議實現(xiàn)方式如圖4所示,其中消息的發(fā)布者和訂閱者都是客戶端,消息代理者是服務器,消息發(fā)布者可以同時是訂閱者。
圖4 MQTT協(xié)議實現(xiàn)方式
云平臺服務器作為與用戶或管理員交互最多的部分,同時也是數(shù)據(jù)的存儲中心,對其性能的要求較高。目前較為常見的云服務器有阿里云服務器、騰訊云服務器、小米云服務器、百度云服務器等,但大部分都是用于商用大數(shù)據(jù)分析??紤]到為冷庫使用,結(jié)合云服務器的性能和成本,本系統(tǒng)選用戴爾R740物聯(lián)網(wǎng)云平臺服務器,可以通過電腦遠程登錄,擁有高性能的硬件配置、數(shù)據(jù)處理快、儲存空間足、傳輸速率快等優(yōu)點。戴爾R740最多可同時記錄18組數(shù)據(jù),每組數(shù)據(jù)最大值為4 B,18組為72 B;按照每秒上傳一次數(shù)據(jù),一次上傳18組數(shù)據(jù),一天須存儲6 220 800 B,也就是5.94 MB,一年連續(xù)工作需要2.2 GB存儲空間,服務器儲存硬盤為2.5 TB,完全滿足存儲需求。其應用架構(gòu)如圖5所示。聯(lián)網(wǎng)平臺的基礎服務包括設備連接管理服務、存儲服務、數(shù)據(jù)可視化服務、Web服務。接入物聯(lián)網(wǎng)云平臺后,通過連接管理服務對設備的連接進行管理;其他服務通過訂閱MQTT消息,實現(xiàn)對終端設備消息的解析、計算、存儲,并通過接口服務為物聯(lián)網(wǎng)應用層提供數(shù)據(jù)調(diào)用接口,應用層通過接口服務獲取終端節(jié)點的監(jiān)測信息和對終端節(jié)點進行控制。應用層實現(xiàn)數(shù)據(jù)可視化服務。
圖5 云平臺應用架構(gòu)
系統(tǒng)軟件開發(fā)分為采集上傳和遠程監(jiān)測兩部分。
(1)采集上傳部分:是整個系統(tǒng)的基礎部分,這一部分的穩(wěn)定決定了采集數(shù)據(jù)的準確性以及遠程監(jiān)測對冷庫運行狀態(tài)的準確判斷。此部分主要包括單片機系統(tǒng)初始化配置、傳感器數(shù)據(jù)的讀取、數(shù)據(jù)的比價分析和數(shù)據(jù)打包上傳4個模塊。結(jié)合系統(tǒng)選用的傳感器和控制芯片,采集上傳部分選用Keil MDK作為軟件開發(fā)工具,主程序用C語言進行編寫[16]。其流程如圖6所示:系統(tǒng)上電復位后進行一系列初始化配置,先進行時鐘配置和中斷優(yōu)先級的配置;然后模塊進行初始化,其中包括按鍵初始化、LED初始化、ADC初始化、串口初始化以及定時器初始化。初始化完成之后就可以讀取各個傳感器的數(shù)據(jù),并將數(shù)據(jù)與設定的標準值進行對比,若數(shù)據(jù)高于設定的值,則進行報警提示;然后將數(shù)據(jù)進行打包,通過RS 232接口基于Modbus通信協(xié)議將數(shù)據(jù)交給網(wǎng)關,再由網(wǎng)關通過MQTT通信協(xié)議將數(shù)據(jù)上傳到云平臺服務器,服務器收到這些數(shù)據(jù)進行緩存和存儲。為實現(xiàn)實時監(jiān)測,系統(tǒng)設置每4 s讀取一次傳感器的數(shù)據(jù),并打包上傳至云服務器,保證數(shù)據(jù)的實時性。
圖6 單片機主程序流程
(2)遠程監(jiān)測部分:該部分的軟件設計主要是針對客戶端,實現(xiàn)用戶和服務器之間的交互作用,監(jiān)測部分軟件使用JavaScript進行設計。其流程如圖7所示,用戶或管理人員通過手機APP或PC端等能連接云平臺服務器的設備進行登錄;登錄之后會自動向網(wǎng)關發(fā)送收集數(shù)據(jù)的請求指令,網(wǎng)關收到請求后通知現(xiàn)場的采集模塊進行數(shù)據(jù)采集;采集完成后將數(shù)據(jù)上傳至云平臺服務器,再由服務器通知網(wǎng)關數(shù)據(jù)收集完成;同時云服務器的Web服務將數(shù)據(jù)以折線圖的方式通過頁面展示給用戶或管理人員,以此達到實時監(jiān)測的目的。
圖7 遠程監(jiān)測程序流程
為了可以實時采集并監(jiān)控數(shù)據(jù),系統(tǒng)選用的是InfluxDB時間序列數(shù)據(jù)庫,簡稱時序數(shù)據(jù)庫(Time Series Database),其最大的特點就是每條數(shù)據(jù)都帶有Time列。InfluxDB數(shù)據(jù)庫不僅可以按時間寫入InfluxDB,也可以按不同緯度聚合查詢和展現(xiàn)監(jiān)控數(shù)據(jù),更可以持續(xù)查詢、定時歸集指定時間的數(shù)據(jù),展現(xiàn)更大時間范圍的監(jiān)控數(shù)據(jù);并且還提供了HTTP/API直接訪問,即通過固定的網(wǎng)址或API接口即可查詢數(shù)據(jù),系統(tǒng)部分API接口設置見表4所列。
表4 部分API接口設置
由于實驗室設備條件原因,調(diào)試時使用恒溫箱代替冷庫進行實驗,并將恒溫箱溫度設置為5 ℃。將各個傳感器模塊連接到核心控制板上,將主程序燒錄進單片機里,確認單片機與網(wǎng)關和云平臺服務器之間通信正常,調(diào)試安裝如圖8所示。系統(tǒng)運行之后用手機瀏覽器登錄服務器對采集到的數(shù)據(jù)進行監(jiān)測查看,結(jié)果如圖9所示。兩個溫度傳感器所測位置不同,溫度相差0.2 ℃,在誤差允許范圍內(nèi)[17]。各個模塊工作正常,能夠隨時對冷庫的環(huán)境進行監(jiān)測,對可能出現(xiàn)的問題進行及時的排查。同時,監(jiān)測到的歷史數(shù)據(jù)也以Excel表格的形式進行儲存,方便對以往的數(shù)據(jù)進行查找,圖10所示為歷史數(shù)據(jù)。
圖8 系統(tǒng)安裝調(diào)試
圖9 遠程監(jiān)控界面
圖10 歷史數(shù)據(jù)
本文經(jīng)過實驗得出以下結(jié)論:
(1)本文設計的冷庫遠程狀態(tài)監(jiān)測系統(tǒng)運行良好,能夠?qū)鋷鞝顟B(tài)進行遠程監(jiān)測,運行穩(wěn)定。
(2)在冷庫的主要工作區(qū)域布置多個傳感器,能夠?qū)崿F(xiàn)對冷庫狀態(tài)較全面的監(jiān)測。
(3)通過網(wǎng)關對數(shù)據(jù)進行傳輸,數(shù)據(jù)傳輸效率高;同時,使用云平臺服務器進行數(shù)據(jù)存儲,有效地緩解了上位機的存儲壓力。
(4)系統(tǒng)能夠應用PC端和手機端等聯(lián)網(wǎng)設備隨時對冷庫狀態(tài)進行查看,沒有時間地點的限制,提高了對冷庫狀態(tài)監(jiān)測的便捷性。