陳曉寧,魏 來,王 健,張 磊,孫潔茹,潘瑞娟
(安徽大學(xué) 電氣工程與自動化學(xué)院,安徽 合肥 230601)
自20世紀60年代開始,國內(nèi)外就開始大力發(fā)展現(xiàn)代化農(nóng)業(yè),將先進的無線傳感及計算機技術(shù)應(yīng)用于農(nóng)業(yè)生產(chǎn)[1].農(nóng)業(yè)環(huán)境監(jiān)測是獲取農(nóng)業(yè)環(huán)境信息的前提[2].文獻[3]設(shè)計了基于無線傳感網(wǎng)絡(luò)技術(shù)的種植環(huán)境信息監(jiān)測系統(tǒng),該系統(tǒng)實現(xiàn)了設(shè)備間的通信,但其中的ZigBee和以太網(wǎng)絡(luò)只能滿足小范圍數(shù)據(jù)的交互.文獻[4]設(shè)計的環(huán)境監(jiān)測系統(tǒng)能無線實時獲取數(shù)據(jù),由于沒有設(shè)計反饋環(huán)節(jié),當(dāng)監(jiān)測到環(huán)境信息異常時,不能及時調(diào)節(jié)環(huán)境參數(shù).文獻[5]設(shè)計了市電供電的環(huán)境監(jiān)測系統(tǒng),由于農(nóng)業(yè)監(jiān)測設(shè)備安置在偏遠室外,布線困難,而且供電線路在潮濕的農(nóng)業(yè)大棚內(nèi),也有安全隱患.以上研究表明,目前的農(nóng)業(yè)大棚環(huán)境信息監(jiān)測系統(tǒng)仍然存在距離短、功耗大、誤差大等缺點.鑒于此,筆者設(shè)計并實現(xiàn)了一種太陽能供電的農(nóng)業(yè)大棚環(huán)境監(jiān)測系統(tǒng),將采集的環(huán)境數(shù)據(jù)實時傳回監(jiān)控系統(tǒng),并通過Web客戶端查看被測節(jié)點的數(shù)據(jù)并及時調(diào)控.
農(nóng)業(yè)大棚環(huán)境監(jiān)測系統(tǒng)由前端采集模塊、中繼傳輸模塊、電源模塊、執(zhí)行器控制模塊、Web客戶端組成,系統(tǒng)的總體結(jié)構(gòu)如圖1所示.中繼傳輸模塊對前端采集的數(shù)據(jù)打包,通過GPRS以無線的方式將數(shù)據(jù)存儲至Mysql數(shù)據(jù)庫,Web客戶端從數(shù)據(jù)庫獲取數(shù)據(jù)并顯示.用戶可登錄客戶端網(wǎng)頁查看任意時刻不同節(jié)點的環(huán)境參數(shù),且能遠程控制執(zhí)行器.該系統(tǒng)實現(xiàn)了大棚環(huán)境監(jiān)測的可視化與智能化管理.
前端采集模塊由STM32F103C8T6單片機、傳感器、NRF24L01射頻芯片、電源構(gòu)成.
為了避免因數(shù)據(jù)融合帶來的誤差,保證數(shù)據(jù)傳輸?shù)姆€(wěn)定性,采用溫濕度、氣體探測一體化傳感器.該傳感器具有靈敏度高、信號穩(wěn)定、精度高、測量范圍廣、傳輸距離遠等優(yōu)點.傳感器與STM32F103C8T6單片機通過RS485實現(xiàn)遠距離通信.傳感器收到中繼設(shè)備發(fā)來的問詢幀后,將包含有效數(shù)據(jù)的應(yīng)答幀反饋至中繼設(shè)備.問詢幀和應(yīng)答幀中包含校驗碼以確保數(shù)據(jù)的準確.
選擇STM32F103C8T6單片機為主單元,通過SPI串口與NRF24L01射頻芯片進行通信[6].NRF24L01射頻芯片工作在2.4~2.5 GHz頻段,廣泛用于無線通信領(lǐng)域[7].射頻技術(shù)相比于藍牙、WiFi、Zigbee等,具有功耗低、抗干擾、可自定義協(xié)議等優(yōu)點[8].
中繼傳輸模塊由STM32F103C8T6單片機、GPRS模塊、NRF24L01射頻芯片構(gòu)成.中繼模塊為整個系統(tǒng)的數(shù)據(jù)中轉(zhuǎn)節(jié)點,處理采集的節(jié)點數(shù)據(jù),通過GPRS模塊將數(shù)據(jù)傳至后臺服務(wù)器.
GPRS模塊選用SIM900A,SIM900A負責(zé)將STM32F103C8T6單片機接收的數(shù)據(jù)傳至后臺服務(wù)器.SIM900A是一款能在增強型全球移動通信系統(tǒng)(extended global system for mobile,簡稱EGSM)和數(shù)字蜂窩系統(tǒng)(digital cellular system,簡稱DCS)的頻段下工作且支持GPRS多種編碼格式的芯片,內(nèi)部采用ARM926EJ架構(gòu),功能強大[9-10].根據(jù)實際情況選擇SIM卡的類型,把SIM卡插入GPRS模塊以供使用.GPRS模塊將采集的數(shù)據(jù)通過AT指令傳給服務(wù)器,服務(wù)器只需監(jiān)聽固定端口即可接收數(shù)據(jù).
為降低功耗,將太陽能板作為電源.電源輸出電壓為12 V,可直接給傳感器供電.以STM32F103C8T6單片機為核心的控制器的工作電壓為3.3 V,因此需通過三端集成穩(wěn)壓器LM7805將12 V轉(zhuǎn)換為5 V,再由低壓差的線性穩(wěn)壓器AMS1117將5 V轉(zhuǎn)換成3.3 V,供STM32F103C8T6單片機使用.
執(zhí)行器控制模塊由STM32F103C8T6單片機、NRF24L01射頻芯片、繼電器和電機構(gòu)成.NRF24L01射頻芯片接收父節(jié)點(數(shù)據(jù)終端)或中間節(jié)點下發(fā)的控制指令,執(zhí)行器控制模塊接收并解析指令,實現(xiàn)繼電器的導(dǎo)通和閉合.繼電器控制卷簾機、補光燈及噴灌設(shè)備的工作狀態(tài).設(shè)備動作后,執(zhí)行器控制模塊將反饋的指令傳至其父節(jié)點.
系統(tǒng)網(wǎng)絡(luò)采用樹狀拓撲結(jié)構(gòu),如圖2所示.一個數(shù)據(jù)終端可同時與6個中間節(jié)點進行點對點通信,此時數(shù)據(jù)終端最多可同時接收36個采集節(jié)點的數(shù)據(jù).若6個中間節(jié)點不能夠滿足系統(tǒng)需求,可在數(shù)據(jù)終端與中間節(jié)點之間再增加1級節(jié)點,因此該系統(tǒng)拓撲結(jié)構(gòu)具有很好的擴展性.
圖2 樹狀拓撲結(jié)構(gòu)
前端采集軟件首先對傳感器和STM32F103C8T6單片機進行初始化,然后使STM32F103C8T6單片機與傳感器通過MOUBUS進行通信[11].通信采用主從方式進行,主機(STM32F103C8T6單片機)向從機(傳感器)發(fā)送協(xié)議指令,從機接收指令后采集數(shù)據(jù),并將包含采集數(shù)據(jù)、校驗碼等信息的數(shù)據(jù)包傳給主機.STM32F103C8T6單片機通過SPI串口與NRF24L01射頻芯片建立連接,并將數(shù)據(jù)包發(fā)送至數(shù)據(jù)終端.前端采集程序流程如圖3(a)所示.
中繼傳輸軟件首先對該模塊進行初始化,然后發(fā)送AT指令使GPRS模塊與后臺服務(wù)器建立網(wǎng)絡(luò)連接.中繼設(shè)備采集上一節(jié)點的數(shù)據(jù),采集時間可以根據(jù)實際需求進行調(diào)整,該系統(tǒng)設(shè)置為每10 min接收1次節(jié)點數(shù)據(jù).中繼設(shè)備收到節(jié)點數(shù)據(jù)包后對其進行CRC校驗,如果數(shù)據(jù)正確則通過GPRS模塊傳給后臺服務(wù)器,否則舍棄該組數(shù)據(jù)并記錄.數(shù)據(jù)傳輸程序流程如圖3(b)所示.
執(zhí)行器控制軟件需要完成模塊初始化和接收中繼設(shè)備下發(fā)的控制指令.執(zhí)行器控制軟件可實現(xiàn)對卷簾機、噴灌設(shè)備、補光燈等設(shè)備的遠程控制,并將反饋信號傳給中繼設(shè)備.如果設(shè)備工作則停止下發(fā)控制指令,否則繼續(xù)下發(fā)控制指令.閉環(huán)的控制方式保證了控制功能的穩(wěn)定性,執(zhí)行控制程序流程如圖3(c)所示.
圖3 程序流程圖
基于Spring Boot及Vue框架對Web客戶端的前后端應(yīng)用進行開發(fā)[12].Web客戶端通過TCP協(xié)議與中繼設(shè)備進行通信,實現(xiàn)GPRS初始化、連接、數(shù)據(jù)存儲顯示以及設(shè)備的遠程控制等.Web客戶端采用B/S架構(gòu),將IntelliJ IDEA作為系統(tǒng)的開發(fā)環(huán)境[13].
后端應(yīng)用采用效率高、簡單易用的Mysql數(shù)據(jù)庫搭建[14].后端應(yīng)用基于SpringBoot和Mybatis框架,通過Socket與數(shù)據(jù)庫建立連接.后端應(yīng)用設(shè)置TCP協(xié)議、服務(wù)器IP地址及端口號.中繼設(shè)備發(fā)送連接請求,后端應(yīng)用收到連接請求后,以字節(jié)流的方式讀取數(shù)據(jù)并存入數(shù)據(jù)庫,再根據(jù)前端需求提供相應(yīng)的接口.
前端應(yīng)用使用Vue集成的Element UI組件進行網(wǎng)頁搭建,便于后期系統(tǒng)的優(yōu)化[15].用戶通過網(wǎng)絡(luò)請求訪問前端應(yīng)用,前端應(yīng)用通過Ajax方式訪問后端應(yīng)用.后端應(yīng)用對數(shù)據(jù)庫進行增刪改查,數(shù)據(jù)庫將增刪改查結(jié)果集以JSON格式傳給前端應(yīng)用,然后進行顯示.數(shù)據(jù)交互過程如圖4所示.
圖4 數(shù)據(jù)的交互
用戶可以通過賬號與密碼登錄監(jiān)控系統(tǒng).主界面將同一時刻不同節(jié)點的數(shù)據(jù)以表格的形式顯示,將不同時間的數(shù)據(jù)以折線圖的形式顯示,數(shù)據(jù)的對比及趨勢一目了然.通過主界面可監(jiān)測參數(shù).界面上放置Button控件,用于向下位機發(fā)送控制請求.系統(tǒng)的主界面如圖5所示.
圖5 系統(tǒng)主界面
筆者設(shè)計了大棚環(huán)境監(jiān)測系統(tǒng),并制作出相關(guān)設(shè)備.設(shè)備布置后進行實地測試,實驗場地為安徽省阜南縣食用菌大棚種植基地.大棚設(shè)置3個傳感器監(jiān)測點,分別位于大棚的前、中、后.設(shè)備外殼使用了密封圈,能安全應(yīng)用于大棚潮濕環(huán)境.現(xiàn)場布置了前端采集設(shè)備和中繼設(shè)備,二者固定在亞克力板上,再安置于監(jiān)測點,如圖6所示.
圖6 現(xiàn)場布置的設(shè)備
傳統(tǒng)監(jiān)測采用溫度計、濕度計、CO2檢測儀測量數(shù)據(jù).表1為該文監(jiān)測系統(tǒng)測量的結(jié)果與傳統(tǒng)監(jiān)測的對比.
表1 該文監(jiān)測系統(tǒng)測量的結(jié)果與傳統(tǒng)監(jiān)測的對比
以傳統(tǒng)監(jiān)測得到的數(shù)據(jù)為實際值,則由表1數(shù)據(jù)計算可得:1號監(jiān)測點的濕度、溫度、CO2濃度誤差分別為0.359%,0.054%,0.286%;2號監(jiān)測點的濕度、溫度、CO2濃度誤差分別為0.788%,0.214%,0.305%;3號監(jiān)測點濕度、溫度、CO2濃度誤差分別為0.434%,0.158%,0.311%.以上誤差均不超過1%,可見該系統(tǒng)測量的數(shù)據(jù)有較高的準確性,系統(tǒng)達到設(shè)計要求.
筆者以STM32F103C8T6單片機為核心,結(jié)合傳感器、NRF24L01射頻芯片和GPRS模塊以及Web客戶端,設(shè)計了監(jiān)測農(nóng)業(yè)大棚環(huán)境的系統(tǒng).實現(xiàn)了濕度、溫度、CO2濃度數(shù)據(jù)的采集傳輸.通過Web客戶端能實現(xiàn)數(shù)據(jù)的無線存儲及顯示、設(shè)備的遠程控制.該監(jiān)測系統(tǒng)滿足了測、記、分析一體化需求,具有應(yīng)用推廣價值.