蘇世雄,李 川,馬新華,韓思蕊
(西安航空學(xué)院 計算機學(xué)院,西安 710077)
我國是世界上的人口大國,糧食作為人類生存的必需物品,具有舉足輕重的作用,而科學(xué)合理地存儲糧食是國家戰(zhàn)略物資儲備的必然要求。糧庫作為糧食存儲的基本單元具有十分重要的作用,糧食在存儲過程中,常因糧食的溫度、濕度、CO2濃度過高等,導(dǎo)致糧食發(fā)熱霉變[1],給國家和人民帶來巨大的損失[2]。因此,對糧庫中的糧情監(jiān)測顯得尤為重要。傳統(tǒng)的糧庫監(jiān)測由糧庫工作人員采用工具人工測量糧食的溫度、濕度等參數(shù),此方法需要耗費大量的人力物力財力。隨著信息技術(shù)的發(fā)展,學(xué)術(shù)界針對糧庫監(jiān)測進行了相應(yīng)研究,例如文獻[3]等設(shè)計了一款無線傳感器網(wǎng)絡(luò)的糧庫監(jiān)測系統(tǒng),實現(xiàn)了糧庫內(nèi)糧情的實時監(jiān)測。文獻[4]設(shè)計了一款基于ZigBee技術(shù)的多傳感器糧庫監(jiān)測系統(tǒng)方案,實現(xiàn)了一種自組網(wǎng)的糧庫監(jiān)測系統(tǒng)。文獻[5]設(shè)計了一款智能多參數(shù)糧情自動監(jiān)測系統(tǒng),該系統(tǒng)可以監(jiān)測糧庫的溫濕度變化和誘捕害蟲,實現(xiàn)了糧庫的智能化監(jiān)測功能。文獻[6]開發(fā)了一套基于LoRa 的糧庫糧情監(jiān)測系統(tǒng),解決了多點傳輸沖突問題。文獻[7]設(shè)計了一款基于嵌入式ARM9 平臺的糧庫糧情智能監(jiān)測系統(tǒng)。文獻[8]針對單一傳感器采集數(shù)據(jù)片面、易造成誤報、漏報等情況,設(shè)計了一種多傳感器融合的糧倉環(huán)境監(jiān)測系統(tǒng),對糧庫溫濕度、CO2濃度、O2濃度進行實時監(jiān)測與調(diào)控,從而降低外界環(huán)境干擾[9],確保糧庫存儲的質(zhì)量。
雖然相關(guān)學(xué)者已經(jīng)提出了一些糧庫監(jiān)測方案,但是這些方式大多數(shù)是從某一方面進行研究分析,并沒有將擴展性與控制方式結(jié)合在一起,因此,本系統(tǒng)結(jié)合物聯(lián)網(wǎng)技術(shù)設(shè)計了一款智能糧庫監(jiān)測系統(tǒng),該系統(tǒng)一方面無需布線,自組網(wǎng)實現(xiàn)多糧庫實時環(huán)境監(jiān)測、預(yù)警等功能,可隨時增加或刪除采集節(jié)點,具有良好的擴展性;另一方面設(shè)計了2 種控制模式,手動或自動調(diào)節(jié)糧庫環(huán)境,確保糧食存儲安全。
大型糧庫具有分布廣、監(jiān)測點分散、地域面積集中等特點,因此,該設(shè)計采用覆蓋范圍廣、自組網(wǎng)能力強、信息傳輸可靠、低成本[10]的ZigBee 技術(shù)實現(xiàn)無線通信功能,該方式一方面節(jié)省了布線的繁瑣和成本,另一方面具有較強的可擴展性,可隨時加入節(jié)點,擴大監(jiān)測范圍。本系統(tǒng)設(shè)計的系統(tǒng)整體架構(gòu)如圖1 所示。該系統(tǒng)利用ZigBee 技術(shù)構(gòu)建了網(wǎng)狀拓撲結(jié)構(gòu),主要由上位機和下位機組成,上位機的主要任務(wù)是實時顯示所采集的數(shù)據(jù)與系統(tǒng)控制方式的選擇;下位機主要任務(wù)是環(huán)境監(jiān)測與環(huán)境調(diào)控。下位機又分為協(xié)調(diào)器與路由節(jié)點和終端節(jié)點,協(xié)調(diào)器主要負責(zé)整個系統(tǒng)網(wǎng)絡(luò)的建立、數(shù)據(jù)的接受和發(fā)送以及與上位機的通信;路由節(jié)點主要負責(zé)為其他節(jié)點轉(zhuǎn)發(fā)數(shù)據(jù),擴大網(wǎng)絡(luò)覆蓋范圍;終端節(jié)點主要負責(zé)數(shù)據(jù)的采集和數(shù)據(jù)發(fā)送與接收功能,所接收的數(shù)據(jù)用以對外圍調(diào)節(jié)設(shè)備的控制。

圖1 系統(tǒng)整體架構(gòu)Fig.1 Overall system architecture
系統(tǒng)硬件設(shè)計即下位機的設(shè)計,主要分為協(xié)調(diào)器與路由節(jié)點、終端節(jié)點兩部分,都采用當(dāng)前流行的具有ZigBee 無線通信功能的CC2530 單片機為核心結(jié)合外圍電路所設(shè)計。協(xié)調(diào)器的主要任務(wù)是建立網(wǎng)絡(luò),并將數(shù)據(jù)通過串口發(fā)送給上位機;路由節(jié)點的主要任務(wù)是轉(zhuǎn)發(fā)數(shù)據(jù),因此,該模塊框架圖設(shè)計較簡單只有通信模塊和串口模塊即可,如圖2 所示。

圖2 協(xié)調(diào)器、路由節(jié)點框圖Fig.2 Coordinator and routing node block diagram
終端節(jié)點主要負責(zé)數(shù)據(jù)的采集和發(fā)送/接收以及設(shè)備的控制,因此,該模塊框架圖設(shè)計如圖3 所示,主要由傳感器模塊、調(diào)控設(shè)備模塊、通信模塊和報警模塊組成。

圖3 終端節(jié)點框圖Fig.3 Terminal node block diagram
傳感器模塊包括溫濕度傳感器、CO2濃度傳感器。其中,溫濕傳感器采用DHT11 數(shù)字溫度傳感器,該傳感器是一款已校準(zhǔn)的數(shù)字信號輸出傳感器,該傳感器采用單總線串行接口,具有采集精度高、穩(wěn)定性強、功耗低等優(yōu)點[11];CO2濃度傳感器采用MG-812型二氧化碳傳感器,該傳感器利用紅外光吸收原理檢測空氣中的CO2濃度,將其轉(zhuǎn)化為電信號,可通過AD 轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號,具有靈敏度高、穩(wěn)定性好、使用壽命長等特點。調(diào)控設(shè)備模塊采用風(fēng)扇進行模擬,模擬改善當(dāng)前環(huán)境。報警模塊由LED 報警燈和蜂鳴器組成,用來提醒庫房管理人員糧庫異常。
系統(tǒng)軟件設(shè)計分為上位機軟件設(shè)計和下位機軟件設(shè)計。下位機軟件設(shè)計采用 IAR Embedded Workbench for 8051 軟件對Z-Stack 協(xié)議棧進行開發(fā),IAR for 8051 是開發(fā)CC2530 的常用工具,它具有完全標(biāo)準(zhǔn)的C 兼容、良好的版本控制和擴展工具、便捷的模擬和中斷處理[12]等優(yōu)點。Z-Stack 協(xié)議棧采用的是操作系統(tǒng)抽象層(OSAL)協(xié)議棧調(diào)度程序,用戶只能通過調(diào)用API 接口開發(fā)具體應(yīng)用,因此,該協(xié)議也被成為半開源的協(xié)議棧[13]。下位機軟件設(shè)計主要是協(xié)調(diào)器與路由器和終端節(jié)點的軟件設(shè)計,其設(shè)計原理由Z-Stack 協(xié)議棧決定,所有流程基本類似,其流程參考文獻[3],此處不再贅述。本文重點介紹上位機軟件設(shè)計。
上位機軟件主要負責(zé)數(shù)據(jù)顯示和選擇控制方式,這就要求界面友好且簡單,而Qt 是一款跨平臺的開發(fā)環(huán)境[14],具有面向?qū)ο蟮乃袃?yōu)點[15],提供豐富的圖形界面且支持輕量級數(shù)據(jù)庫Sqlite3。因此,上位機軟件設(shè)計采用基于Qt 平臺和Sqlite 3 數(shù)據(jù)庫設(shè)計。本系統(tǒng)設(shè)計了兩種控制方式:手動方式和自動方式。手動方式即傳統(tǒng)方式,用戶自行控制外圍設(shè)備;自動方式即智能方式,系統(tǒng)根據(jù)用戶在界面中設(shè)置的不同閾值區(qū)間,判斷采集的數(shù)據(jù)是否在閾值范圍內(nèi),若數(shù)值不在閾值范圍內(nèi),則開啟設(shè)備,對環(huán)境進行調(diào)節(jié),使糧庫環(huán)境置于合適的環(huán)境中,否則設(shè)備就關(guān)閉,設(shè)計的軟件流程如圖4 所示。用戶通過登錄界面輸入正確的用戶名和密碼,配置好相應(yīng)的串行口數(shù)據(jù)即可獲得糧庫中不同倉庫的實時溫度、濕度、CO2濃度以及各設(shè)備狀態(tài)等信息。通過按鈕選擇控制模式,用以調(diào)節(jié)糧庫中的環(huán)境。當(dāng)選擇自動模式時,可以根據(jù)糧庫中存放的糧食類型實時的設(shè)置溫度、濕度、CO2濃度等閾值區(qū)間,以便系統(tǒng)自動調(diào)節(jié)環(huán)境。同時,在手動模式時,用戶也可以查看歷史數(shù)據(jù),以便于數(shù)據(jù)分析。

圖4 上位機軟件流程Fig.4 Upper computer software flow chart
設(shè)計實現(xiàn)的糧庫監(jiān)測系統(tǒng)下位機實物如圖5所示,上位機UI 界面如圖6 所示,此時系統(tǒng)控制模式為手動模式。

圖5 下位機實物Fig.5 Physical object of lower computer

圖6 上位機界面Fig.6 Upper computer interface
對整個系統(tǒng)功能的完整性和穩(wěn)定性進行測試,分為手動模式測試和自動模式測試。
(1)手動模式,顯示各測量數(shù)據(jù),控制外部設(shè)備,測試結(jié)果如表1 所示。

表1 手動模式測試表Tab.1 Manual mode test
(2)自動測試,顯示各測量數(shù)據(jù),驗證各個模塊聯(lián)動功能,測試如圖7 所示,當(dāng)測量數(shù)據(jù)在閾值區(qū)間內(nèi),則報警和風(fēng)扇關(guān)閉,如圖7(a)所示;更改閾值區(qū)間范圍,當(dāng)測量數(shù)據(jù)不在閾值區(qū)間范圍內(nèi),則報警和風(fēng)扇打開,如圖7(b)所示,其全部測試結(jié)果如表2 所示。

表2 自動模式測試表Tab.2 Automatic mode test

圖7 自動模式Fig.7 Automatic mode
當(dāng)在手動模式時,可以點擊界面中查看歷史數(shù)據(jù)按鈕,查看采集的數(shù)據(jù)變化過程,當(dāng)數(shù)據(jù)異常時,為用戶分析異常提供數(shù)據(jù)支撐,顯示界面如圖8 所示。所有測試次數(shù)均為100 次,測試結(jié)果均正常。因此,系統(tǒng)符合設(shè)計功能,且系統(tǒng)運行穩(wěn)定。

圖8 歷史數(shù)據(jù)記錄Fig.8 Historical data record
該系統(tǒng)采用CC2530 單片機、各種傳感器、外圍設(shè)備模塊和Qt 平臺,設(shè)計并實現(xiàn)了基于物聯(lián)網(wǎng)的糧庫監(jiān)測系統(tǒng),實現(xiàn)了糧庫環(huán)境信息實時采集和設(shè)備智能化控制,使得糧庫管理更加智能化。經(jīng)運行測試表明,該系統(tǒng)功能符合設(shè)計要求,運行穩(wěn)定,操作方便,具有較高的實用性。本設(shè)計具有以下創(chuàng)新點:系統(tǒng)中設(shè)計了兩種控制方式,手動模式和自動模式,既考慮了傳統(tǒng)方式又兼顧了智能化方式;閾值設(shè)定不再是單一的、固定的方式,而通過上位機設(shè)定閾值區(qū)間,既方便用戶根據(jù)糧庫中存放的不同糧食類型動態(tài)更改閾值范圍,又可以不用再次下載下位機程序;在手動工作方式下,可以查看歷史數(shù)據(jù)記錄,以便管理員分析當(dāng)出現(xiàn)異常情況時,監(jiān)測的數(shù)據(jù)變化情況,為糧食安全存儲提供數(shù)據(jù)支撐;系統(tǒng)采用ZigBee 自組網(wǎng)技術(shù),隨著糧庫數(shù)量的增加,只需要增加路由節(jié)點和終端節(jié)點數(shù)即可完成對糧庫的監(jiān)測,無需布線,具有良好的可擴展性。