田均成
嵌入式實(shí)時(shí)處理器與各種智能傳感器的結(jié)合實(shí)現(xiàn)了底層農(nóng)業(yè)信息的采集,處理器控制Wi-Fi網(wǎng)絡(luò)設(shè)備接入互聯(lián)網(wǎng)實(shí)現(xiàn)環(huán)境信息的網(wǎng)絡(luò)傳輸,遠(yuǎn)程云服務(wù)器與數(shù)據(jù)庫(kù)的結(jié)合實(shí)現(xiàn)環(huán)境信息數(shù)據(jù)的實(shí)時(shí)網(wǎng)絡(luò)存儲(chǔ),基于Android或IOS的移動(dòng)設(shè)備通過(guò)網(wǎng)絡(luò)與云服務(wù)器連接實(shí)時(shí)獲取環(huán)境數(shù)據(jù)信息。基于嵌入式實(shí)時(shí)處理器、智能傳感器、高性能云平臺(tái)、實(shí)時(shí)數(shù)據(jù)庫(kù)與移動(dòng)設(shè)備的新型智能農(nóng)業(yè)環(huán)境檢測(cè)系統(tǒng)也將極大的加速農(nóng)業(yè)的現(xiàn)代化發(fā)展。
【關(guān)鍵詞】嵌入式 Wi-Fi 智能農(nóng)業(yè) 云平臺(tái)
1 引言
民以食為天,國(guó)家的發(fā)展與建設(shè)無(wú)法脫離農(nóng)業(yè)的基礎(chǔ)建設(shè)與發(fā)展而獨(dú)立運(yùn)行,農(nóng)業(yè)的發(fā)展是關(guān)系國(guó)家命運(yùn)的大問(wèn)題。對(duì)于農(nóng)作物的生長(zhǎng)環(huán)境數(shù)據(jù)需要長(zhǎng)期大量存儲(chǔ)與分析,計(jì)算機(jī)網(wǎng)絡(luò)與云計(jì)算的發(fā)展使得分布式處理得以實(shí)現(xiàn),在不同的空間中布置分布式的數(shù)據(jù)庫(kù),可以有效的進(jìn)行比較大的容量數(shù)據(jù)計(jì)算和處理,建立在嵌入式實(shí)時(shí)運(yùn)行環(huán)境、多節(jié)點(diǎn)傳感采集單元、Linux遠(yuǎn)端云、分布式數(shù)據(jù)庫(kù)、移動(dòng)設(shè)備終端的一體化智能農(nóng)業(yè)環(huán)境檢測(cè)系統(tǒng)將逐步取代傳統(tǒng)的農(nóng)業(yè)生產(chǎn),從多個(gè)方面提升農(nóng)業(yè)生長(zhǎng)作物的產(chǎn)量。
近些年移動(dòng)終端設(shè)備的崛起,當(dāng)下基于谷歌開(kāi)源Android系統(tǒng)定制的手機(jī)和基于蘋果公司獨(dú)立開(kāi)發(fā)的IOS系統(tǒng)手機(jī)都已普及,嵌入式設(shè)備通過(guò)互聯(lián)網(wǎng)將終端采集節(jié)點(diǎn)數(shù)據(jù)上傳至智能云平臺(tái),遠(yuǎn)端云將數(shù)據(jù)存儲(chǔ)到分布式數(shù)據(jù)庫(kù)中,對(duì)于運(yùn)行Linux系統(tǒng)的云服務(wù)器可以對(duì)環(huán)境數(shù)據(jù)進(jìn)行實(shí)時(shí)分析處理,用戶可以獨(dú)立設(shè)置初始預(yù)警條件,一旦發(fā)生異常情況,智能云將會(huì)以短信或信息推送的方式將異常數(shù)據(jù)及處理下發(fā)到訂閱的終端設(shè)備,實(shí)現(xiàn)的數(shù)據(jù)信息的實(shí)時(shí)性。
2 整體系統(tǒng)設(shè)計(jì)
基于云平臺(tái)的智能農(nóng)業(yè)環(huán)境檢測(cè)系統(tǒng)主要由三大部分構(gòu)成,分別是智能云平臺(tái)、嵌入式傳感采集終端、移動(dòng)設(shè)備終端,三部分之間通過(guò)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交互,對(duì)傳輸數(shù)據(jù)進(jìn)行相應(yīng)的幀處理,將每一幀數(shù)據(jù)格式化成自定義的傳輸格式,采用用鍵值去獲取環(huán)境信息值的Json格式傳送數(shù)據(jù)。
2.1 系統(tǒng)整體硬件電路設(shè)計(jì)
嵌入式外設(shè)傳感采集端采用STM32F411作為核心,外接空氣的溫濕度采集器DHT11、土壤的溫度采集器DS18B20、土壤的濕度采集器FC-28、光照的強(qiáng)度采集器BH1570FVI、二氧化的碳濃度采集器MG811,片內(nèi)移植Wi-Fi射頻驅(qū)動(dòng)程序,可以實(shí)時(shí)的連接路由網(wǎng)絡(luò),與遠(yuǎn)端云服務(wù)器進(jìn)行通信。處理器運(yùn)行Mico實(shí)時(shí)操作系統(tǒng),負(fù)責(zé)各種采集任務(wù)間的切換與數(shù)據(jù)讀取。
移動(dòng)設(shè)備端使用IOS手機(jī)以及PC的瀏覽器網(wǎng)頁(yè),移動(dòng)設(shè)備通過(guò)HTTP請(qǐng)求與智能農(nóng)業(yè)云服務(wù)器通信獲取農(nóng)作物歷史生長(zhǎng)環(huán)境數(shù)據(jù),采用長(zhǎng)連接技術(shù)的MQTT協(xié)議進(jìn)行設(shè)備節(jié)點(diǎn)實(shí)時(shí)的數(shù)據(jù)透?jìng)?,PC端由獨(dú)立的行情顯示界面,實(shí)時(shí)的獲取環(huán)境數(shù)據(jù)信息,移動(dòng)端集成了百度云推送客戶端SDK,可以非常方便的進(jìn)行云端到客戶端的信息推送。
2.2 軟件系統(tǒng)設(shè)計(jì)
云平臺(tái)和移動(dòng)端設(shè)計(jì):
智能農(nóng)業(yè)云平臺(tái)運(yùn)行在阿里云之上,配置了Linux的運(yùn)行環(huán)境,選擇的操作系統(tǒng)為Ubuntu 14.04,系統(tǒng)配置了SSH遠(yuǎn)程連接,可以通過(guò)網(wǎng)絡(luò)遠(yuǎn)程登陸系統(tǒng),進(jìn)行文件的部署與開(kāi)發(fā)。云平臺(tái)后端采用Node.js語(yǔ)言開(kāi)發(fā),首先配置Node.js運(yùn)行時(shí)環(huán)境,在Linux上安裝Node.js只需在Linux終端上執(zhí)行命令apt-get install nodejs即可自動(dòng)安裝最新的版本工具。數(shù)據(jù)存儲(chǔ)運(yùn)用mongodb,緩存數(shù)據(jù)庫(kù)采用Redis數(shù)據(jù)庫(kù),Redis數(shù)據(jù)庫(kù)是基于內(nèi)存的key-value方式存儲(chǔ),可以大大的提升系統(tǒng)數(shù)據(jù)的存取速率。
實(shí)時(shí)環(huán)境數(shù)據(jù)信息的發(fā)送系統(tǒng)中使用了MQTT協(xié)議進(jìn)行傳輸,MQTT協(xié)議使用Socket長(zhǎng)連接技術(shù)與云平臺(tái)進(jìn)行數(shù)據(jù)傳輸,系統(tǒng)中使用30秒的心跳機(jī)制,每隔30秒定期的向云服務(wù)器發(fā)送一幀ping信號(hào),云服務(wù)器接得到設(shè)備端的心跳,向設(shè)備端發(fā)送出一個(gè)pong信號(hào),心跳機(jī)制可以保持網(wǎng)連接的持續(xù)性和實(shí)現(xiàn)設(shè)備端到云端的上行數(shù)據(jù)傳輸和云端到設(shè)備端的下行數(shù)據(jù)傳輸。MQTT協(xié)議基于發(fā)布訂閱模型,數(shù)據(jù)的發(fā)送需要指定一個(gè)主題,數(shù)據(jù)的接收也需要訂閱一個(gè)話題為了實(shí)現(xiàn)MQTT協(xié)議傳輸。
MQTT服務(wù)器主要用于和嵌入式端STM32F411CE和移動(dòng)客戶端IOS進(jìn)行實(shí)時(shí)的雙向通信,通信的過(guò)程中采用了Socket的長(zhǎng)連接技術(shù),嵌入式設(shè)備端在MQTT服務(wù)器上發(fā)布一個(gè)話題,即可實(shí)現(xiàn)數(shù)據(jù)與云服務(wù)器的傳輸,云端接收到嵌入式端傳來(lái)的實(shí)時(shí)環(huán)境信息并將數(shù)據(jù)存放到環(huán)境信息表中,移動(dòng)客戶端在MQTT服務(wù)器上訂閱一個(gè)數(shù)據(jù)話題,一旦話題的數(shù)據(jù)發(fā)生改變,服務(wù)器能夠?qū)崟r(shí)的把設(shè)備端數(shù)據(jù)推送到移動(dòng)客戶端IOS上。
系統(tǒng)的主界面左上方有一個(gè)設(shè)備刷新按鈕,我們點(diǎn)擊時(shí)將自動(dòng)的刷新獲取最新得到的設(shè)備信息數(shù)據(jù),程序中通過(guò)讀取離線設(shè)備數(shù)組,將更新顯示列表的數(shù)據(jù)源重新渲染視圖顯示頁(yè)面。點(diǎn)擊右上方的設(shè)備添加按鈕,系統(tǒng)將通過(guò)自定義的用戶控制器,控制頁(yè)面自動(dòng)跳轉(zhuǎn)到設(shè)備添加頁(yè)面。
3 結(jié)束語(yǔ)
本系統(tǒng)設(shè)計(jì)了將云平臺(tái)與嵌入式處理傳感采集單元和移動(dòng)客戶端及PC網(wǎng)頁(yè)端相結(jié)合,實(shí)現(xiàn)了農(nóng)業(yè)生產(chǎn)中的環(huán)境信息的實(shí)時(shí)采集與云端的上傳存儲(chǔ)功能,設(shè)計(jì)中考慮了如何減少系統(tǒng)資源的使用,使用了低功耗的ARM嵌入式處理器,傳感采集單元采用了數(shù)字型芯片,客戶端采用當(dāng)下智能的IOS系統(tǒng)作為移動(dòng)端的展現(xiàn),PC端可以讓用戶通過(guò)瀏覽器獲取設(shè)備的信息。
參考文獻(xiàn)
[1]李圣華,肖傳輝.基于物聯(lián)網(wǎng)技術(shù)的智能農(nóng)業(yè)系統(tǒng)設(shè)計(jì)[J].科技廣場(chǎng),2011(07):73-75.
[2]季軍.基于MongoDB的云資源管理系統(tǒng)設(shè)計(jì)與優(yōu)化[D].西安:西安電子科技大學(xué),2014.
[3]吳嫻.嵌入式Linux文件系統(tǒng)的設(shè)計(jì)和實(shí)踐[D].蘇州:蘇州大學(xué),2003.
[4]林佳作.基于長(zhǎng)連接的移動(dòng)終端消息推送系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安電子科技大學(xué),2014.
[5]朱艷.移動(dòng)應(yīng)用的消息推送與MQTT協(xié)議[J].無(wú)線互聯(lián)科技,2015(08):1-3.
[6]任艷.淺談Objective-C內(nèi)存管理技術(shù)及應(yīng)用[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2014(24):151-152.
作者單位
吉林大學(xué)電子科學(xué)與工程學(xué)院 吉林省長(zhǎng)春市 130012