樊建強(qiáng),張 芮
(山西農(nóng)業(yè)大學(xué)信息學(xué)院,山西 太谷 030800)
在我國(guó)農(nóng)業(yè)用水量較大,長(zhǎng)期以來(lái)還是以人工漫灌的方式作為主導(dǎo),在農(nóng)村田地灌溉時(shí)伴隨著水量浪費(fèi)現(xiàn)象較嚴(yán)重,造成了不必要的水資源浪費(fèi)。隨著物聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,且傳感器和通信設(shè)備成本的下降,利用高科技技術(shù)對(duì)水資源的管理是必要的。設(shè)計(jì)一款基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng),便于土壤溫濕度的檢測(cè)和灌溉的自動(dòng)化控制,最終起到節(jié)約水資源的效果。
為了實(shí)現(xiàn)基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)的功能,整套系統(tǒng)共分為三個(gè)模塊,分別為數(shù)據(jù)的采集及灌溉閥的控制、節(jié)點(diǎn)之間數(shù)據(jù)的傳輸、物聯(lián)網(wǎng)云平臺(tái)的數(shù)據(jù)上傳及分析處理。本文系統(tǒng)模塊單元如圖1 所示。
利用大量布置在農(nóng)田里的土壤濕度傳感器、空氣溫濕度等傳感器對(duì)農(nóng)田里土壤和空氣的溫濕度數(shù)據(jù)進(jìn)行實(shí)時(shí)收集、同時(shí)檢測(cè)系統(tǒng)電量,隨后將布置于田地里的各類傳感器節(jié)點(diǎn)采集到的數(shù)據(jù)傳入到CC2530 微處理器中進(jìn)行分析和處理。然后借助于自組網(wǎng)的ZigBee子節(jié)點(diǎn)把布置于田地里的各類傳感器采集的打包數(shù)據(jù)傳輸?shù)絑igBee2 主節(jié)點(diǎn)[4]。在判斷節(jié)點(diǎn)是否需要灌溉前,首先需要STM32F103C8T6 對(duì)各子節(jié)點(diǎn)傳輸送達(dá)的數(shù)據(jù)拆包進(jìn)行分析后,將數(shù)據(jù)包通過(guò)GPRS網(wǎng)絡(luò)報(bào)文的方式傳輸?shù)絆neNET云端中。當(dāng)用戶想要查看此時(shí)農(nóng)田土壤及空氣的溫濕度時(shí),只需要通過(guò)網(wǎng)頁(yè)Web或者手機(jī)App即可查看保存在云端的數(shù)據(jù),用戶也可以在物聯(lián)網(wǎng)平臺(tái)對(duì)灌溉控制系統(tǒng)進(jìn)行手動(dòng)控制。
基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)子節(jié)點(diǎn)電路圖如圖2 所示。
基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)采集點(diǎn)電路由CC2530 微處理器作為主控芯片,控制土壤含水量傳感器、空氣溫濕度傳感器和電池充放電系統(tǒng)以及ZigBee通信協(xié)議。各子節(jié)點(diǎn)采集的數(shù)據(jù)打包后通過(guò)ZigBee發(fā)送至STM32F103C8T6 主節(jié)點(diǎn)的ZigBee2 中,之后由GPRS上傳至物聯(lián)網(wǎng)云平臺(tái)。
主節(jié)點(diǎn)的程序是接收數(shù)據(jù)采集點(diǎn)的信息,并利用聯(lián)網(wǎng)模塊進(jìn)行數(shù)據(jù)上傳。首先對(duì)接收到的數(shù)據(jù)進(jìn)行拆包分類,隨后加入物聯(lián)網(wǎng)云平臺(tái)的網(wǎng)絡(luò)地址、應(yīng)用代碼以及設(shè)備ID,最后由聯(lián)網(wǎng)模塊發(fā)送至OneNet物聯(lián)網(wǎng)云平臺(tái)中,主控芯片STM32F103C8T6 和ZigBee2 的CC2530 芯片采用串口通信。
STM32F103C8T6 微處理器上電后,對(duì)系統(tǒng)時(shí)鐘、串口通信等模塊初始化。主程序進(jìn)入中斷等待,一旦UART2 接收到數(shù)據(jù),系統(tǒng)即跳轉(zhuǎn)至數(shù)據(jù)分析模塊,子模塊內(nèi)對(duì)數(shù)據(jù)流進(jìn)行拆包,根據(jù)數(shù)據(jù)得出節(jié)點(diǎn)位置信息,然后將不同類型的數(shù)據(jù)進(jìn)行融合分析,最后決定是否對(duì)各子節(jié)點(diǎn)發(fā)送灌溉信號(hào)。最后將網(wǎng)絡(luò)地址、應(yīng)用代碼、設(shè)備ID、數(shù)據(jù)流名稱和不同數(shù)據(jù)格式化到網(wǎng)絡(luò)報(bào)文中,并通過(guò)SIM800C聯(lián)網(wǎng)模塊發(fā)送至物聯(lián)網(wǎng)云平臺(tái)。
CC2530 芯片的主要負(fù)責(zé)數(shù)據(jù)的采集和發(fā)送。程序正常工作時(shí)循環(huán)在檢測(cè)控制信號(hào)、傳感器數(shù)據(jù)采集、數(shù)據(jù)打包和數(shù)據(jù)發(fā)送中。土壤含水量傳感器和電量監(jiān)測(cè)均為電壓采集,配置CC2530 的ADC程序即可實(shí)現(xiàn)電壓的采集。而空氣溫濕度傳感器利用的是I2C協(xié)議,需要利用軟件配置I2C讀寫(xiě)程序。
對(duì)傳感器監(jiān)測(cè)到的數(shù)據(jù)進(jìn)行打包,數(shù)據(jù)報(bào)文的格式具體如下:前兩位為數(shù)據(jù)報(bào)頭AB、AC;第三位為此次數(shù)據(jù)報(bào)文長(zhǎng)度;第四、五位為當(dāng)前子節(jié)點(diǎn)ZigBee的地址位;第六、七位為灌溉標(biāo)志位,用于表明當(dāng)前是否正在灌溉;第八、九、十位為當(dāng)前子節(jié)點(diǎn)系統(tǒng)電量;第十一、十二、十三位為土壤含水量;第十四、十五、十六位為空氣溫度,十七、十八、十九位為空氣濕度;第二十、二十一位為數(shù)據(jù)報(bào)尾FE、FF。
通過(guò)軟件和硬件調(diào)試后,基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)即完成了設(shè)計(jì)。使用方法為:在主控電路中插入可以正常工作的SIM卡;接著給主控電路和采集點(diǎn)電路接入電源;此時(shí),系統(tǒng)全部模塊進(jìn)入工作狀態(tài),節(jié)點(diǎn)會(huì)將信息源源不斷的發(fā)送給主節(jié)點(diǎn),主節(jié)點(diǎn)利用聯(lián)網(wǎng)模塊將數(shù)據(jù)上傳到OneNet物聯(lián)網(wǎng)云端。實(shí)驗(yàn)利用兩個(gè)子節(jié)點(diǎn)和一個(gè)主節(jié)點(diǎn)進(jìn)行系統(tǒng)驗(yàn)證,每個(gè)子節(jié)點(diǎn)初始距離為50 m,3 月中旬,天氣晴朗,空氣和土壤溫濕度適中。所有系統(tǒng)上電后各模塊正常工作,從物聯(lián)網(wǎng)云平臺(tái)可以看到數(shù)據(jù)已被上傳,系統(tǒng)設(shè)置數(shù)據(jù)上傳間隔時(shí)間為1 s,實(shí)驗(yàn)時(shí)間為48 h實(shí)驗(yàn)分析:由表可知,該測(cè)量區(qū)域土壤含水率在22%左右,數(shù)據(jù)穩(wěn)定。由于測(cè)試時(shí)間在冬季,日照不強(qiáng),土壤水分蒸發(fā)較小,所以土壤含水率較低,這一結(jié)果與文獻(xiàn)資料數(shù)據(jù)相符。實(shí)驗(yàn)誤差:由于傳感器的靈敏度相對(duì)較低,采集到的數(shù)據(jù)不夠精準(zhǔn),造成了數(shù)據(jù)誤差相對(duì)較大。
通過(guò)瀏覽器輸入OneNET官方網(wǎng)站,在站內(nèi)搜索基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)即可進(jìn)入應(yīng)用。應(yīng)用界面共八個(gè)顯示表,分別對(duì)應(yīng)土壤含水率、空氣溫度、空氣濕度、系統(tǒng)剩余電量等信息。子節(jié)點(diǎn)檢測(cè)信息即時(shí)的上傳到OneNET平臺(tái)。任何用戶可以利用各種終端隨時(shí)查看。管理人員登錄后還可以通過(guò)頁(yè)面上的按鈕對(duì)灌溉閥進(jìn)行手動(dòng)控制,方便快捷。
https://open.iot.10086.cn/iotbox/appsquare/appview?openid=fbaf992f7ebf522b85db67ab8ad15e14 或輸入上方網(wǎng)址同樣可以進(jìn)入物聯(lián)網(wǎng)應(yīng)用界面。整體的效果如圖4 所示。
本文描述了一種基于物聯(lián)網(wǎng)云平臺(tái)的農(nóng)業(yè)灌溉系統(tǒng)。介紹了農(nóng)業(yè)自動(dòng)灌溉的應(yīng)用背景和研究方法;隨后分別從硬件電路和軟件設(shè)計(jì)兩個(gè)方面介紹了系統(tǒng)的具體設(shè)計(jì);系統(tǒng)利用ZigBee組成的節(jié)點(diǎn)電路采集數(shù)據(jù)并將數(shù)據(jù)匯總,并通過(guò)GPRS聯(lián)網(wǎng)模塊實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的上傳。同時(shí)主節(jié)點(diǎn)接受物聯(lián)網(wǎng)應(yīng)用下發(fā)的手動(dòng)灌溉命令,最終實(shí)現(xiàn)了對(duì)基于物聯(lián)網(wǎng)的農(nóng)業(yè)灌溉系統(tǒng)的設(shè)計(jì)。