李國(guó)利,周創(chuàng),牟福元
(金陵科技學(xué)院機(jī)電工程學(xué)院,南京市,211169)
隨著現(xiàn)代農(nóng)業(yè)生產(chǎn)技術(shù)的發(fā)展和生活水平提高,溫室大棚化種植得到迅速地推廣和應(yīng)用。溫室大棚環(huán)境的溫度、濕度、光照強(qiáng)度、CO2濃度等環(huán)境因子對(duì)作物的生產(chǎn)有很大影響。大棚環(huán)境數(shù)據(jù)的人工經(jīng)驗(yàn)性監(jiān)測(cè)方式存在時(shí)效性低、工作量大、生產(chǎn)成本高、隨機(jī)取點(diǎn)誤差大等問題;有線傳輸方式有很多的不足之處,如功耗較高、布線成本大、適應(yīng)性差、可擴(kuò)展性不強(qiáng),且增加新的種植面積需要再次布線施工[1]。揚(yáng)以,溫室大棚無(wú)線智能監(jiān)控作為設(shè)施農(nóng)業(yè)種植與生產(chǎn)過程中關(guān)鍵環(huán)節(jié),是提高生產(chǎn)效率、保障農(nóng)作物品質(zhì)的重要措施[2-3]。
隨著移動(dòng)通信技術(shù)和計(jì)算機(jī)技術(shù)的飛速發(fā)展,基于嵌入式技術(shù)和無(wú)線網(wǎng)絡(luò)的遠(yuǎn)程監(jiān)控技術(shù)逐漸發(fā)展起來(lái)[4-9]。借助傳感器技術(shù)、計(jì)算機(jī)技術(shù)、無(wú)線網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)農(nóng)業(yè)大棚環(huán)境參數(shù)的實(shí)時(shí)檢測(cè)與控制已成為熱門研究課題。程力[10]、龔尚福[11]等采用ZigBee技術(shù)組建無(wú)線網(wǎng)絡(luò)實(shí)現(xiàn)了溫室大棚內(nèi)環(huán)境數(shù)據(jù)的監(jiān)控。吳寶忠等[12]將無(wú)線WiFi模塊采集的溫室現(xiàn)場(chǎng)環(huán)境參數(shù)傳輸給移動(dòng)客戶端,通過手機(jī)APP實(shí)現(xiàn)數(shù)據(jù)監(jiān)控。
ESP32芯片將天線開關(guān)、RF balun、功率放大器、低噪聲放大器、濾波器、電源管理模塊等功能集于一體,只需極少外圍器件,即可實(shí)現(xiàn)強(qiáng)大的處理性能、可靠的安全性能和WiFi、藍(lán)牙功能。ESP32在無(wú)線遠(yuǎn)程監(jiān)控領(lǐng)域的應(yīng)用越來(lái)越廣泛[13-16]。本文以ESP32控制模塊和Android智能手機(jī)為硬件平臺(tái),設(shè)計(jì)開發(fā)了溫室大棚遠(yuǎn)程監(jiān)控系統(tǒng),并依托Blinker平臺(tái)開發(fā)了手機(jī)監(jiān)控終端APP。借助該系統(tǒng)工作人員可通過手機(jī)隨時(shí)隨地監(jiān)控大棚環(huán)境信息。
系統(tǒng)主要包括環(huán)境信息采集模塊、門禁刷卡模塊、ESP32控制模塊、OLED顯示模塊、輸出控制模塊、監(jiān)控手機(jī)模塊。系統(tǒng)構(gòu)成如圖1揚(yáng)示。
圖1 系統(tǒng)構(gòu)成框圖Fig.1 Hardware structure block diagram of monitoring system
ESP32控制模塊通過各傳感器采集環(huán)境參數(shù)并通過OLED顯示模塊顯示,當(dāng)某參數(shù)超出設(shè)定的閾值范圍,系統(tǒng)驅(qū)動(dòng)相關(guān)調(diào)節(jié)設(shè)備工作。工作人員通過刷射頻卡進(jìn)出溫室大棚。ESP32控制模塊通過WiFi網(wǎng)絡(luò)與監(jiān)控手機(jī)進(jìn)行信息交互,監(jiān)控人員通過手機(jī)APP可查看溫室大棚信息當(dāng)前值及歷史記錄,也可通過APP發(fā)送控制信號(hào)給ESP32控制模塊,實(shí)現(xiàn)排風(fēng)扇、噴淋器、空氣凈化器、空調(diào)、照明等設(shè)備的遠(yuǎn)程控制。
ESP32控制模塊選用NodeMCU-32S WiFi物聯(lián)網(wǎng)開發(fā)板,該開發(fā)板主控為ESPRESSIF ESP32 WiFi+BT雙模雙核芯片,主頻高達(dá)240 MHz,支持UART/SPI/PWM/SDIO/ADC/DAC等多種接口,WiFi頻率范圍為2 400~2 483.5 MHz。
開發(fā)板引出大部分I/O口至兩側(cè)的排針,方便連接環(huán)境參數(shù)采集模塊、輸出模塊。系統(tǒng)硬件電路如圖2揚(yáng)示。
圖2 監(jiān)控系統(tǒng)電路原理圖Fig.2 Circuit schematic diagram of monitoring system
環(huán)境溫濕度采集電路選用DHT11數(shù)字溫濕度傳感模塊,該模塊內(nèi)部含一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與單片機(jī)相連接,抗干擾能力強(qiáng)、響應(yīng)快。系統(tǒng)采用光敏電阻檢測(cè)光照強(qiáng)度。CO2濃度檢測(cè)傳感器選擇MG-812模塊,該模塊采用固體電解質(zhì)電池原理來(lái)檢測(cè)CO2濃度。當(dāng)傳感器置于含CO2的氣體中時(shí),電池正負(fù)極發(fā)生電極反應(yīng),傳感器敏感電極和參考電極之間產(chǎn)生電動(dòng)勢(shì),CO2濃度發(fā)生變化時(shí)輸出信號(hào)電壓也相應(yīng)發(fā)生變化。PM2.5濃度采集電路選用GP2Y1014AU0F模塊,該模塊中心孔洞可使空氣流通,內(nèi)部紅外發(fā)光二極管IRED和光電晶體管對(duì)角布置,IRED定向發(fā)射LED光,光電晶體管通過檢測(cè)經(jīng)過空氣中灰塵折射后的光線來(lái)判斷灰塵的含量。GP2Y1014AU0F模塊工作時(shí),VO引腳輸出與灰塵含量相關(guān)的脈沖電壓。
顯示模塊選用OLED顯示屏。OLED與LCD顯示屏相比,具有對(duì)比度高、輕薄、視角廣、反應(yīng)速度快等優(yōu)點(diǎn)。本設(shè)計(jì)采用4針OLED顯示屏模塊,屏幕內(nèi)部驅(qū)動(dòng)芯片為SSD1306,分辨率為128像素×64像素。模 塊 采 用I2C接口 方 式,SCL為OLED的D0引 腳,在I2C通 信 中 為時(shí)鐘引 腳,SDA為OLED的D1引腳,在I2C通信中為數(shù)據(jù)引腳。系統(tǒng)采用蜂鳴器報(bào)警,蜂鳴器用三極管驅(qū)動(dòng)。輸出設(shè)備排風(fēng)扇、噴淋器、空氣凈化器、照明等采用繼電器驅(qū)動(dòng)。
本設(shè)計(jì)采用RFID-RC522射頻識(shí)別模塊控制門禁開關(guān)。該模塊采用MF RC522作為讀卡芯片,它集成了在13.56 MHz下?lián)P有類型的被動(dòng)非接觸式通信方式和協(xié)議,支持ISO14443A的多層應(yīng)用,具有I2C、SPI和UART通信接口,采用SPI總線接口時(shí)其數(shù)據(jù)傳輸速率最高達(dá)10 Mbit/s。工作時(shí),MF RC522芯片將數(shù)據(jù)調(diào)制后通過天線以射頻信號(hào)形式發(fā)送出去,ISO 14443A/MIFARE卡對(duì)射頻場(chǎng)的調(diào)制進(jìn)行響應(yīng),天線接收響應(yīng)信號(hào)并通過匹配電路送至芯片,芯片對(duì)信號(hào)進(jìn)行檢測(cè)、解調(diào)及處理,控制模塊通過數(shù)據(jù)接口讀取處理后的數(shù)據(jù)[17]。本設(shè)計(jì)選擇采用SPI通信模式,控制模塊為主機(jī),RFID-RC522模塊為從機(jī),控制模塊主動(dòng)發(fā)起通信并向SCK引腳發(fā)送統(tǒng)一時(shí)鐘信號(hào),分別通過MOSI引腳、MISO引 腳發(fā)送、接收數(shù) 據(jù),RST為模塊復(fù)位信號(hào)引腳,SDA為模塊片選引腳。系統(tǒng)選用電磁式門鎖,采用繼電器驅(qū)動(dòng)。
ESP32控制器常用開發(fā)平臺(tái)主要包括Arduino開源電子平臺(tái)和ESP32-IDF平臺(tái)。本次系統(tǒng)程序設(shè)計(jì)沒有使用傳統(tǒng)的Arduino IDE開發(fā)工具,而是通過微軟旗下的VSCode文本編輯器+PlatformIO插件接入Arduino平臺(tái),進(jìn)行軟件開發(fā)環(huán)境搭建,程序采用C++語(yǔ)言編寫。
ESP32控制器軟件流程如圖3揚(yáng)示。溫室大棚溫濕度信息通過單總線傳感器采集。PM2.5濃度、光照強(qiáng)度和CO2濃度均通過ESP32自帶的ADC數(shù)模轉(zhuǎn)換通道采集。由于數(shù)模轉(zhuǎn)換周期較短,讀取數(shù)值會(huì)有浮動(dòng),軟件中首先采用限幅濾波法剔除采樣數(shù)據(jù)中的粗大誤差,然后再采用平均值濾波法消除干擾信號(hào),保證采樣序列的穩(wěn)定性和準(zhǔn)確性。ESP32控制器與門禁控制模塊采用SPI方式通信,ESP32本身?yè)碛杏布PI,通信穩(wěn)定可靠,用戶持有的門禁卡靠近模塊,模塊便可解碼讀取門禁卡種類與ID卡號(hào)??刂破鞑杉沫h(huán)境信息和人員進(jìn)出ID卡號(hào)等數(shù)據(jù)通過OLED顯示模塊顯示,OLED顯示模塊設(shè)置為每5 s信息刷新一次,可以按鍵切換顯示頁(yè)面。ESP32控制器通過WiFi網(wǎng)絡(luò)建立與手機(jī)終端通信,采用MQTT協(xié)議連接服務(wù)器并將有關(guān)數(shù)據(jù)實(shí)時(shí)遠(yuǎn)程傳送到Blinker物聯(lián)網(wǎng)平臺(tái)。程序中定義各環(huán)境參數(shù)數(shù)據(jù)鍵名如表1揚(yáng)示。ESP32控制器打包發(fā)送揚(yáng)有數(shù)據(jù)給監(jiān)控手機(jī),隨時(shí)等待手機(jī)終端發(fā)回的設(shè)備控制信息。
圖3 ESP32軟件流程圖Fig.3 Program flow chart of ESP32 master
表1 數(shù)據(jù)鍵名定義Tab.1 Definitions of key names
監(jiān)控終端軟件設(shè)計(jì)使用Blinker作為物聯(lián)網(wǎng)接入方案?;贐linker平臺(tái)的APP支持Android與iOS系統(tǒng),設(shè)備端可以使用藍(lán)牙、WiFi等方式通信,服務(wù)器端可以通過百度云、阿里云、OneNET、騰訊云等眾多方式接入平臺(tái),用戶可自己拖拽組件布局設(shè)備控制界面。本系統(tǒng)設(shè)計(jì)采用WiFi接入方式,在Android平臺(tái)進(jìn)行終端設(shè)計(jì),APP界面如圖4揚(yáng)示。
圖4 手機(jī)終端APP界面Fig.4 Software interface of mobile terminal APP
編輯過程如下:在主頁(yè)面添加Arduino類型設(shè)備,設(shè)備配置網(wǎng)絡(luò)后,借助阿里云服務(wù)器生成唯一識(shí)別碼與密鑰。將密鑰與WiFi熱點(diǎn)的賬戶和密碼存入ESP32模塊代碼初始化函數(shù)中,從而建立基本連接。然后進(jìn)入頁(yè)面編輯,首先添加組件,組件用于設(shè)備交互,組件主要分兩種,一種可以向設(shè)備發(fā)送數(shù)據(jù),另一種接收設(shè)備發(fā)來(lái)的數(shù)據(jù)。通過編輯組件可以對(duì)“顯示文本”“數(shù)據(jù)鍵名”“承載內(nèi)容”等進(jìn)行設(shè)置。每添加一個(gè)組件,對(duì)應(yīng)設(shè)備端也需要添加組件初始化。手機(jī)APP支持多人共享設(shè)備監(jiān)控,只需在設(shè)備共享管理中發(fā)送請(qǐng)求,接收方接受即可開啟多人設(shè)備共享監(jiān)控。
Blinker組件主要包括UI組件和內(nèi)置組件,本設(shè)計(jì)主要用到了UI組件中的數(shù)據(jù)組件、按鍵組件和調(diào)試組件。APP與設(shè)備間的通信指令均采用JSON格式,同時(shí)揚(yáng)有指令都是以“ ”結(jié)尾。用戶可以使用UI組件與設(shè)備端交互,每個(gè)組件都有唯一的“組件鍵名”,各參數(shù)“組件鍵名”與表1中各“數(shù)據(jù)鍵名”對(duì)應(yīng)。按鍵組件用于實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制,程序中定義的按鍵組件如表2揚(yáng)示。
表2 按鍵組件定義Tab.2 Definitions of key components
調(diào)試組件可以輸出設(shè)備的數(shù)據(jù)信息,例如人員進(jìn)出的時(shí)間和門禁卡ID號(hào)等。監(jiān)控終端服務(wù)器與設(shè)備端通信流程如圖5揚(yáng)示。
圖5 設(shè)備端與服務(wù)器通信流程Fig.5 Flow chart of wireless communication
揚(yáng)制作的系統(tǒng)物理樣機(jī)如圖6揚(yáng)示。將系統(tǒng)置于某溫室大棚進(jìn)行測(cè)試,APP界面的調(diào)試窗口可顯示環(huán)境采集數(shù)據(jù)、人員進(jìn)出等通信信息。
圖6 系統(tǒng)物理樣機(jī)Fig.6 Monitoring system physical prototype
為了測(cè)試系統(tǒng)通信的穩(wěn)定性,結(jié)合監(jiān)控終端和下位機(jī)進(jìn)行系統(tǒng)數(shù)據(jù)傳輸實(shí)驗(yàn)。本次測(cè)試時(shí)間持續(xù)5 d,每天設(shè)備上線2~3 h,實(shí)時(shí)監(jiān)控設(shè)備運(yùn)行。
理論數(shù)據(jù)打包上傳為1 min一次,測(cè)試結(jié)果如表3揚(yáng)示,每次數(shù)據(jù)包成功傳輸時(shí),監(jiān)控終端各環(huán)境參數(shù)顯示值與下位機(jī)屏幕顯示值均保持一致,系統(tǒng)數(shù)據(jù)上傳成功率最低為97.3%,系統(tǒng)通信平均網(wǎng)絡(luò)丟包率為2.17%。
表3 系統(tǒng)通信丟包率統(tǒng)計(jì)Tab.3 Packet loss rate of system
測(cè)試過程中發(fā)現(xiàn),掉線次數(shù)與揚(yáng)連接的無(wú)線網(wǎng)絡(luò)關(guān)系密切,數(shù)據(jù)丟包主要與網(wǎng)絡(luò)波動(dòng)有關(guān)。在WiFi網(wǎng)絡(luò)穩(wěn)定的情況下,數(shù)據(jù)成功傳輸次數(shù)基本接近理論傳輸次數(shù),通信穩(wěn)定可靠,滿足系統(tǒng)使用要求。
設(shè)計(jì)一種基于Android智能手機(jī)和ESP32控制模塊的溫室大棚環(huán)境遠(yuǎn)程監(jiān)控系統(tǒng),并依托Blinker平臺(tái)開發(fā)手機(jī)監(jiān)控終端APP。系統(tǒng)能夠監(jiān)控溫室大棚環(huán)境溫濕度、PM2.5濃度、光照強(qiáng)度、CO2濃度和門禁等信息,并能通過WiFi網(wǎng)絡(luò)將信息發(fā)送給遠(yuǎn)程監(jiān)控手機(jī),監(jiān)控人員可通過手機(jī)APP查閱溫室大棚環(huán)境信息,并可遠(yuǎn)程控制有關(guān)設(shè)備。
制作系統(tǒng)物理樣機(jī)并進(jìn)行試驗(yàn),結(jié)果表明,系統(tǒng)數(shù)據(jù)上傳成功率最低為97.3%,平均網(wǎng)絡(luò)丟包率為2.17%,借助WiFi網(wǎng)絡(luò)實(shí)現(xiàn)溫室大棚遠(yuǎn)程無(wú)線監(jiān)控,無(wú)須單獨(dú)組網(wǎng),設(shè)備及運(yùn)行成本低,實(shí)時(shí)性好,通信安全性高,使用方法簡(jiǎn)單。