楊媛鈁
(湖南中煙工業有限責任公司 常德卷煙廠,湖南 常德 415000)
農業經營模式的轉型已經成為現代農業發展的一種趨勢,基于物聯網技術的現代化農業能夠有效地節省人力物力,提高農作物的產量和質量。利用傳感器檢測、WiFi 無線通信、手機APP 開發等技術[1-3],設計一個基于APP 技術的農業大棚環境調控系統,使用APP 實時監控農業大棚內的環境參數,并對其參數歷史數據實現實時查詢、圖形化統計等功能,同時能夠設置各個參數的閾值,當實際值不在閾值范圍內時,APP 將進行語音報警,直至參數恢復至閾值范圍內,報警停止。
基于APP 技術的農業大棚環境調控系統由現場終端和APP 調控兩部分組成[4],系統結構如圖1所示?,F場終端包括STM32F103RCT6 最小應用系統、環境監測模塊、LoRa無線組網模塊、WiFi 無線通信模塊、輸出調控模塊以及人機接口模塊等。各傳感器完成農業大棚內溫度、濕度以及光照強度等環境參數的采集,并且數據會顯示在OLED 屏上;通過LoRa 無線組網進行數據的節點傳輸,通過WiFi 無線通信模塊將數據上傳至服務器的數據庫以及手機APP 中,若環境參數偏離,可自動/手動控制輸出調控系統。APP 調控由服務器端和APP 端構成,APP 端基于HTTP 協議,利用Post/Get 請求方法,連接服務器的IP 地址和API 端口,從服務器的數據庫中獲取數據,當服務器接收到手機APP 端發送的控制或者設置閾值指令,則通過WiFi 無線通信模塊將指令下發,遠程無線操控農業大棚內的調控系統。

圖1 系統結構框圖
系統終端硬件電路如圖2所示。STM32F103RCT6 基本應用系統中包括電源接口、復位電路、時鐘電路、SWD 程序下載電路和程序引導電路。無線通信電路由WiFi 接口電路和LoRa 接口電路組成,其WiFi 模塊采用ESP8266[5],它是一款串口轉無線模塊芯片,用于上傳數據。LoRa 模塊選用ATK-LORA-V1.5 芯片,由終端節點、中繼節點和網關節點組成無線傳感網,進行數據的節點傳輸,兩者都是使用串口與微處理器進行數據交互。環境監測電路由溫濕度檢測電路和光照度檢測電路組成,溫濕度檢測電路采用DHT11溫濕度傳感器,其內部包括兩個關鍵的檢測元件,即NTC測溫元件和電阻式感濕元件。該傳感器是單總線結構,只需要使用一根數據線與微處理器進行數據交互和控制。光照度檢測電路采用GY-30 光照強度傳感器,其主控芯片為BH1750FV1,內部由光敏二極管、運算放大器、ADC 采集和晶振等組成,通過I2C 協議與微處理器進行通信[6]。輸出調控電路包括照明系統電路、灌溉系統電路以及環境控制系統電路,分別對光照度、土壤濕度、空氣溫濕度等進行調節。顯示電路采用OLED 12864 顯示屏模塊,用于對傳感器節點采集的溫度、濕度、光照度等環境參數進行實時顯示。

圖2 終端硬件電路
終端主程序包括系統初始化、LoRa 組網、WiFi 連接服務器、環境監測、輸出調控、上傳數據以及OLED 顯示,其流程如圖3所示。

圖3 程序流程
系統初始化包括I/O 口初始化、中斷初始化、定時器初始化、串口初始化、I2C 初始化、SPI 初始化和OLED 初始化;LoRa 組網是利用串口中斷函數,通過判定標志位狀態進行節點收發數據;WiFi 模塊先連接熱點,然后連接服務器程序,與服務器進行數據交互;環境監測是調用溫濕度檢測函數和光照度檢測函數,對溫濕度數據和光照度數據進行采集;輸出調控是利用照明系統控制函數、灌溉系統控制函數、環境控制系統函數,對農業大棚內的控制設備進行控制;上傳數據是以TCP/IP 協議作為數據傳輸協議[7],將各傳感器采集的數據通過WiFi 模塊上傳至服務器端;OLED 顯示是將檢測到的各個環境參數實時顯示到OLED 屏上。
APP 軟件功能包括用戶登錄、遠程監控、系統設置、存儲數據、查詢歷史數據以及語音報警等模塊,其系統程序流程如圖4所示。

圖4 APP 程序流程
設置IP 地址和端口號模塊是將局域網分配的地址和端口號存入APP 程序中。
用戶登錄模塊是APP 連接服務器的URL 登錄端口,請求參數包括username 和password,賬號和密碼是在服務器注冊的賬號和密碼,請求參數以及響應值是根據傳輸協議決定的,數據傳輸格式使用JSON 格式[8],若輸入的賬號、密碼不正確,則APP 會彈出消息框,提示“賬號或密碼錯誤”;輸入正確,APP 則進入遠程監控界面。
遠程監控模塊用于實時顯示各個環境參數,在該模塊界面中,包含對輸出調控系統的控制按鈕、查詢歷史數據按鈕以及設置閾值按鈕等。
若點擊控制按鈕,APP 則向服務器發送規定好的控制數據,將此數據作為請求參數,服務器再將數據實時發送給終端,終端進行相應的控制操作,以達到APP 對環境參數的調控功能。點擊自動控制按鈕,將控制模式設置為自動控制,這樣終端可根據APP 設置的閾值與傳感器采集的數據進行比較,輸出調控系統做出相應調節動作。
若點擊設置閾值按鈕,APP 則進入設置閾值界面,該模塊是向服務器接收數據的API 端口發送數據,請求參數為各類參數的上下限值。點擊上傳按鈕之后,設置的閾值被上傳至服務器,并且遠程監控界面上的三種閾值顯示框中的數字將得到更新,若接收到的實測值不在閾值范圍內,則APP 將自動進行語音報警,直至實測值恢復至閾值內,語音報警停止。
歷史數據查詢分為3 種:第一種是折線統計圖查看,APP 將接收的數據存入開源數據庫LitePal 中,折線圖組件把數據庫中數據取出,作為圖形數據點,形成折線形狀,歷史數據呈圖形化顯示出來,可以清晰地看出環境參數的變化曲線[9-10];第二種是傳感器類型查詢,輸入需要查詢的環境參數名稱,APP 界面跳轉至該環境參數歷史數據顯示界面,可以看到所有采集的數據以及數據產生時間;第三種是時間查詢,調用服務器提供的時間查詢歷史數據的API 端口,請求參數為開始時間start 和結束時間end,從服務器獲取這段時間內的所有數據,顯示在相應的表格界面,時間輸入格式如2022-03-12 13:12:12,當然也可以通過年月日查詢,而無須精確到時分秒。
終端工作時,OLED 顯示屏依次顯示光照度、溫度、濕度的實時檢測值。通過人為改變環境,如改變GY-30 傳感器的光照使光照度值變大或變小,對著DHT11 模塊吹氣以增大濕度值,將終端裝置置于冷空氣中來降低溫度,等等。通過上述操作可以證明環境監測單元能及時監測環境變化;同時環境參數改變時,OLED 顯示屏的顯示值將相應更新。
在APP 設置參數閾值后,終端可進行自動控制。當光照度低于下限值時,照明系統開啟二級光照;當光照度在閾值范圍內時,照明系統開啟一級光照;當光照度高于上限值時,照明系統不工作。當土壤濕度和空氣溫濕度不在閾值范圍內時,灌溉系統和環境控制系統執行相應的開啟或者關閉動作。實驗中采用發光二極管模擬。
APP 操作界面分別是設置端口界面、登錄界面、數據監控界面、設置閾值界面、數據查詢界面、數據表格界面、圖形顯示界面和時間查詢界面等。
在APP 的設置端口界面連接局域網分配的IP 地址和端口,返回登錄界面輸入賬號和密碼,進入數據監控界面,說明APP 與服務器連接成功,如圖5所示。在該界面可以查看溫度、濕度、光照度等環境參數的實時檢測值,這些檢測值與終端部分的OLED 顯示屏上顯示值相同,既說明終端和服務器的連接是成功的,也說明APP 端可以實時接收傳感器節點采集的農業大棚環境參數,數據解析正確。

圖5 數據監控界面
點擊數據監控界面中的設置閾值按鈕,跳轉至設置閾值界面。在該界面可以上傳環境參數閾值,當實時監測值不在設置的閾值范圍內時,APP 發出語音報警,說明閾值上傳成功。手機APP 可以對終端進行無線遠程監控;數據監控界面有5 個控制按鈕,點擊按鈕,可以分別對終端進行相應控制;若點擊自動控制按鍵,終端則根據實時檢測值與閾值的比較,做出相應控制動作。
點擊數據監控界面中的查詢數據按鈕,跳轉至數據查詢界面。在該界面點擊溫度、濕度或者光照強度,將跳轉至相應的數據表格界面,此界面中記錄了該環境參數所有數據,以及數據產生時間;點擊圖形統計按鈕,可以查看各個環境參數的歷史數據折線圖或者柱狀圖,溫度折線圖如圖6所示;點擊時間查詢按鈕,跳轉至時間查詢界面,在兩個輸入框內依次輸入需要查詢的開始時間和結束時間,點擊搜索按鍵,服務器將根據上傳的起始時間,向APP 返回該段時間內的環境參數的所有數據以及每個數據產生的時間。

圖6 溫度折線圖界面
基于APP 的農業大棚環境調控系統實際上就是以物聯網技術為核心的智能農業系統。相比傳統農業而言,智能化的監控技術使得農業工作更輕松,作物產量和質量更有保障,能有效減少人工成本。智能化的農業環境監控系統可廣泛應用于大型農業生產基地。