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