王君君, 董 靜, 伊銅川, 陳天恩
(1.上海海洋大學 信息學院,上海 201306;2.國家農業信息化工程技術研究中心, 北京 100097)
?
移動終端的設施農業物聯網環境監控系統設計*
王君君1,2, 董靜2, 伊銅川2, 陳天恩2
(1.上海海洋大學 信息學院,上海 201306;2.國家農業信息化工程技術研究中心, 北京 100097)
通過使用物聯網(IOT)傳輸協議——消息隊列遙測傳輸(MQTT)協議,將前端硬件、服務器端及移動端連接在一起,完成對設施農業環境的遠程實時監控。在系統中,前端硬件以STM32微處理器為核心,由傳感器模塊、設備控制模塊、GPRS模塊和電源模塊組成,實現數據的采集和傳輸;服務器端有數據接收、存儲、分析的能力,并擔任MQTT消息協議中消息生產者和消息管理者的角色;移動終端軟件則以Android操作系統為基礎開發了應用軟件,用戶在裝有Android系統的移動終端上安裝該應用軟件,即可查看實時環境情況,發送控制設備指令等。經過測試,整個系統運行穩定、使用簡單、實時性高,用戶能有效地對設施農業環境進行遠程實時監控。
設施農業; 環境監控; 物聯網; 移動終端; 消息隊列遙測傳輸(MQTT)
設施農業是指在環境相對可控的條件下,采用工程技術手段,提高動植物產量的一種新型的農業生產方式[1]。提高設施農業生產產量,降低設施農業資源消耗,是我國設施農業發展的重要方向。通過對設施農業的環境進行實時監控,是提高設施農業生產產量、降低資源利用率、減少勞動力成本的關鍵技術[2]。近年來,物聯網(IOT)技術和移動互聯網技術的快速發展,為設施農業環境監控帶來了新的解決方案。
本文以設施農業環境數據采集為基礎,應用物聯網技術,研究前端硬件設備與移動終端相互配合共同完成對設施農業的環境監控。用戶在設施內只需安裝前端硬件設備和在移動終端中安裝應用軟件,即可隨時隨地通過移動應用查看設施內環境情況,有效減少了人力成本和監控系統的投入成本,當設施內有異常情況發生時,系統能及時發送報警消息給用戶,提醒用戶采取相應控制策略,避免農業生產損失的發生。
系統架構如圖1所示。傳感器模塊用于農業設施內的關鍵環境參數(如空氣溫濕度、光照強度、土壤溫濕度)的采集,微處理器將環境數據按照數據傳輸協議封裝成數據包,上傳到遠程服務器中;設備控制模塊則執行服務器發來的各種設備控制指令。服務器端接收到環境感知數據后,首先進行數據的清洗,除去數據中由于傳感器故障或者數據傳輸造成的奇異數據,其次將數據存儲到數據庫服務器中用于數據的歷史查詢和環境數據統計分析,最后,服務器會根據消息隊列遙測傳輸 (message queuing telemetry transport,MQTT)推送流程將數據推送到移動應用中。移動終端則通過接受數據查看設施農業內實時環境數據,當環境數據超過閾值后可通過終端發送控制指令,遠程控制農業設施內的控制設備調節設施環境。

圖1 系統總體架構圖Fig 1 Overall architecture diagram of system
2.1前端模塊設計
硬件結構如圖2所示。

圖2 前端硬件模塊框圖Fig 2 Block diagram of front-end hardware module
為準確采集農業設施內的環境信息,傳感器節點選擇了SHT11空氣溫濕度一體化傳感器, 濕度精度在±4.5 %RH,溫度精度為±0.5 ℃(25 ℃)[5];光照強度傳感器為QY—150 A,精度為±2 %,響應時間為50 ms;TYX—CTWS1土壤溫濕度一體化傳感器,濕度精度為±2 %,溫度精度為±0.15 ℃,通電后1 s穩定。
系統中選擇了GTM900C模塊,它是一種兩頻段GSM/GRRS無線模塊,工作頻段為EGSM900/GSM1800雙頻,模塊中的主控制器可以實現信號的調制解調和信號的轉換[6]。
前端設備采用STM32F103RBT6微處理器,該處理器是基于ARM Cortext M3內核的32位微處理器,具有2.0~3.6 V的寬電壓供電范圍,CPU工作頻率最高可達72 MHz,同時擁有64 kB的Flash存儲器和20 kB的SRAM存儲器,具有21通道的12位A/D轉換器,具有強大的數據處理能力,能快速處理各傳感器采集的數據和處理控制指令[7]。
2.2通信協議的設計
前端硬件通過GPRS模塊和服務器建立基于TCP/IP協議的Socket通信機制。前端硬件通過IP地址和端口號向服務器發送建立連接請求。服務器啟動后監聽指定的端口,當有請求到來時建立連接并接收數據,檢查數據中設備物理編碼和設備接入權限是否在系統數據庫中,如果存在,則該連接被加入到連接池中進行數據的持續交互,否則關閉該連接。上傳數據協議如圖3所示。
1.1 研究對象 選取2014年1月至2016年1月本院收治的冠心病合并2型糖尿病患者為研究對象,采用隨機數字表法,將患者分入辛伐他汀組、阿托伐他汀組、瑞舒伐他汀組。其中,辛伐他汀組患者,予以辛伐他汀(上海信誼萬象藥業生產)20毫克/次,1次/天,晨起空腹口服。阿托伐他汀組患者,予以阿托伐他汀(輝瑞制藥有限公司生產)20毫克/次,1次/天,晨起空腹口服。瑞舒伐他汀組,予以瑞舒伐他汀(阿斯利康公司生產)10毫克/次,1次/天,晨起空腹口服。

圖3 數據上傳協議Fig 3 Protocol of data upload
當環境數據超過設置的閾值時,移動終端會產生警報通知,用戶可在移動終端里發送設備控制指令,服務器會將該控制指令發送到具體前端硬件中,硬件接收到數據后檢查物理編碼是否是自己的,如果不是則丟棄該數據,如果是則檢查CRC校驗是否正確,如果正確則按照控制指令打開或者關閉指定的設備。其中,設備控制協議如圖4所示。

圖4 設備控制協議Fig 4 Protocol of equipment control
3.1移動終端軟件設計
Android系統是一個流行的開源的移動終端操作系統,由應用程序、應用框架層、程序庫、系統運行庫和Linux內核組成。其中,應用程序由一個個Activity組成,提供UI界面與用戶進行交互,而Activity是由Java語言開發的、XML語言控制UI布局[8]。本系統的終端設備應用軟件由5個Activity組成,提供系統的5個主要功能:1)設備添加和管理;2)環境數據實時監控;3)歷史數據查詢;4)環境數據統計分析;5)系統設置。具體的移動終端軟件操作流程如圖5所示。

圖5 客戶端操作流程圖Fig 5 Flow chart of client-end operation
3.2服務器數據推送設計
傳統的客戶端多采用Scoket通信機制從服務器接收數據,但這種方式使得服務器不能主動將最新數據發送給客戶端。在設施農業環境監控系統中,用戶需要掌握最新的環境數據,避免異常環境造成農業生產損失的發生。因此,需要采用新的通信機制完成客戶端與服務器的數據交互。
3.2.1MQTT協議
在系統中選擇使用了物聯網傳輸協議——MQTT協議用于服務器端數據的主動推動。MQTT是一套輕量級跨平臺的基于發布/訂閱的消息傳輸協議,具有開放、精簡、輕量級和容易實現的特點。MQTT協議由消息發布者、消息代理服務器和消息訂閱者三部分組成。其中,消息發布者產生不同主題的消息并發布到消息代理服務器中;消息代理服務器一方面接收消息,另一方面根據消息的主題將消息發送給不同的消息訂閱者;消息訂閱者接收消息,根據協議解析數據[9]。

圖6 MQTT協議模型Fig 6 Model for MQTT protocol
3.2.2消息推送流程
在系統中,服務器擔任消息發布者和消息代理服務器兩個角色,移動終端擔當了消息訂閱者的角色。當移動終端成功添加一個前端硬件設備后,服務器中記錄了該硬件設備的設備號,并以設備號為一個主題存儲到數據庫,同時完成移動端完成訂閱該主題消息的操作。當環境數據到達服務器時,服務器根據數據上傳協議解析數據獲得設備號,并根據設備號查找對應的主題,服務器根據MQTT協議生成一個帶主題的消息發布到消息代理中,消息代理會把消息推送到訂閱了該主題的移動終端。移動端獲得消息后調用getText()方法獲得數據,應用軟件會根據數據是否超過環境閾值做出不同的響應。其中,沒有超過閾值的數據,移動終端將解析后的環境數據,顯示到實時監控的Activity界面中;對于超過或低于閾值的環境數據,移動終端將生成一個Notification狀態欄通知,并伴隨手機震動和提示音,提醒用戶查看消息。
在北京市密云縣一處種植葡萄的日光溫室內部署本系統,對溫室內的空氣溫濕度、土壤溫濕度和光照強度等關鍵環境因子進行24 h連續監控。系統首先需要在溫室內部署一套前端硬件設備,其次需要在移動終端軟件中添加該硬件設備。初始化時,設置硬件設備每30 s采集并上傳一次數據到遠程服務器中。表1是2015年7月1日采集的部分數據。

表1 溫室中部分環境數據
從表1中的數據可以看出:系統完整的采集了溫室內一天的關鍵環境數據,證明系統運行穩定。在通過與溫室內測量儀器所測數據進行對比后,可以發現,系統采集的數據精度范圍在1 %以內,系統具有良好的準確性。
圖7是移動終端終端實時環境監控的Activity界面。

圖7 環境實時監測界面Fig 7 Real-time monitoring interface of environment
1)將物聯網傳輸協議MQTT協議應用到監控系統中,可以有效管理和快速推送環境數據;2)開發以Android操作系統為基礎的移動應用軟件,使得用戶可以通過一臺移動終端設備對多個設施進行環境遠程實時監控。3)開發的前端硬件在滿足數據采集和上傳的同時,具有價格便宜,操作簡單等優點。在后期的測試中,證明了本系統在穩定性、實時性和魯棒性上都有所提高,具有推廣使用的價值。參考文獻:
[1]閻曉軍,王維瑞,梁建平.北京市設施農業物聯網應用模式構建[J].農業工程學報,2012(4):149-154.
[2]李中華,王國占,齊飛.我國設施農業發展現狀及發展思路[J].中國農機化,2012(1):7-10.
[3]陳智偉,蘇維均,于重重,等.基于WSNs的農業溫室監控系統的設計[J].傳感器與微系統,2011,30(7):82-84,87.
[4]潘金珠,王興元,肖云龍,等.基于物聯網的溫室大棚系統設計[J].傳感器與微系統,2014,33(10):51-53,57.
[5]林飛龍,彭詩瑤.基于多傳感器的高性能監控系統設計[J].傳感器與微系統,2014,33(2):119-122,126.
[6]郭耀華.基于ZigBee和GPRS網絡的智能變電站設備溫度無線監測系統[J].儀表技術與傳感器,2014(1):79-82.
[7]袁開鴻,魏麗君,唐冬梅.基于STM32平臺的CAN總線車載式漏電流數字傳感器[J].傳感器與微系統,2014,33(3):118-120,124.
[8]李慧,劉星橋,李景,等.基于物聯網Android平臺的水產養殖遠程監控系統[J].農業工程學報,2013,13:175-181.
[9]關慶余,李鴻彬,于波.MQTT協議在Android平臺上的研究與應用[J].計算機系統應用,2014(4):197-200,196.
董靜,通訊作者,E—mail:dongj@nercita.org.cn。
Design of facilities agriculture IOT environment monitoring system based on mobile terminal*
WANG Jun-jun1,2, DONG Jing2, YI Tong-chuan2, CHEN Tian-en2
(1.College of Information Technology,Shanghai Ocean University,Shanghai 201306,China;2.National Engineering Research Center for Information Technology in Agriculture,Beijing 100097,China)
The system through using IOT transmission protocol,message queuing telemetry transport(MQTT) message transmission protocol,connect front-end hardware,server with mobile-end,to achieve facilities agriculture environment remote and real-time monitoring.In system,front-end hardware uses STM32 microprocessor as core,which is composed of sensor module,equipment control module,GPRS module and power module,to realize data acquisition and transmission;server has data receiving,storage and analysis ability,also the server play role of message producer and message manager in MQTT message protocol.The mobile terminal software based on Android operation system,user can check real-time environment data and send equipment control order after installing application software on Android system mobile terminal.Test shows that the system runs stably,easy to use,high real-time performance,So the system can help user to monitor the facilities agriculture environment.
facility agriculture; environment monitoring; IOT; mobile terminal; message queuing telemetry transport(MQTT)
2015—10—27
國家科技支撐計劃資助項目 (2013BAD15B05); 北京市農林科學院科技創新能力建設專項項目(KJCX2014041)
TP 277
A
1000—9787(2016)08—0087—03
王君君(1990-),男,安徽合肥人,碩士研究生,主要從事計算機應用研究。
DOI:10.13873/J.1000—9787(2016)08—0087—03