聶超凡,彭 琛,王文虎
(湖南文理學院 計算機與電氣工程學院,湖南 常德 415000)
當前,我國有機農業在政策引導和市場需求的雙重作用下得到較大程度的發展,從事有機農業生產的企業逐年增加,生產面積和規模逐年擴大。然而,受限于我國農業分散經營的體制以及技術、設備、管理相對落后的局面,加上對標準化和品牌化的重要性認識不足,導致有機農業標準化、品牌化嚴重滯后[1]。
隨著我國經濟的快速發展,農產品的需求量也日益增長,尤其是有機農產品非常短缺。有機農產品對生長環境的要求非常苛刻,既不能打農藥,也不能施加化學肥料,因此其出產量非常低。如何讓有機農產品出產量增大,是現階段需要重點解決的問題。針對此情況,本文提出一款有機農場生態環境監測系統,該系統可以對有機農場的各項環境指標(空氣溫度、空氣濕度、土壤溫度、土壤濕度、光照強度等環境指標)進行檢測,通過手機APP和PC端提醒農場管理者如何去改變環境指標,讓有機農產品更加適宜生長,進而提高有機農產品的產量;還可以在測量的環境指標超標時進行實時報警。
有機農場生態環境監測系統由環境檢測終端、PC端、手機APP組成,系統結構如圖1所示。其中環境檢測終端安裝在有機農產品生長土壤中,它可以獲取有機農產品生長環境的各項參數指標信息。首先將這些信息通過GPRS模塊統一發送至互聯網,然后互聯網傳輸至物聯網云平臺,最后通過互聯網傳輸至手機APP和PC端,讓農場管理者能夠實時掌握有機農產品的生長環境情況[2]。

圖1 系統結構圖
環境檢測終端以MSP430F5438A單片機為智能控制核心,外圍電路主要包括GPRS模塊、溫濕度傳感器模塊、光照傳感器模塊、CO2傳感器模塊、故障檢測及報警模塊、按鍵模塊等。環境檢測終端結構如圖2所示。

圖2 環境檢測終端結構
環境檢測終端電路如圖3所示。
圖3中U1采用TI公司的MSP430F5438A單片機。MSP430F5438A單片機是16位單片機,采用了精簡指令集(RISC)結構,只有簡潔的27條指令,大量的指令是模擬指令,眾多的寄存器以及片內數據存儲器都可參加多種運算。這些內核指令均為單周期指令,功能強、運行的速度快。MSP430F5438A還是基于閃存的新款產品,具有最低工作功耗,在1.8~3.6 V的工作電壓范圍內性能高達25 MIPS,包含一個用于優化功耗的創新電源管理模塊。圖中Y、C1、C2連接到U1的P5.2/XT2IN、P5.3/XT2OUT引腳構成時鐘電路;R1、C5串聯并連接到U1的RST構成低電平復位電路;處理器MSP430F5438A的PJ.3/TCK、PJ.2/TMS、PJ.1/TDI、PJ.0/TDO分別外接JTAG下載調試器A6的TCK、TMS、TDI、TDO端,RST、TEST分別外接JTAG下載調試器A6的8、11腳,共同組成JTAG程序下載調試接口,用于下載程序和在線系統仿真調試。時鐘單元、復位單元、JTAG程序下載調試接口以及MCU共同構成微處理器的最小應用系統[3]。

圖3 環境檢測終端電路圖
如圖3中A1為溫濕度模塊,選型為DHT11。DHT11適用于專用的數字模塊采集技術和溫濕度傳感技術,能夠保證產品的極高可靠性和長期穩定性,具有測量范圍廣、測量精度高、價格低廉等優點。U1的P5.7引腳外接A1的SDA端,U1的P5.6引腳外接上拉4.7 kΩ的電阻,增強信號的抗干擾能力,實現DHT11和微處理器的單總線數據傳輸模式。
如圖3中A2為光照強度模塊,選型為TSL2561。TSL2561是TAOS公司推出的一種高速、低功耗、寬量程、可編程且靈活配置的光強度數字轉換芯片。U1的P3.1引腳外接A2的SDA,U1的P3.2引腳外接A2的SCL,U1的P1.0引腳外接A2的INT,實現I2C通信模式。
如圖3中A3為GPRS模塊,選型為WH-LTE-7S4 V2。適用于聯通、電信、移動4G以及聯通和移動的3G、2G網絡制式,可自定義注冊包、心跳包,具有UDC、HTTPD、網絡透傳共三種模式,還支持2路Socket的連接模式,具有高速率、低延時的特點,可提供高效率、高質量、高安全性的數據通信服務。通過串口調試助手和TTL調試模塊,可發送AT指令初始化GPRS模塊(設置串口波特率、傳輸模式等),使該模塊連接在GPRS網絡上,并自動獲得網絡運營商動態分配的GPRS終端IP地址,從而與云服務器建立連接。U1的P9.5引腳外接A3的TXD,U1的P9.4引腳外接A3的RXD,實現串口通信模式。
如圖3中A4為LCD顯示模塊,選型為串口屏KLL480272T043-01。該串口屏自帶核心處理器LT7688,能夠較好地節約U1的處理空間、提升處理速度;顯示顏色有16位RGB,具有顯示色彩分明、價格低廉的特點。U1的P3.5引腳外接A4的TXD,U1的P3.4引腳外接A4的RXD,實現串口通信模式。
如圖3中A5為CO2濃度測量模塊,選型為MH-410D。該傳感器利用非色散紅外(NDIR)原理對空間中存在的CO2進行探測,具有很好的選擇性、無氧氣依賴性,性能穩定、壽命長。內置溫度傳感器,可進行溫度補償。U1的P2.7引腳外接A5的Vout,實現ADC采集模式。
程序初始化配置開始時,首先要先關閉MSP430F5438A的看門狗功能,否則會導致程序一直復位;然后再進行I/O的模式配置、定時器配置、串口波特率配置以及傳感器的時序和響應配置。環境檢測終端軟件主要完成網絡連接、測試網絡連接狀態、響應云服務器發來的中斷請求、采集有機農作物生長環境數據并打包發送等。主流程如圖4所示。

圖4 主程序流程
WPF客戶端應用是基于Visual Studio平臺利用C#語言開發的PC端應用[4]。首先在Visual Studio平臺下創建WPF應用(.NET Framework 4.5);然后在Welcome.xaml、LoginWindow.xaml、MainWindow.xaml三大窗口類的基礎上,用 Label、Button、Image、GroupBox、StackPanel、DataGrid六大基本控件搭建用戶交互界面。其中:Label用于顯示文本內容;Button用于按鈕交互設計;Image用于圖片顯示;GroupBox用于控制界面的顯示效果;StackPanel用于約束布局GroupBox中的控件,使同類控件緊湊排列,當移除GroupBox中的控件后,剩余的控件可自動補缺,更人性化地顯示人機交互界面;DataGrid用于展示MySQL中的數據,顯示存儲數據和歷史數據[5]。
WPF客戶端應用開發流程如圖5所示。當搭建用戶交互界面時,可以通過控件StackPanel、GroupBox,合理地將圖片、文本、按鍵等控件進行約束布局[6];之后讓WPF應用與MySQL建立連接,用來儲存接收數據;最后WPF應用通過互聯網與云服務器交互,讓WPF應用能接收和發送數據至云服務器(接收和發送數據的響應時間可根據相應情況進行調整)。

圖5 WPF客戶端應用開發流程
WPF客戶端應用的開發重點在于與物聯網云服務器的數據傳遞,因此須在App.config中加入應用程序連接物聯網云服務器的全局配置項,用來固化物聯網云服務器。當物聯網云服務器更換時,方便對配置文件進行修改,不需要修改程序。添加全局配置項聲明如下:
系統所用服務器是新大陸云服務器,WPF客戶端應用采用的是HTTP協議接入新大陸云服務器。HTTP協議接入主要是采用RESTful風格的“添加傳感數據”API接口實現數據上報,不需要建立“連接請求”等過程;在云端添加好傳感器后即可直接以JSON格式進行數據的上報[7]。首先,通過如圖6所示的Get函數獲取web.config中的配置項;再利用POST方法,使用創建的云服務器賬號與密碼請求賬號登錄接口“https://api.nlecloud.com/users/login”;然后通過JSONObject對獲取的數據進行解析,進而得到Access Token(傳輸密鑰);用GET的請求方式把得到的Access Token代 入“http://api.nlecloud.com/devices/{device Id}/sensor/{apitag}”,其中{deviceId}須替換為真實的設備ID,{apitag}須替換為真實的傳感器標識名(設備ID與傳感器標識名都可在新大陸云平臺中創建項目獲得)[7];最后在后臺程序中打開子線程,讓該子線程每隔n秒就向服務器獲取數據、解析數據、存儲數據。

圖6 Get函數代碼
WPF客戶端應用通過與物聯網云服務器相連,并與物聯網云服務器互傳數據,進而通過物聯網云服務器回傳數據給GPRS,GPRS又將數據傳給單片機,從而讓農場管理者在家中通過電腦就能夠遠程觀測環境參數的變化,還可控制農場監測終端。
農場管理者在電腦上登錄賬號密碼后,即可查看其管理的有機農產品各項生長環境指標(以溫度、光照強度、濕度、CO2濃度為例)。如圖7為WPF客戶端應用的用戶交互界面,主要是對某一個地區的有機農產品生長環境溫度、濕度、光照強度、CO2濃度指標參數進行實時監測。當多個終端通過組網后,PC端能夠遠程觀測有機農場中各個區域的各項環境指標(區域的多少根據所布置終端個數確定)。當設定各項環境指標的閾值后,有環境指標未超出預設閾值范圍時,對應環境指標后面的燈會常綠;反之,有環境指標超過預設閾值時,對應環境指標后面的燈會常紅,并第一時間提醒農場管理者進行指標調控,進而能夠讓農場管理者提前發現有機農作物生長環境的改變,做到及時調控,最終讓有機農作物的產量和質量都得到提高。

圖7 WPF客戶端應用用戶交互界面
手機APP是基于Android Studio平臺利用Java語言開發的手機應用[7]。在Activity、Broadcast Receive、Service三大基本組件的基礎上,用Constraint Layout約束布局、Linear Layout線性布局兩大布局方式搭建用戶交互界面,最后搭載Android自帶SQLite數據庫和網絡技術開發而成。Activity組件用于顯示用戶交互界面;Service組件用于執行不需要與用戶交互并要求長期運行的任務,即使程序被切換到后臺或用戶打開另一個應用程序,任務依然能夠保持正常運行;Broadcast Receive可對外部事件進行過濾,且只針對感興趣的外部事件; Constraint Layout約束布局和Linear Layout線性布局用于對所有控件、文本和圖片進行合理的布局[8]。SQLite數據庫用于將內存中接收到的瞬時數據保存到數據庫中;網絡技術可利用HTTP協議和物聯網云服務器進行網絡交互,并對物聯網云服務器返回的數據進行解析。如圖8為手機APP開發流程圖。首先在Android Studio平臺下,利用Activity搭建好用戶交互界面。然后通過線性布局和約束布局兩大布局方式,將文本、圖片、按鍵等控件進行合理布局[6]。Android系統自帶的SQLite數據庫占用空間資源少、運算速度高,建立好SQLite數據庫,以便于手機APP接收存儲數據[9]。最后手機APP通過互聯網與云服務器交互,讓手機APP能接收和發送數據至云服務器。

圖8 手機APP開發流程
手機APP的開發重點與WPF客戶端應用相同,也是與物聯網云服務器的數據傳遞,但與WPF客戶端應用開發不同的是:手機APP開發訪問網絡時需要有提前聲明權限。網絡權限聲明如下:
手機APP接入新大陸云服務器時與WPF客戶端應用的開發相同,亦是采用HTTP模式接入方式;除了不需要用到Get函數獲取web.config中的配置項外,其他方法均與WPF客戶端應用開發相同,此處不再贅述。最后,接入成功后再在后臺程序中打開子線程,讓該子線程每隔n秒就向服務器獲取數據、解析數據、存儲數據。
手機APP通過與物聯網云服務器相連,并與云服務器互傳數據;云服務器與GPRS模塊進行數據通信,最后GPRS模塊與單片機通過串口通信進行數據的接收與發送,從而實現農場管理者遠程控制終端監測系統。
農場管理者在手機APP上登陸賬號密碼后,即可查看其管理的有機農產品的各項生長環境指標[10](以溫度、光照強度、濕度、CO2濃度為例),如圖9為手機APP用戶交互界面。手機APP的功能與WPF客戶端應用相似,與其不同的是:超閾值報警時,手機會進行振動報警,還可根據具體情況增加新功能[11]。

圖9 手機APP用戶交互界面
APP端相較于PC端有其獨特的優勢,APP端能夠全天候用手機隨時隨地查看。由于農場管理者不可能每天堅守在電腦前,因此開發APP端來協助農場管理者實時監控亦是非常有必要的。將PC端與APP端有機結合,這樣也就形成了“1+1≥2”的新監測模式,能夠更早地發現有機農作物生長環境的變化,進行及時有效的調控。
本文提出的有機農場生態環境監測系統,可以對有機農場的各項環境指標(空氣溫度、空氣濕度、土壤溫度、土壤濕度、光照強度等環境指標)進行檢測,并通過手機APP和PC端提醒農場管理者環境指標的變化,還可以在測量的環境指標超標時進行實時報警,幫著農場管理者更高效地管理農場,讓有機農產品更加適宜生長,進而提高有機農產品的產量,以助于我國有機農業能夠盡快地實現產品的標準化、品牌化。