姚文俊,黃慶南,馮 斌,紀泓良,譚夏連
(廣西科技大學,廣西 柳州 545001)
近年來,我國小型盆栽種植規模持續擴大,據2016年全國花卉產業統計數據顯示,2016年全國花卉種植面積達133萬hm2,銷售額1 389.70 億元,出口額達6.17 億美元。2019年我國盆栽銷量僅蝴蝶蘭這一種類就達6 000 萬~7 000 萬株,由此可見盆栽市場具有較好前景[1]。許多科研人員也競相投入智能盆栽研究中[2-3]。智能花盆既是智能家居的一部分,也是智能農業的一個分支,其可以通過網絡將人與物,物與物聯系,以智能化的方式養護植物[4]。
我國市場上的智能花盆多采用傳統澆灌器械,主要為定時澆灌的智能花盆,澆水時不能根據植物的生長環境對其進行合理灌溉,在戶外養殖情況下,即使是雨天,傳統的智能花盆也會自動對盆栽進行澆水,造成一定的水資源浪費并會導致綠植(花卉)的死亡。此外,一些智能花盆僅有監測功能,只能提醒人們手動澆灌。為解決目前市場上智能花盆存在的問題,基于STM32 單片機設計智能盆栽管家系統,該系統以STM32 為控制核心,通過土壤濕度傳感器、溫濕度傳感器采集盆栽的含水量,環境溫濕度數據,同時借助WIFI將數據信息發送到機智云端,將監測[5]與智能澆灌[6]結合在一起。對不同種類的盆栽可調節其灌溉水量,并根據環境變化對植物進行自動澆灌,在保證綠植花卉健康生長的情況下,兼顧節約水資源的目的。
智能盆栽管家系統采用STM32 單片機作為主控終端,通過溫濕度傳感器和土壤濕度傳感器采集數據后,經過單片機內置的模數轉換器處理,通過ESP8266WIFI 模塊上傳到機智云端。用戶可在OLED 屏幕直接觀看植物當前的狀態信息,也可通過手機移動端程序查看[7]。同時系統能根據實際的植物種類,自定義澆灌水量參數,實現遠程手動或智能澆灌[8-10]。
系統主要分為硬件部分和軟件部分。其中硬件部分包括STM32 單片機、土壤濕度傳感器、空氣溫濕度傳感器、ESP8266WIFI 模塊以及灌溉裝置。軟件部分由STM32 芯片程序與移動設備程序共同構成。系統的總體設計如圖1所示。

圖1 智能盆栽管家系統的總體架構
系統基于STM32F103C8T6 核心板進行開發,基本參數:64 KB FLASH、20 KB SRAM(靜態隨機存取存儲器)、1個高級定時器、2 個通用定時器、2 個12 位的A-D 轉換器以及SPI 和IIC 通信接口。對比其他MCU,STM32F103C8T6 有著優異的配置,以及更低的成本,因此選擇其作為智能盆栽管家系統的主控芯片。
為準確判斷植物當前是否缺水,需對盆栽中土壤濕度(含水率)進行測定。采用的土壤濕度傳感器型號為FC-28,由不銹鋼探針和防水探頭構成,使用時將其插入土壤內。土壤濕度傳感器的實質是一個隨濕度變化而變化的可變電阻,土壤的濕度與其電阻值呈正比,利用這個關系就可以得到土壤的干濕度信息。
系統的溫濕度檢測部分采用數字溫濕度傳感器DHT11,其是一款復合型溫度和濕度傳感器,由感溫元器件和電阻式測濕度元器件組成,無需A-D 轉換器轉換就能直接輸出數字信號,在保證傳感器穩定性和可靠性的前提下,又兼具響應速度快、抗干擾性強、性價比高等優點。
系統通信部分采用正點原子的ESP-8266WIFI 模塊,其工作模式有3 種,STA 模式:模塊通過路由器連接上互聯網,用戶可通過互聯網實現對設備的遠程控制。AP 模式:模塊作為熱點,實現手機或電腦直接與模塊通信,實現局域網無線控制。STA+AP模式:STA 與AP 模式共存,模塊既可通過路由器連接互聯網;也可作為WIFI 熱點,供其他設備連接。系統中該模塊工作于STA+AP 模式下,ESP8266WIFI 模塊與STM32 單片機的接線圖見圖2。

圖2 ESP8266WIFI與STM32接線圖
系統的澆灌部分由一個6 V 的小型抽水泵與5~12 V繼電器組成。工作時,應給繼電器輸入5 V的供電電壓,并使其工作于低電平觸發狀態[11];抽水泵的正極與繼電器的常開觸點連接在一起(圖3),當土壤濕度低于一定值時,單片機將得到信號,通過I/0 口輸出一個低電平,使得繼電器吸合在一起,公共端與常開觸點導通,從而使抽水泵開始工作。

圖3 澆灌系統簡易仿真電路
STM32 程序以C 語言進行編寫,方便閱讀與調試,整個程序分為土壤濕度采集、空氣溫濕度采集、ESP8266WIFI 通信三大模塊,STM32主程序流程圖如圖4所示。

圖4 主程序流程
土壤濕度采集模塊主要是讀取土壤傳感器的模擬量輸出數據,并通過STM32 內置的12 位ADC 通道轉換,將模擬量變為數字量,根據土壤的濕度與傳感器電壓輸出呈正比關系,利用公式:(傳感器當前輸出電壓值/傳感器輸出最大電壓值)×100%,即可得到土壤的濕度值。
空氣溫濕度采集模塊是將溫濕度傳感器里的溫度和濕度分別讀出,DHT11 的數據格式:8位濕度整數數據+8位濕度小數數據+8位溫度整數數據+8位溫度小數數據+8位校驗和,一次完整的數據傳輸為40 位,高位先出。數據采用校驗和方式進行校驗,有效保證數據傳輸的準確性。
ESP8266WIFI 通信模塊是整個程序配置的重點,首先需要通過AT 指令AT+CWMODE=3 將工作模式設置為STA+AP 并對其燒錄機智云固件,燒錄成功后即可通過路由器連接上網絡。最后,利用串口通信方式,將創建好的電池電壓、土壤濕度值、空氣溫度/濕度等數據,定時自動上傳到機智云端并讀取云端指令。
系統在機智云demo 開源APP 的基礎上進行修改,在用戶登錄成功后,可進入“我的設備”進行綁定盆栽,綁定完成后(圖5)可以查看盆栽當前的環境信息、電池電壓情況。此外,用戶可以根據需求開啟“澆水”功能,STM32 單片機在接收云端指令后將會導通繼電器,對盆栽進行澆灌。選擇“自動模式”,系統將會結合當前土壤的濕度、環境溫濕度以及用戶定義參數進行智能澆灌。

圖5 程序APP界面
將系統的土壤濕度傳感器、溫濕度傳感器、OLED 屏幕以及ESP8266WIFI 模塊引腳分別與STM32 上相應的I/O 口進行連接,繼電器的控制管腳連接到PB5 上,開關與水泵連接。連接好系統的硬件后,即可開機測試。在室外條件下,先對系統的澆灌功能進行測試,通過軟件將澆灌命令設置為土壤濕度的40%,當土壤濕度達到80%后停止澆灌,測得的數據如表1所示,即系統在土壤濕度(40±1)%時澆灌開啟,當土壤濕度達到(80±3)%時停止澆灌,澆灌系統達到基本預測目標且在1 min內濕度值逐漸趨于穩定。

表1 澆水后1 min內土壤濕度值變化情況 %
隨后將土壤濕度傳感器插入盆栽土壤中,每隔1 h 對盆栽的信息進行記錄,以精度較高的數字測量工具測得的值作為實際測量值,最終測試結果如表2所示。經計算,系統對土壤濕度測量的值與實際值的平均誤差為2.27%,空氣溫度、濕度測量值與實際值的平均誤差分別為7.02%和3.43%,均在誤差允許范圍內,測量值可信度較高。

表2 智能盆栽管家系統測試結果
基于STM32 設計的智能盆栽管家系統,通過各類傳感器實現了對盆栽土壤濕度和空氣溫濕度信息的實時監測,并采用ESP8266WIFI 模塊與機智云服務器通信以傳遞盆栽數據和用戶指令,利用手機移動APP,完成盆栽溫濕度信息的實時展示與遠程控制澆灌。經測試,該系統工作穩定,能按設計目標對盆栽進行澆灌,且測量誤差較小。針對用戶的需要可以拓展pH 檢測,土壤肥力監測等功能,在一定程度上節約了水資源,實用性強,具有廣闊的應用前景。