周 鵬,燕 斌,田 晨,許愛(ài)霞,程 濤
(1.江蘇農(nóng)牧科技職業(yè)學(xué)院 農(nóng)業(yè)物聯(lián)網(wǎng)系,江蘇 泰州 225300; 2.靖江市氣象局,江蘇 靖江 214500;3.泰州市姜堰區(qū)農(nóng)業(yè)委員會(huì),江蘇 泰州 225500)
大田農(nóng)業(yè)是指大面積種植農(nóng)作物的大規(guī)模農(nóng)業(yè)生產(chǎn)。小麥、水稻、玉米等在我國(guó)有著大面積種植范圍的,均可稱為大田農(nóng)作物。農(nóng)作物的生長(zhǎng)離不開(kāi)水,長(zhǎng)時(shí)間干旱將對(duì)農(nóng)作物產(chǎn)生不利的影響,甚至導(dǎo)致植株的死亡,而降水過(guò)多也容易造成農(nóng)作物爛根等疾病。監(jiān)測(cè)系統(tǒng)可以監(jiān)測(cè)大田的降雨情況,當(dāng)降雨時(shí)間過(guò)短,可實(shí)施人工灌溉,當(dāng)降雨時(shí)間過(guò)長(zhǎng)時(shí),則應(yīng)做好農(nóng)田的排水措施。降雪量偏大的地區(qū),如果覆蓋在小麥上的冰雪層融化而氣溫又長(zhǎng)期穩(wěn)定在零下時(shí),就有可能對(duì)冬小麥產(chǎn)生凍害。監(jiān)測(cè)系統(tǒng)可對(duì)降雪進(jìn)行監(jiān)控,可對(duì)冬小麥等農(nóng)作物實(shí)施搶收搶管。待天晴雪融后,可進(jìn)行培土壅根、覆蓋保苗,增施有機(jī)肥和鉀肥等暖性肥料,以增強(qiáng)農(nóng)作物的抗寒能力[1]。
大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)遵循物聯(lián)網(wǎng)的三層基本結(jié)構(gòu)[2]。感知層通過(guò)傳感器節(jié)點(diǎn),采集大田氣象環(huán)境信息,并將數(shù)據(jù)匯聚至網(wǎng)關(guān)節(jié)點(diǎn)做濾波、融合等處理[3]后送服務(wù)器。用戶借助計(jì)算機(jī)網(wǎng)絡(luò)或移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)訪問(wèn)服務(wù)器中保存的數(shù)據(jù)。用戶在應(yīng)用層實(shí)現(xiàn)大田氣象環(huán)境信息的接收和發(fā)送控制命令[4]。
大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)分為傳感器節(jié)點(diǎn)、網(wǎng)關(guān)和服務(wù)器三大部分,整個(gè)系統(tǒng)的體系結(jié)構(gòu)如圖1所示。該系統(tǒng)的具體實(shí)施需要完成各種節(jié)點(diǎn)硬件平臺(tái)、節(jié)點(diǎn)應(yīng)用程序、Web Service設(shè)計(jì),其中硬件平臺(tái)的設(shè)計(jì)包括傳感器節(jié)點(diǎn)和網(wǎng)關(guān)節(jié)點(diǎn)的設(shè)計(jì)[5]。
圖1 大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)
由于大田種植區(qū)域面積較大,因此大田中數(shù)據(jù)采集節(jié)點(diǎn)與服務(wù)器之間不便采用傳統(tǒng)有線傳輸、藍(lán)牙、Zigbee或Wifi等數(shù)據(jù)傳輸方式[6]。而采用NRF24L01+PA的大功率無(wú)線通訊進(jìn)行信息傳輸是一種較為合理可行的數(shù)據(jù)傳輸方案[7]。
NRF24L01+PA的大功率無(wú)線通訊距離在2 300 m左右,如需將傳感器節(jié)點(diǎn)收集到的數(shù)據(jù)共享到更廣的區(qū)域內(nèi)則需要借助其他技術(shù)手段,如以太網(wǎng)、GPRS等。以太網(wǎng)技術(shù)在眾多領(lǐng)域均有應(yīng)用,且軟硬件技術(shù)成熟,適合遠(yuǎn)距離、數(shù)據(jù)量大及高傳輸速率的應(yīng)用場(chǎng)合,在網(wǎng)關(guān)節(jié)點(diǎn)上配置NRF24L01+PA及網(wǎng)卡模塊的方案可以解決大田缺乏計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)設(shè)施的情況下,可靠傳輸大田氣象信息數(shù)據(jù)的問(wèn)題。
傳感器節(jié)點(diǎn)主要包含數(shù)據(jù)采集單元和數(shù)據(jù)傳輸模塊。傳感器節(jié)點(diǎn)采用STC公司型號(hào)為STC12C5A60S2的單片機(jī)為核心,雨雪、風(fēng)速、風(fēng)向、土壤濕度、光照等傳感器將測(cè)量的數(shù)據(jù)送至STC12C5A60S2經(jīng)必要處理后以無(wú)線傳輸?shù)姆绞絺魉椭辆W(wǎng)關(guān)節(jié)點(diǎn)。
網(wǎng)關(guān)節(jié)點(diǎn)主要由數(shù)據(jù)傳輸模塊、數(shù)據(jù)處理單元和網(wǎng)卡模塊組成,實(shí)現(xiàn)的功能主要包括接收傳感器節(jié)點(diǎn)發(fā)送的數(shù)據(jù),將基于自定義協(xié)議的數(shù)據(jù)轉(zhuǎn)換成符合TCP/IP協(xié)議的數(shù)據(jù)。轉(zhuǎn)換完成后,通過(guò)網(wǎng)卡模塊把數(shù)據(jù)發(fā)送到計(jì)算機(jī)。
雨雪傳感器節(jié)點(diǎn)主要由雨雪傳感器及STC12C5A60S2單片機(jī)構(gòu)成,土壤濕度傳感器節(jié)點(diǎn)主要由土壤濕度傳感器及STC12C5A60S2單片機(jī)構(gòu)成。雨雪傳感器和土壤濕度傳感器都是將探頭所接觸介質(zhì)的電導(dǎo)率變化轉(zhuǎn)化為電壓變化并送至STC12C5A60S2單片機(jī)做A/D轉(zhuǎn)換,根據(jù)測(cè)量值可獲取降雨、降雪及土壤濕度數(shù)據(jù)。單片機(jī)獲取數(shù)據(jù)后通過(guò)NRF24L01+PA無(wú)線傳輸模塊將數(shù)據(jù)傳輸至網(wǎng)關(guān)節(jié)點(diǎn)。
風(fēng)速、風(fēng)向傳感器節(jié)點(diǎn)主要由風(fēng)速、風(fēng)向傳感器及STC12C5A60S2單片機(jī)構(gòu)成。風(fēng)速、風(fēng)向傳感器的輸出為模擬電壓值,風(fēng)速、風(fēng)向的變化轉(zhuǎn)化為電壓變化并送至STC12C5A60S2單片機(jī)做A/D轉(zhuǎn)換,根據(jù)測(cè)量值可獲取風(fēng)速、風(fēng)向數(shù)據(jù)。單片機(jī)獲取數(shù)據(jù)后通過(guò)NRF24L01+PA無(wú)線傳輸模塊將數(shù)據(jù)傳輸至網(wǎng)關(guān)節(jié)點(diǎn)。
光照傳感器節(jié)點(diǎn)主要由BH1750FVI光照傳感器及STC12C5A60S2單片機(jī)構(gòu)成,兩者采用IIC總線方式進(jìn)行數(shù)據(jù)傳輸。BH1750FVI光照傳感器負(fù)責(zé)采集大田的光照數(shù)據(jù)并將數(shù)據(jù)通過(guò)NRF24L01+PA無(wú)線傳輸模塊轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn)。
網(wǎng)關(guān)節(jié)點(diǎn)主要由ENC28J60網(wǎng)卡模塊、NRF24L01+PA無(wú)線傳輸模塊及STM32F103單片機(jī)構(gòu)成,ENC28J60帶有SPI接口,通過(guò)該接口可以將其與STM32F103進(jìn)行連接(圖2)。NRF24L01+PA無(wú)線傳輸模塊與網(wǎng)關(guān)節(jié)點(diǎn)采用串口連接,用于與其他傳感器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信,對(duì)各傳感器節(jié)點(diǎn)轉(zhuǎn)發(fā)的數(shù)據(jù)做數(shù)據(jù)融合后,ENC28J60模塊將處理好的數(shù)據(jù)借助計(jì)算機(jī)網(wǎng)絡(luò)傳輸至計(jì)算機(jī)[8]。
圖2 CC2530與網(wǎng)卡芯片ENC28J60的連接
大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)中的雨雪傳感器、土壤濕度傳感器、風(fēng)速、風(fēng)向傳感器節(jié)點(diǎn)都是輸出模擬電壓數(shù)據(jù)經(jīng)STC12C5A60S2單片機(jī)采集后由NRF24L01+PA無(wú)線傳輸模塊轉(zhuǎn)發(fā)至網(wǎng)關(guān)節(jié)點(diǎn)。因此傳感器節(jié)點(diǎn)的程序主要包括單片機(jī)AD采集與NRF24L01數(shù)據(jù)傳輸兩部分(圖3)。
圖3 AD采集與NRF24L01數(shù)據(jù)傳輸程序流程
網(wǎng)關(guān)節(jié)點(diǎn)需要與其他多個(gè)傳感器節(jié)點(diǎn)進(jìn)行數(shù)據(jù)通信,通信部分程序流程圖如圖3所示。為保證網(wǎng)關(guān)節(jié)點(diǎn)接收到數(shù)據(jù)后能識(shí)別出不同類型傳感器節(jié)點(diǎn)發(fā)送過(guò)來(lái)的數(shù)據(jù),需要自定義一套通信協(xié)議。約定節(jié)點(diǎn)發(fā)送的指令/數(shù)據(jù)格式為幀頭+節(jié)點(diǎn)編號(hào)+模塊ID+命令/數(shù)據(jù)(ParamH+ParamL)+幀尾,其中網(wǎng)關(guān)節(jié)點(diǎn)的幀頭為CC EE,傳感器節(jié)點(diǎn)的幀頭為EE CC;節(jié)點(diǎn)編號(hào)從01~FF;模塊ID號(hào)從01~FF;幀尾為FF。根據(jù)自定義通信協(xié)議定義的數(shù)據(jù)包結(jié)構(gòu)體如下:
typedef struct
{ uint8 Header_1;
uint8 Header_2;
uint8 NodeSeq; //
節(jié)點(diǎn)編號(hào)
uint8 NodeID; //
模塊ID(00表示網(wǎng)關(guān))
uint8 Command; uint8 Data[10];
uint8 Tailer;
}UART_Format;
網(wǎng)關(guān)節(jié)點(diǎn)需要實(shí)現(xiàn)的另一個(gè)功能是將其接收到的基于自定義通信協(xié)議的數(shù)據(jù)包轉(zhuǎn)換成TCP/IP數(shù)據(jù)包。而在嵌入式設(shè)備上直接移植TCP/IP協(xié)議棧不僅工作量大而且難度高,因此改變思路移植一些經(jīng)過(guò)改進(jìn)的適用于嵌入式系統(tǒng)的TCP/IP協(xié)議棧則能起到事半功倍的效果。一些著名的輕量級(jí)TCP/IP協(xié)議棧有瑞典計(jì)算機(jī)科學(xué)研究院的Adam Dunkels等開(kāi)發(fā)的LwIP協(xié)議棧和uIP協(xié)議棧等。當(dāng)然還可以使用硬件協(xié)議棧即選擇自帶硬件TCP/IP協(xié)議棧的網(wǎng)卡芯片,如W5500以太網(wǎng)芯片。本設(shè)計(jì)采用的方案是在嵌入式微控制器上移植uIP協(xié)議棧[9]。
如何將網(wǎng)關(guān)節(jié)點(diǎn)匯聚并經(jīng)濾波、融合過(guò)的數(shù)據(jù)提供給眾多用戶訪問(wèn)也是大田種植區(qū)域內(nèi)氣象環(huán)境監(jiān)測(cè)系統(tǒng)研究的重點(diǎn)。Web Service通過(guò)為用戶提供一組網(wǎng)頁(yè)有效地解決了上述問(wèn)題。Web應(yīng)用程序一般都是B/S架構(gòu),即瀏覽器/服務(wù)器(Browser/Server)架構(gòu)。B/S結(jié)構(gòu)的程序開(kāi)發(fā)、部署簡(jiǎn)單,用戶易學(xué)易用,且網(wǎng)關(guān)升級(jí)時(shí)也不影響應(yīng)用集成。根據(jù)大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)的需求及特點(diǎn),構(gòu)建如圖4所示的Web Service服務(wù)器[10]。
圖4 Web和應(yīng)用程序服務(wù)器
大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)的前臺(tái)采用JSP語(yǔ)言編寫,通過(guò)JSP程序?qū)?shù)據(jù)庫(kù)中的內(nèi)容讀出來(lái)顯示在主頁(yè)上,接收網(wǎng)關(guān)節(jié)點(diǎn)從客戶端輸入的氣象信息并寫入數(shù)據(jù)庫(kù)。當(dāng)后臺(tái)數(shù)據(jù)庫(kù)中的內(nèi)容改變時(shí),前臺(tái)頁(yè)面顯示的信息也應(yīng)隨之變化。后臺(tái)模塊主要通過(guò)數(shù)據(jù)庫(kù)實(shí)現(xiàn),負(fù)責(zé)存儲(chǔ)網(wǎng)關(guān)節(jié)點(diǎn)從客戶端輸入的信息并進(jìn)行編號(hào),同時(shí)管理員也可通過(guò)數(shù)據(jù)庫(kù)實(shí)行動(dòng)態(tài)管理。
本系統(tǒng)采用NRF24L01+PA無(wú)線傳輸模塊和以太網(wǎng)相結(jié)合的通信方式實(shí)現(xiàn)對(duì)大田氣象環(huán)境信息的監(jiān)測(cè)。測(cè)試結(jié)果顯示,大田氣象環(huán)境監(jiān)測(cè)系統(tǒng)能穩(wěn)定、可靠地運(yùn)行,實(shí)現(xiàn)了設(shè)計(jì)目標(biāo)。本系統(tǒng)不僅適用于對(duì)大田氣象環(huán)境的監(jiān)控,還可用于其他眾多場(chǎng)合,具有廣泛的應(yīng)用前景。
[1] 伍丹,高紅菊,梁棟,等.無(wú)線傳感器網(wǎng)絡(luò)農(nóng)田環(huán)境監(jiān)測(cè)管理平臺(tái)設(shè)計(jì)[J]. 農(nóng)機(jī)化研究,2014(9):138-141.
[2] 鄭紀(jì)業(yè),阮懷軍,封文杰,等.農(nóng)業(yè)物聯(lián)網(wǎng)體系結(jié)構(gòu)與應(yīng)用領(lǐng)域研究進(jìn)展[J].中國(guó)農(nóng)業(yè)科學(xué),2017,50(4):657-668.
[3] 宋慶恒.基于多傳感器數(shù)據(jù)融合的蔬菜大棚控制系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2015(4):211-214.
[4] 李明河,郭建忠,王健.基于GPRS的村鎮(zhèn)污水處理遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)[J].控制工程,2017,24(4):799-803.
[5] 周鵬,燕斌.TinyOS在MSP430F149上的移植與應(yīng)用[J].自動(dòng)化儀表,2016 (8):13-15,20.
[6] 許童羽,王建東,須暉,等.基于ZigBee與WiFi的北方日光溫室群監(jiān)控系統(tǒng)設(shè)計(jì)[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2016,37(1):59-64.
[7] 左湘文,薛箏箏,肖建輝.基于51單片機(jī)的氣象數(shù)據(jù)無(wú)線傳輸系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)[J].氣象科技,2015,43(5):829-832,879.
[8] 安葳鵬,屈星龍,李長(zhǎng)青. 基于.ENC28J60以太網(wǎng)接口的礦用監(jiān)控分站設(shè)計(jì)[J].測(cè)控技術(shù),2016,35(11):91-94.
[9] 蔣萊. 幾個(gè)主流TCP/IP協(xié)議棧介紹[J]. 計(jì)算機(jī)與網(wǎng)絡(luò),2016(8):46.
[10] 趙鐵松,王曉云,李偉,等.基于B/S架構(gòu)和開(kāi)源WebGIS平臺(tái)的氣象觀測(cè)站網(wǎng)可視化系統(tǒng)[J].氣象科技,2013,41(1):57-61,96.