唐 靖,宋志強(qiáng)
(1.南京信息工程大學(xué)濱江學(xué)院自動(dòng)化學(xué)院,江蘇 無錫 214105;2.無錫學(xué)院自動(dòng)化學(xué)院)
隨著時(shí)代的發(fā)展,科技的進(jìn)步,生活中各個(gè)領(lǐng)域自動(dòng)化程度越來越高。特別是在農(nóng)業(yè)領(lǐng)域,自動(dòng)化程度的提高更有利于解放勞動(dòng)者雙手,提高生產(chǎn)率。例如通過終端管理更多資源,精確的農(nóng)業(yè)系統(tǒng)可以有效保證農(nóng)作物的生長(zhǎng)質(zhì)量。
本設(shè)計(jì)是基于STM32的果園信息遠(yuǎn)程監(jiān)測(cè)系統(tǒng),該系統(tǒng)使用STM32 系列芯片并通過DHT11 溫濕度傳感器、BH1750 光照傳感器、YL-69 土壤濕度傳感器對(duì)果園環(huán)境的溫度、光照強(qiáng)度和土壤濕度信息進(jìn)行采集與處理,系統(tǒng)將數(shù)據(jù)上傳到阿里云物聯(lián)網(wǎng)平臺(tái),用戶可通過電腦終端遠(yuǎn)程實(shí)時(shí)查看果園信息。
采用STM32 系列單片機(jī),通過傳感器采集數(shù)據(jù),并通過ESP8266WIFI 模塊將數(shù)據(jù)上發(fā)至阿里云物聯(lián)網(wǎng)平臺(tái),用戶可從電腦終端或移動(dòng)端查看實(shí)時(shí)數(shù)據(jù),圖1為系統(tǒng)總體設(shè)計(jì)框圖。
圖1 系統(tǒng)總體設(shè)計(jì)
此模塊是系統(tǒng)的各個(gè)傳感器模塊,其功能是用來檢測(cè)環(huán)境數(shù)據(jù),并上發(fā)至處理器,本系統(tǒng)的監(jiān)控?cái)?shù)據(jù)采集模塊有溫濕度采集模塊,其采用的是DHT11溫濕度傳感器;測(cè)量光照強(qiáng)度的傳感器采用的是BH1750光照度傳感器;土壤濕度傳感器則采用的YL-69 土壤濕度傳感器。
⑴溫濕度采集模塊
為實(shí)現(xiàn)環(huán)境的溫濕度采集,本次設(shè)計(jì)選用的是DHT11 溫濕度傳感器。同時(shí),這個(gè)溫濕度傳感器具有體積小、功耗低、價(jià)格低等特點(diǎn),適用于本次設(shè)計(jì)。從數(shù)據(jù)手冊(cè)中可以看出,這種傳感器可以在20~60℃的環(huán)境下進(jìn)行測(cè)量,以及在5%~95% RH 范圍內(nèi)進(jìn)行測(cè)量。傳感器的三個(gè)引腳功能定義分別為:
1腳:VCC,電源控制口;
2腳:DATA,數(shù)據(jù)引腳,與單片機(jī)IO 口連接,將所測(cè)得數(shù)據(jù)發(fā)送至單片機(jī);
3腳:GND,接地。
根據(jù)數(shù)據(jù)發(fā)送時(shí)序圖完成DHT11 的驅(qū)動(dòng)代碼編寫,首先主機(jī)要給數(shù)據(jù)引腳輸出一個(gè)至少18ms的低電平然后拉高等待20-40μs,等待DHT11 回應(yīng)這時(shí)GPIO 就要改變?yōu)檩斎霠顟B(tài),DHT11 響應(yīng)拉低80μs 再拉高80μs,這個(gè)過程結(jié)束后就開始發(fā)送數(shù)據(jù)。
⑵光照強(qiáng)度采集模塊
作物的生長(zhǎng)自然也離不開光照,若想要穩(wěn)定控制作物所需的光源,自然離不開實(shí)時(shí)的環(huán)境光照檢測(cè),為用戶提供一個(gè)實(shí)時(shí)的環(huán)境光照狀態(tài),從而通過人工或終端控制作物所處環(huán)境的光照強(qiáng)度。本系統(tǒng)所選用的光照傳感器為BH1750 光照傳感器,BH1750 是一種光強(qiáng)度傳感器,能夠?qū)Νh(huán)境的光強(qiáng)度進(jìn)行量化,從而轉(zhuǎn)化為環(huán)境中的光強(qiáng)度lx。傳感器自身通過IIC總線進(jìn)行通信,通過讀取寄存器從而提取到傳感器的實(shí)時(shí)數(shù)據(jù)。同時(shí),因?yàn)閭鞲衅骶哂休^為廣泛的輸入光范圍,且小巧輕便、經(jīng)濟(jì)實(shí)惠,所以用作本系統(tǒng)的環(huán)境光照強(qiáng)度的檢測(cè)模塊。BH1750有五個(gè)引腳,其各自功能為:
1腳:VCC,電源接口;
2腳:GND,接地;
3腳:SCL,IIC時(shí)鐘線,時(shí)鐘輸入引腳,由單片機(jī)輸出時(shí)鐘信號(hào);
4腳:SDA,IIC 數(shù)據(jù)線,雙向IO 口,傳輸數(shù)據(jù)的接口;
5腳:ADDR,IIC 地址線,接GND 時(shí)器件地址為0100011,接VCC時(shí)器件地址為1011100。
⑶土壤濕度采集模塊
本設(shè)計(jì)所使用的土壤濕度傳感器為YL-69 型土壤濕度傳感器,該模塊有較大的測(cè)量范圍,基本能滿足設(shè)計(jì)需求。土壤濕度傳感器工作電壓為3.3V~5V。該電路使用LM393作為比較器件,工作性能良好。通過從單片機(jī)從AO 口獲取模擬量[1],獲得更準(zhǔn)確的仿真數(shù)據(jù),將數(shù)據(jù)提供給用戶進(jìn)行后續(xù)操作。土壤濕度傳感器的接線示意圖如圖2所示。
圖2 土壤濕度傳感器接線說明
選用小型水泵,其通過程序輸出高低電平實(shí)現(xiàn)對(duì)繼電器模塊的控制,從而控制水泵的開關(guān)。繼電器模塊與單片機(jī)相連有三處接口,分別是VCC、GND、IN,其中的VCC 與單片機(jī)電壓輸出口相接,GND 接地,IN引腳接單片機(jī)的串口,通過對(duì)IN 引腳輸出高低電平,從而控制繼電器的開關(guān)。繼電器另一端口也有三處接口,分別是NO(常開觸點(diǎn))、NC(常閉觸點(diǎn))、COM(公共端),因?yàn)檫@個(gè)繼電器模塊采用的是低電平觸發(fā),所以當(dāng)IN 引腳輸入為低電平時(shí),繼電器常開觸點(diǎn)與COM端相連,從而接通,水泵有電而工作。
ESP8266 是具有超低功率的UART-WIFI 透?jìng)髂K,包裝規(guī)格較小且能耗較低,可用作移動(dòng)設(shè)施和物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)。同時(shí)因?yàn)樗穆?lián)網(wǎng)功能,即可將使用者的設(shè)備連接至局域網(wǎng),從而完成網(wǎng)絡(luò)通信,達(dá)到互聯(lián)。ESP8266WIFI 模塊采用串口與單片機(jī)通信,其內(nèi)置有TCP/IP 協(xié)議棧,通過WIFI 與上位機(jī)通信。同時(shí),ESP8266WIFI 有三種工作模式[2],分別為:STA、AP、STA+AP。
阿里云物聯(lián)網(wǎng)平臺(tái)支持用戶設(shè)備接入,還能對(duì)用戶設(shè)備進(jìn)行管理,同時(shí)還提供創(chuàng)作者搭建便利的可視化平臺(tái)[3-4]。當(dāng)用戶進(jìn)入開發(fā)者中心后,進(jìn)行產(chǎn)品添加,設(shè)置產(chǎn)品名稱、所屬品類、節(jié)點(diǎn)類型、連網(wǎng)方式以及數(shù)據(jù)格式。ESP8266作為發(fā)布者,通過MQTT協(xié)議,將單片機(jī)測(cè)得的各種數(shù)據(jù)上傳至服務(wù)器,然后在移動(dòng)終端獲取數(shù)據(jù)[5-6]。利用阿里Iot-Studio 提供給用戶的應(yīng)用編輯器,可將環(huán)境溫度、環(huán)境濕度、土壤濕度、光照強(qiáng)度等數(shù)據(jù)顯示在Web 應(yīng)用界面上。同時(shí)設(shè)有一個(gè)獨(dú)立開關(guān),可以向設(shè)置好的數(shù)據(jù)流發(fā)送對(duì)應(yīng)的開關(guān)值數(shù)據(jù),從而控制水泵的開關(guān),若用戶需要,是可以進(jìn)行自動(dòng)控制的,通過下發(fā)AT 指令,程序內(nèi)部設(shè)置數(shù)據(jù)閾值,當(dāng)環(huán)境檢測(cè)到的數(shù)據(jù)超出閾值時(shí),則控制外部設(shè)備的啟動(dòng),從而達(dá)到自動(dòng)控制。阿里云物聯(lián)網(wǎng)云平臺(tái)配置整體流程如圖3所示。
圖3 阿里云物聯(lián)網(wǎng)平臺(tái)配置流程圖
按照上述流程建好產(chǎn)品、添加云端設(shè)備和應(yīng)用后,用戶創(chuàng)建的設(shè)備與設(shè)計(jì)中的設(shè)備對(duì)應(yīng),也是設(shè)備接入網(wǎng)絡(luò)的一種形式,阿里云物聯(lián)網(wǎng)平臺(tái)為每個(gè)設(shè)備終端提供了一塊云空間,用戶可以在上面建立其所需要的數(shù)據(jù)流,編輯可視化應(yīng)用等功能,同時(shí)還能建立用戶的人機(jī)互動(dòng)畫面,從而達(dá)到遠(yuǎn)程監(jiān)控的目的,Web應(yīng)用界面如圖4所示。
圖4 Web應(yīng)用界面
基于STM32CubeMX 進(jìn)行,同時(shí)通過MQTT 協(xié)議以及ESP8266WIFI 模塊,將所測(cè)得的數(shù)據(jù)上傳至云端.。軟件模塊包括ESP8266WIFI 模塊、LCD 模塊的SPI 驅(qū)動(dòng)、BH1750 光照傳感器驅(qū)動(dòng)、DHT11 溫濕度傳感器模塊驅(qū)動(dòng)、YL-69土壤濕度傳感器模塊等。
配置WIFI 為STA+TCP 客戶端模式,ESP8266 是通過AT 指令來實(shí)現(xiàn)程序的運(yùn)行,比如說“AT”為測(cè)試指令“AT+RST”為復(fù)位指令,二者返回都為OK;“AT+CWMODE=1”意思是設(shè)置工作模式為客戶端模式;“AT+CIPMODE=1”意思則是開啟設(shè)備的透明傳輸模式,便是ESP8266通過接收到的串口數(shù)據(jù),進(jìn)行轉(zhuǎn)發(fā)值所設(shè)置的服務(wù)器端口上;“AT+CWSAP=“SSID”,“PWD””為設(shè)置熱點(diǎn)模式下的ESP8266 的熱點(diǎn)名稱和密碼;“AT+CIPMUX=0”設(shè)置設(shè)備為單連接模式;“AT+CIPSTART="TCP","%s",%d ",ip,port”意思是建立TCP連接,從而讓局域網(wǎng)內(nèi)設(shè)備實(shí)現(xiàn)通信。
DHT11 驅(qū)動(dòng)則是根據(jù)時(shí)序圖完成DHT11 的驅(qū)動(dòng)代碼編寫,首先主機(jī)要給數(shù)據(jù)引腳輸出一個(gè)至少18ms的低電平然后拉高等待20-40μs,等待DHT11 回應(yīng)這時(shí)GPIO 就要改變?yōu)檩斎霠顟B(tài),DHT11 響應(yīng)拉低80μs再拉高80μs,這個(gè)過程結(jié)束后就開始發(fā)送數(shù)據(jù)。
YL-69 的工作原理則是通過硬件上連接的是YL-69土壤濕度傳感器的AO 引腳,AO 是傳感器的模擬量輸出,因此需要對(duì)采集到的模擬量進(jìn)行轉(zhuǎn)化,而PC2 是芯片的ADC(模數(shù)轉(zhuǎn)換器)引腳,用于處理模擬數(shù)據(jù)。通過測(cè)量可知,設(shè)備置于在空氣中時(shí),濕度為0%,所獲取到ADC 的值在3935 左右,而置于水中時(shí),濕度為100%,所得到的ADC 值在2903 左右。因此,根據(jù)這個(gè)進(jìn)行代碼部分的編寫,通過配置STM32CubeMX生成ADC 初始化代碼,用戶通過讀取傳感器ADC 的值從而獲取到實(shí)時(shí)的土壤濕度值,從而進(jìn)行轉(zhuǎn)化得到表示土壤的濕潤(rùn)度值。
本文利用現(xiàn)有的阿里云物聯(lián)網(wǎng)平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)基于STM32 和阿里云物聯(lián)網(wǎng)平臺(tái)的果園環(huán)境監(jiān)測(cè)及灌溉系統(tǒng)。阿里云物聯(lián)網(wǎng)平臺(tái)作為管理系統(tǒng)與設(shè)備之間信息交換的橋梁,為系統(tǒng)用戶提供設(shè)備數(shù)據(jù)信息的監(jiān)控信息服務(wù)。用戶可以通過移動(dòng)終端,實(shí)現(xiàn)遠(yuǎn)程控制,通過程序內(nèi)對(duì)各種閾值的設(shè)定,從而保證系統(tǒng)的正常運(yùn)行。