聶超凡,彭 琛,王文虎
(湖南文理學(xué)院 計(jì)算機(jī)與電氣工程學(xué)院,湖南 常德 415000)
當(dāng)前,我國(guó)有機(jī)農(nóng)業(yè)在政策引導(dǎo)和市場(chǎng)需求的雙重作用下得到較大程度的發(fā)展,從事有機(jī)農(nóng)業(yè)生產(chǎn)的企業(yè)逐年增加,生產(chǎn)面積和規(guī)模逐年擴(kuò)大。然而,受限于我國(guó)農(nóng)業(yè)分散經(jīng)營(yíng)的體制以及技術(shù)、設(shè)備、管理相對(duì)落后的局面,加上對(duì)標(biāo)準(zhǔn)化和品牌化的重要性認(rèn)識(shí)不足,導(dǎo)致有機(jī)農(nóng)業(yè)標(biāo)準(zhǔn)化、品牌化嚴(yán)重滯后[1]。
隨著我國(guó)經(jīng)濟(jì)的快速發(fā)展,農(nóng)產(chǎn)品的需求量也日益增長(zhǎng),尤其是有機(jī)農(nóng)產(chǎn)品非常短缺。有機(jī)農(nóng)產(chǎn)品對(duì)生長(zhǎng)環(huán)境的要求非??量蹋炔荒艽蜣r(nóng)藥,也不能施加化學(xué)肥料,因此其出產(chǎn)量非常低。如何讓有機(jī)農(nóng)產(chǎn)品出產(chǎn)量增大,是現(xiàn)階段需要重點(diǎn)解決的問(wèn)題。針對(duì)此情況,本文提出一款有機(jī)農(nóng)場(chǎng)生態(tài)環(huán)境監(jiān)測(cè)系統(tǒng),該系統(tǒng)可以對(duì)有機(jī)農(nóng)場(chǎng)的各項(xiàng)環(huán)境指標(biāo)(空氣溫度、空氣濕度、土壤溫度、土壤濕度、光照強(qiáng)度等環(huán)境指標(biāo))進(jìn)行檢測(cè),通過(guò)手機(jī)APP和PC端提醒農(nóng)場(chǎng)管理者如何去改變環(huán)境指標(biāo),讓有機(jī)農(nóng)產(chǎn)品更加適宜生長(zhǎng),進(jìn)而提高有機(jī)農(nóng)產(chǎn)品的產(chǎn)量;還可以在測(cè)量的環(huán)境指標(biāo)超標(biāo)時(shí)進(jìn)行實(shí)時(shí)報(bào)警。
有機(jī)農(nóng)場(chǎng)生態(tài)環(huán)境監(jiān)測(cè)系統(tǒng)由環(huán)境檢測(cè)終端、PC端、手機(jī)APP組成,系統(tǒng)結(jié)構(gòu)如圖1所示。其中環(huán)境檢測(cè)終端安裝在有機(jī)農(nóng)產(chǎn)品生長(zhǎng)土壤中,它可以獲取有機(jī)農(nóng)產(chǎn)品生長(zhǎng)環(huán)境的各項(xiàng)參數(shù)指標(biāo)信息。首先將這些信息通過(guò)GPRS模塊統(tǒng)一發(fā)送至互聯(lián)網(wǎng),然后互聯(lián)網(wǎng)傳輸至物聯(lián)網(wǎng)云平臺(tái),最后通過(guò)互聯(lián)網(wǎng)傳輸至手機(jī)APP和PC端,讓農(nóng)場(chǎng)管理者能夠?qū)崟r(shí)掌握有機(jī)農(nóng)產(chǎn)品的生長(zhǎng)環(huán)境情況[2]。
圖1 系統(tǒng)結(jié)構(gòu)圖
環(huán)境檢測(cè)終端以MSP430F5438A單片機(jī)為智能控制核心,外圍電路主要包括GPRS模塊、溫濕度傳感器模塊、光照傳感器模塊、CO2傳感器模塊、故障檢測(cè)及報(bào)警模塊、按鍵模塊等。環(huán)境檢測(cè)終端結(jié)構(gòu)如圖2所示。
圖2 環(huán)境檢測(cè)終端結(jié)構(gòu)
環(huán)境檢測(cè)終端電路如圖3所示。
圖3中U1采用TI公司的MSP430F5438A單片機(jī)。MSP430F5438A單片機(jī)是16位單片機(jī),采用了精簡(jiǎn)指令集(RISC)結(jié)構(gòu),只有簡(jiǎn)潔的27條指令,大量的指令是模擬指令,眾多的寄存器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器都可參加多種運(yùn)算。這些內(nèi)核指令均為單周期指令,功能強(qiáng)、運(yùn)行的速度快。MSP430F5438A還是基于閃存的新款產(chǎn)品,具有最低工作功耗,在1.8~3.6 V的工作電壓范圍內(nèi)性能高達(dá)25 MIPS,包含一個(gè)用于優(yōu)化功耗的創(chuàng)新電源管理模塊。圖中Y、C1、C2連接到U1的P5.2/XT2IN、P5.3/XT2OUT引腳構(gòu)成時(shí)鐘電路;R1、C5串聯(lián)并連接到U1的RST構(gòu)成低電平復(fù)位電路;處理器MSP430F5438A的PJ.3/TCK、PJ.2/TMS、PJ.1/TDI、PJ.0/TDO分別外接JTAG下載調(diào)試器A6的TCK、TMS、TDI、TDO端,RST、TEST分別外接JTAG下載調(diào)試器A6的8、11腳,共同組成JTAG程序下載調(diào)試接口,用于下載程序和在線系統(tǒng)仿真調(diào)試。時(shí)鐘單元、復(fù)位單元、JTAG程序下載調(diào)試接口以及MCU共同構(gòu)成微處理器的最小應(yīng)用系統(tǒng)[3]。
圖3 環(huán)境檢測(cè)終端電路圖
如圖3中A1為溫濕度模塊,選型為DHT11。DHT11適用于專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),能夠保證產(chǎn)品的極高可靠性和長(zhǎng)期穩(wěn)定性,具有測(cè)量范圍廣、測(cè)量精度高、價(jià)格低廉等優(yōu)點(diǎn)。U1的P5.7引腳外接A1的SDA端,U1的P5.6引腳外接上拉4.7 kΩ的電阻,增強(qiáng)信號(hào)的抗干擾能力,實(shí)現(xiàn)DHT11和微處理器的單總線數(shù)據(jù)傳輸模式。
如圖3中A2為光照強(qiáng)度模塊,選型為T(mén)SL2561。TSL2561是TAOS公司推出的一種高速、低功耗、寬量程、可編程且靈活配置的光強(qiáng)度數(shù)字轉(zhuǎn)換芯片。U1的P3.1引腳外接A2的SDA,U1的P3.2引腳外接A2的SCL,U1的P1.0引腳外接A2的INT,實(shí)現(xiàn)I2C通信模式。
如圖3中A3為GPRS模塊,選型為WH-LTE-7S4 V2。適用于聯(lián)通、電信、移動(dòng)4G以及聯(lián)通和移動(dòng)的3G、2G網(wǎng)絡(luò)制式,可自定義注冊(cè)包、心跳包,具有UDC、HTTPD、網(wǎng)絡(luò)透?jìng)鞴踩N模式,還支持2路Socket的連接模式,具有高速率、低延時(shí)的特點(diǎn),可提供高效率、高質(zhì)量、高安全性的數(shù)據(jù)通信服務(wù)。通過(guò)串口調(diào)試助手和TTL調(diào)試模塊,可發(fā)送AT指令初始化GPRS模塊(設(shè)置串口波特率、傳輸模式等),使該模塊連接在GPRS網(wǎng)絡(luò)上,并自動(dòng)獲得網(wǎng)絡(luò)運(yùn)營(yíng)商動(dòng)態(tài)分配的GPRS終端IP地址,從而與云服務(wù)器建立連接。U1的P9.5引腳外接A3的TXD,U1的P9.4引腳外接A3的RXD,實(shí)現(xiàn)串口通信模式。
如圖3中A4為L(zhǎng)CD顯示模塊,選型為串口屏KLL480272T043-01。該串口屏自帶核心處理器LT7688,能夠較好地節(jié)約U1的處理空間、提升處理速度;顯示顏色有16位RGB,具有顯示色彩分明、價(jià)格低廉的特點(diǎn)。U1的P3.5引腳外接A4的TXD,U1的P3.4引腳外接A4的RXD,實(shí)現(xiàn)串口通信模式。
如圖3中A5為CO2濃度測(cè)量模塊,選型為MH-410D。該傳感器利用非色散紅外(NDIR)原理對(duì)空間中存在的CO2進(jìn)行探測(cè),具有很好的選擇性、無(wú)氧氣依賴性,性能穩(wěn)定、壽命長(zhǎng)。內(nèi)置溫度傳感器,可進(jìn)行溫度補(bǔ)償。U1的P2.7引腳外接A5的Vout,實(shí)現(xiàn)ADC采集模式。
程序初始化配置開(kāi)始時(shí),首先要先關(guān)閉MSP430F5438A的看門(mén)狗功能,否則會(huì)導(dǎo)致程序一直復(fù)位;然后再進(jìn)行I/O的模式配置、定時(shí)器配置、串口波特率配置以及傳感器的時(shí)序和響應(yīng)配置。環(huán)境檢測(cè)終端軟件主要完成網(wǎng)絡(luò)連接、測(cè)試網(wǎng)絡(luò)連接狀態(tài)、響應(yīng)云服務(wù)器發(fā)來(lái)的中斷請(qǐng)求、采集有機(jī)農(nóng)作物生長(zhǎng)環(huán)境數(shù)據(jù)并打包發(fā)送等。主流程如圖4所示。
圖4 主程序流程
WPF客戶端應(yīng)用是基于Visual Studio平臺(tái)利用C#語(yǔ)言開(kāi)發(fā)的PC端應(yīng)用[4]。首先在Visual Studio平臺(tái)下創(chuàng)建WPF應(yīng)用(.NET Framework 4.5);然后在Welcome.xaml、LoginWindow.xaml、MainWindow.xaml三大窗口類的基礎(chǔ)上,用 Label、Button、Image、GroupBox、StackPanel、DataGrid六大基本控件搭建用戶交互界面。其中:Label用于顯示文本內(nèi)容;Button用于按鈕交互設(shè)計(jì);Image用于圖片顯示;GroupBox用于控制界面的顯示效果;StackPanel用于約束布局GroupBox中的控件,使同類控件緊湊排列,當(dāng)移除GroupBox中的控件后,剩余的控件可自動(dòng)補(bǔ)缺,更人性化地顯示人機(jī)交互界面;DataGrid用于展示MySQL中的數(shù)據(jù),顯示存儲(chǔ)數(shù)據(jù)和歷史數(shù)據(jù)[5]。
WPF客戶端應(yīng)用開(kāi)發(fā)流程如圖5所示。當(dāng)搭建用戶交互界面時(shí),可以通過(guò)控件StackPanel、GroupBox,合理地將圖片、文本、按鍵等控件進(jìn)行約束布局[6];之后讓W(xué)PF應(yīng)用與MySQL建立連接,用來(lái)儲(chǔ)存接收數(shù)據(jù);最后WPF應(yīng)用通過(guò)互聯(lián)網(wǎng)與云服務(wù)器交互,讓W(xué)PF應(yīng)用能接收和發(fā)送數(shù)據(jù)至云服務(wù)器(接收和發(fā)送數(shù)據(jù)的響應(yīng)時(shí)間可根據(jù)相應(yīng)情況進(jìn)行調(diào)整)。
圖5 WPF客戶端應(yīng)用開(kāi)發(fā)流程
WPF客戶端應(yīng)用的開(kāi)發(fā)重點(diǎn)在于與物聯(lián)網(wǎng)云服務(wù)器的數(shù)據(jù)傳遞,因此須在App.config中加入應(yīng)用程序連接物聯(lián)網(wǎng)云服務(wù)器的全局配置項(xiàng),用來(lái)固化物聯(lián)網(wǎng)云服務(wù)器。當(dāng)物聯(lián)網(wǎng)云服務(wù)器更換時(shí),方便對(duì)配置文件進(jìn)行修改,不需要修改程序。添加全局配置項(xiàng)聲明如下:
系統(tǒng)所用服務(wù)器是新大陸云服務(wù)器,WPF客戶端應(yīng)用采用的是HTTP協(xié)議接入新大陸云服務(wù)器。HTTP協(xié)議接入主要是采用RESTful風(fēng)格的“添加傳感數(shù)據(jù)”API接口實(shí)現(xiàn)數(shù)據(jù)上報(bào),不需要建立“連接請(qǐng)求”等過(guò)程;在云端添加好傳感器后即可直接以JSON格式進(jìn)行數(shù)據(jù)的上報(bào)[7]。首先,通過(guò)如圖6所示的Get函數(shù)獲取web.config中的配置項(xiàng);再利用POST方法,使用創(chuàng)建的云服務(wù)器賬號(hào)與密碼請(qǐng)求賬號(hào)登錄接口“https://api.nlecloud.com/users/login”;然后通過(guò)JSONObject對(duì)獲取的數(shù)據(jù)進(jìn)行解析,進(jìn)而得到Access Token(傳輸密鑰);用GET的請(qǐng)求方式把得到的Access Token代 入“http://api.nlecloud.com/devices/{device Id}/sensor/{apitag}”,其中{deviceId}須替換為真實(shí)的設(shè)備ID,{apitag}須替換為真實(shí)的傳感器標(biāo)識(shí)名(設(shè)備ID與傳感器標(biāo)識(shí)名都可在新大陸云平臺(tái)中創(chuàng)建項(xiàng)目獲得)[7];最后在后臺(tái)程序中打開(kāi)子線程,讓該子線程每隔n秒就向服務(wù)器獲取數(shù)據(jù)、解析數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)。
圖6 Get函數(shù)代碼
WPF客戶端應(yīng)用通過(guò)與物聯(lián)網(wǎng)云服務(wù)器相連,并與物聯(lián)網(wǎng)云服務(wù)器互傳數(shù)據(jù),進(jìn)而通過(guò)物聯(lián)網(wǎng)云服務(wù)器回傳數(shù)據(jù)給GPRS,GPRS又將數(shù)據(jù)傳給單片機(jī),從而讓農(nóng)場(chǎng)管理者在家中通過(guò)電腦就能夠遠(yuǎn)程觀測(cè)環(huán)境參數(shù)的變化,還可控制農(nóng)場(chǎng)監(jiān)測(cè)終端。
農(nóng)場(chǎng)管理者在電腦上登錄賬號(hào)密碼后,即可查看其管理的有機(jī)農(nóng)產(chǎn)品各項(xiàng)生長(zhǎng)環(huán)境指標(biāo)(以溫度、光照強(qiáng)度、濕度、CO2濃度為例)。如圖7為WPF客戶端應(yīng)用的用戶交互界面,主要是對(duì)某一個(gè)地區(qū)的有機(jī)農(nóng)產(chǎn)品生長(zhǎng)環(huán)境溫度、濕度、光照強(qiáng)度、CO2濃度指標(biāo)參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)。當(dāng)多個(gè)終端通過(guò)組網(wǎng)后,PC端能夠遠(yuǎn)程觀測(cè)有機(jī)農(nóng)場(chǎng)中各個(gè)區(qū)域的各項(xiàng)環(huán)境指標(biāo)(區(qū)域的多少根據(jù)所布置終端個(gè)數(shù)確定)。當(dāng)設(shè)定各項(xiàng)環(huán)境指標(biāo)的閾值后,有環(huán)境指標(biāo)未超出預(yù)設(shè)閾值范圍時(shí),對(duì)應(yīng)環(huán)境指標(biāo)后面的燈會(huì)常綠;反之,有環(huán)境指標(biāo)超過(guò)預(yù)設(shè)閾值時(shí),對(duì)應(yīng)環(huán)境指標(biāo)后面的燈會(huì)常紅,并第一時(shí)間提醒農(nóng)場(chǎng)管理者進(jìn)行指標(biāo)調(diào)控,進(jìn)而能夠讓農(nóng)場(chǎng)管理者提前發(fā)現(xiàn)有機(jī)農(nóng)作物生長(zhǎng)環(huán)境的改變,做到及時(shí)調(diào)控,最終讓有機(jī)農(nóng)作物的產(chǎn)量和質(zhì)量都得到提高。
圖7 WPF客戶端應(yīng)用用戶交互界面
手機(jī)APP是基于Android Studio平臺(tái)利用Java語(yǔ)言開(kāi)發(fā)的手機(jī)應(yīng)用[7]。在Activity、Broadcast Receive、Service三大基本組件的基礎(chǔ)上,用Constraint Layout約束布局、Linear Layout線性布局兩大布局方式搭建用戶交互界面,最后搭載Android自帶SQLite數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)技術(shù)開(kāi)發(fā)而成。Activity組件用于顯示用戶交互界面;Service組件用于執(zhí)行不需要與用戶交互并要求長(zhǎng)期運(yùn)行的任務(wù),即使程序被切換到后臺(tái)或用戶打開(kāi)另一個(gè)應(yīng)用程序,任務(wù)依然能夠保持正常運(yùn)行;Broadcast Receive可對(duì)外部事件進(jìn)行過(guò)濾,且只針對(duì)感興趣的外部事件; Constraint Layout約束布局和Linear Layout線性布局用于對(duì)所有控件、文本和圖片進(jìn)行合理的布局[8]。SQLite數(shù)據(jù)庫(kù)用于將內(nèi)存中接收到的瞬時(shí)數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中;網(wǎng)絡(luò)技術(shù)可利用HTTP協(xié)議和物聯(lián)網(wǎng)云服務(wù)器進(jìn)行網(wǎng)絡(luò)交互,并對(duì)物聯(lián)網(wǎng)云服務(wù)器返回的數(shù)據(jù)進(jìn)行解析。如圖8為手機(jī)APP開(kāi)發(fā)流程圖。首先在Android Studio平臺(tái)下,利用Activity搭建好用戶交互界面。然后通過(guò)線性布局和約束布局兩大布局方式,將文本、圖片、按鍵等控件進(jìn)行合理布局[6]。Android系統(tǒng)自帶的SQLite數(shù)據(jù)庫(kù)占用空間資源少、運(yùn)算速度高,建立好SQLite數(shù)據(jù)庫(kù),以便于手機(jī)APP接收存儲(chǔ)數(shù)據(jù)[9]。最后手機(jī)APP通過(guò)互聯(lián)網(wǎng)與云服務(wù)器交互,讓手機(jī)APP能接收和發(fā)送數(shù)據(jù)至云服務(wù)器。
圖8 手機(jī)APP開(kāi)發(fā)流程
手機(jī)APP的開(kāi)發(fā)重點(diǎn)與WPF客戶端應(yīng)用相同,也是與物聯(lián)網(wǎng)云服務(wù)器的數(shù)據(jù)傳遞,但與WPF客戶端應(yīng)用開(kāi)發(fā)不同的是:手機(jī)APP開(kāi)發(fā)訪問(wèn)網(wǎng)絡(luò)時(shí)需要有提前聲明權(quán)限。網(wǎng)絡(luò)權(quán)限聲明如下:
手機(jī)APP接入新大陸云服務(wù)器時(shí)與WPF客戶端應(yīng)用的開(kāi)發(fā)相同,亦是采用HTTP模式接入方式;除了不需要用到Get函數(shù)獲取web.config中的配置項(xiàng)外,其他方法均與WPF客戶端應(yīng)用開(kāi)發(fā)相同,此處不再贅述。最后,接入成功后再在后臺(tái)程序中打開(kāi)子線程,讓該子線程每隔n秒就向服務(wù)器獲取數(shù)據(jù)、解析數(shù)據(jù)、存儲(chǔ)數(shù)據(jù)。
手機(jī)APP通過(guò)與物聯(lián)網(wǎng)云服務(wù)器相連,并與云服務(wù)器互傳數(shù)據(jù);云服務(wù)器與GPRS模塊進(jìn)行數(shù)據(jù)通信,最后GPRS模塊與單片機(jī)通過(guò)串口通信進(jìn)行數(shù)據(jù)的接收與發(fā)送,從而實(shí)現(xiàn)農(nóng)場(chǎng)管理者遠(yuǎn)程控制終端監(jiān)測(cè)系統(tǒng)。
農(nóng)場(chǎng)管理者在手機(jī)APP上登陸賬號(hào)密碼后,即可查看其管理的有機(jī)農(nóng)產(chǎn)品的各項(xiàng)生長(zhǎng)環(huán)境指標(biāo)[10](以溫度、光照強(qiáng)度、濕度、CO2濃度為例),如圖9為手機(jī)APP用戶交互界面。手機(jī)APP的功能與WPF客戶端應(yīng)用相似,與其不同的是:超閾值報(bào)警時(shí),手機(jī)會(huì)進(jìn)行振動(dòng)報(bào)警,還可根據(jù)具體情況增加新功能[11]。
圖9 手機(jī)APP用戶交互界面
APP端相較于PC端有其獨(dú)特的優(yōu)勢(shì),APP端能夠全天候用手機(jī)隨時(shí)隨地查看。由于農(nóng)場(chǎng)管理者不可能每天堅(jiān)守在電腦前,因此開(kāi)發(fā)APP端來(lái)協(xié)助農(nóng)場(chǎng)管理者實(shí)時(shí)監(jiān)控亦是非常有必要的。將PC端與APP端有機(jī)結(jié)合,這樣也就形成了“1+1≥2”的新監(jiān)測(cè)模式,能夠更早地發(fā)現(xiàn)有機(jī)農(nóng)作物生長(zhǎng)環(huán)境的變化,進(jìn)行及時(shí)有效的調(diào)控。
本文提出的有機(jī)農(nóng)場(chǎng)生態(tài)環(huán)境監(jiān)測(cè)系統(tǒng),可以對(duì)有機(jī)農(nóng)場(chǎng)的各項(xiàng)環(huán)境指標(biāo)(空氣溫度、空氣濕度、土壤溫度、土壤濕度、光照強(qiáng)度等環(huán)境指標(biāo))進(jìn)行檢測(cè),并通過(guò)手機(jī)APP和PC端提醒農(nóng)場(chǎng)管理者環(huán)境指標(biāo)的變化,還可以在測(cè)量的環(huán)境指標(biāo)超標(biāo)時(shí)進(jìn)行實(shí)時(shí)報(bào)警,幫著農(nóng)場(chǎng)管理者更高效地管理農(nóng)場(chǎng),讓有機(jī)農(nóng)產(chǎn)品更加適宜生長(zhǎng),進(jìn)而提高有機(jī)農(nóng)產(chǎn)品的產(chǎn)量,以助于我國(guó)有機(jī)農(nóng)業(yè)能夠盡快地實(shí)現(xiàn)產(chǎn)品的標(biāo)準(zhǔn)化、品牌化。
物聯(lián)網(wǎng)技術(shù)2021年11期