陳楷暉,尹 令,吳正豪,王永福,陳振旭,林穎詩
(華南農業大學數學與信息學院,廣東 廣州 510642)
隨著人們生活水平和文化素養的提高,人們追求更加精致高雅的生活環境,常常在家居擺設上花費心思。盆栽作為一種綠色天然的家居裝飾,既能吸收空氣中的苯和甲醛等空氣污染[1-2],營造清新干凈的空氣環境,又為都市人親近自然提供最好的選擇,能夠有效緩解工作的壓力,是現代家居中必不可少的一部分。養植的樂趣,在于看到盆栽能朝氣蓬勃的生長,然而人們疏忽管理或過度照理等行為很容易對盆栽生長狀況造成不良影響。因此,開發一套智能盆栽系統,滿足用戶的個性化需求,具有突出的市場價值。
目前大多數自動澆水系統主要以滲透或虹吸原理主動定時澆水,自動完成室內盆栽植物的灌溉任務[3-4],多數采用的是適用于大多數植物的溫濕度數據,沒有考慮不同植物對溫濕度、光照程度的喜好特性[5-6],這樣的澆灌方式無法控制不同植物的澆水量,降低了盆栽的土壤質量,不利于植物的生長。本文提出智能盆栽設計方案,在精確采集空氣溫濕度,土壤溫濕度,光照強度數據基礎上,能依據植物不同生長特性通過決策樹算法做出準確適宜的澆水方案,避免出現只為了滿足“干透澆透”而出現的只澆表面的“腰截水”的現象[7]。Arduino UNO控制器通過獲取各個傳感器采集的數據,并進行計算分析,識別植物基本狀態,判斷植物是否需要進行澆灌。同時,為了滿足用戶對盆栽的個性化需求,本系統硬件端使用藍牙作為數據和控制接口。用戶可以通過Android端通過藍牙設備[8],遠程查看了解盆栽,實現種植交互。

圖1 智能盆栽系統結構
智能盆栽系統由數據采集、數據傳輸、決策分析、控制和數據存儲模塊5個模塊構成,各個模塊完成不同功能。系統結構如圖1所示,數據采集模塊由SHT11空氣溫濕度傳感器、YL-69土壤濕度傳感器、DS18B20土壤溫度傳感器、BH1750環境光傳感器組成實現對植物的土壤溫濕度、環境溫濕度和環境光照強度的自動采集;數據傳輸模塊包括兩部分,一部分是采集數據傳輸到決策分析模塊,另一部分是移動端和硬件端進行雙向數據傳輸;決策分析模塊由Arduino UNO控制器組成,可以根據植物生長喜干濕等特性,運用模糊決策樹算法判斷植物澆水是否需要澆水;控制模塊由決策分析模塊進行數據分析得出是否澆水和需要的澆水量,并且自動控制水泵送水完成澆水操作;數據存儲模塊由Arduino的SD卡或者云服務器構成,實現對各種數據表的存儲。
智能盆栽系統數據采集模塊由1個ArduinoUNO控制器、1個SHT11溫濕度傳感器、3個YL-69土壤濕度傳感器、1個防水DS18B20土壤溫度傳感器和1個BH1750環境光傳感器組成,實現對各種數據的自動采集。
Arduino主控板原理如圖2所示。Arduino能通過溫濕度傳感器、土壤濕度傳感器等各種傳感器來感知環境[9-10],并通過控制水泵、藍牙模塊和其他的裝置來反饋、影響環境。本盆栽系統采用Arduino是因其具有廉價、跨平臺及簡單清晰等特點。Arduino開發板的價格低于其他開發板的價格,且Arduino IDE可以運行于Windows、Macintosh OS X、Linux三大主流操作系統,同時由于Arduino的編程語言是建立在C/C++語言基礎上,又能夠將AVR單片機相關的一些參數設置模塊化[11],不需要開發人員處理底層系統,能夠提高程序的開發效率,更有利于在智能盆栽的開發和應用,使智能盆栽得到更好的普及。
SHT11溫濕度傳感模塊將溫度、濕度感測、信號變換、A/D轉換等功能集成到一個芯片上,能感應到智能盆栽周圍環境的濕度溫度,并將所得溫濕度數據轉換為電信號,放大后經A/D轉換變成數字信號輸出,傳送到Arduino主控板上;YL-69土壤濕度傳感器模塊可用于檢測盆栽土壤中的水分含量,工作時直接將傳感器探頭埋入盆栽土壤中,探頭電阻隨土壤濕度變化,傳感器預先設定閥值,當盆栽中土壤水分含量低于閥值時傳感器輸出高電平,反之輸出低電平[12];DS18B20溫度傳感器具有超小的體積、超低的硬件開銷、抗干擾能力強、精度高、附加功能強等特點,用于采集盆栽中土壤溫度,是本盆栽系統土壤溫度傳感器的最佳選擇;BH1750環境光傳感器通過光度計來測量盆栽周圍環境的光照強度,通過計算電壓來獲取有效數字,直接輸出數字信號;Arduino UNO主控板配有數據存儲器,可將采集到的傳感器數據經過適當處理后,直接存儲,實現數據采集[13]。

圖2 Arduino主控板原理
數據傳輸主要由HC-06藍牙模塊、數據存儲器和Android移動設備構成。手機端通過搜索硬件藍牙進行連接,實現數據傳輸通路的搭建[8]。在連接之后手機可以通過發送命令給盆栽系統,系統硬件端對命名進行解析返回需要的信息給移動端;盆栽系統固定一段時間將所獲取的植物基本信息進行實時傳輸給移動端,實現數據的雙向通信。
為設計信息傳輸的格式,要求時間跨度有相應的最大跨度——定義為MAX-SPAN,包括:命令信息格式,在需要數據時進行發送,請求數據的類型即表中request-type,如表1所示;實時信息格式,盆栽固定一段時間需要傳送給移動端的數據信息,如表2所示;歷史信息格式,當命令信息的request-type= “history”時返回歷史信息,如表3所示;空氣溫度信息格式,當命令信息的request-type= “atop”時返回空氣溫度信息如表4所示;空氣濕度信息格式,當命令信息的request-type= “ahop”時返回空氣濕度信息;土壤溫度信息格式,當命令信息的request-type= “stop”時返回土壤溫度信息;土壤濕度信息格式,當命令信息的requesttype= “shop”時返回土壤濕度信息。其中空氣濕度、土壤溫度、土壤濕度的信息格式與空氣溫度信息格式相似。

表1 信息格式
2.3.1 數據存儲結構 (1)植物數據庫設計。系統使用數據庫結構化地存儲系統數據,存儲不同植物的種類信息、采集的溫濕度信息、澆灌用水量數據等。
(2)主要數據表。包含植物種類信息數據表、植物基本狀態信息表、算法訓練數據表、澆灌用水量數據表及決策樹表。
植物種類信息數據表[14]:用于存儲植物種類信息主要有植物種分類群信息 (種所在的門、綱、目、科、屬的信息,包括相應的名稱和特征)、種名信息 (包括種的拉丁名、中文名和異名)、形態特征、生活環境或生態習性、地理分布。該表首先是在用戶在APP端將植物的名稱輸入之后,系統自動查詢該植物的所屬的界、門、綱、目、科、屬和種的信息,并生成一個ID號唯一標識該植物,然后將這些植物基本信息保存進數據庫中,以實現不同植物的個性化澆灌(表2)。
植物基本狀態信息表(Basic Plant State Information Table, BPSIT):用于存儲由傳感器采集到的盆栽在某一時刻的環境溫濕度信息、土壤溫濕度信息和光照強度信息。該表中ID號是識別植物的標識,在一定時間間隔Arduino主板將會獲取各個傳感器的實時盆栽狀態信息,包括環境溫度(ATOP),環境濕度(AHOP)、土壤溫度(STOP)、土壤濕度(SHOP)和光照強度(ALIOP)等基本狀態信息,并將其保存進數據庫,可供數據分析,實現盆栽的自動化澆灌(表3)。

表2 植物種類信息數據

表3 植物基本狀態信息
算法訓練數據表(Algorithm Training Data Table, ATDT):記錄多種植物在不同生命狀態下的是否需要澆水(Watering)。該表主要存儲不同類別植物(數據表中以pot_id區分)在不同環境溫濕度、土壤溫濕度和光照強度,其對應判斷,植物是否需要澆水的樣本數據。根據數據表中某一類別植物的充分的數據信息,利用模糊分類模型進行模型構建,即能獲得特定植物模型結果,該結果能夠用以判斷植物在特定環境溫濕度、土壤溫濕度和光照強度下是否需要澆水(表4)。

表4 算法訓練數據
澆灌用水量數據表(Water Consumption Table, WCT):用于存放澆灌用水量歷史數據,實現對用水量預測模型的修正。該表中ID號作為識別植物的標識,Arduino主板對每一次澆灌的時間和時長進行記錄,根據澆水時長可以計算得到植物的澆水量(表5),并將這些記錄用于數據分析。

表5 澆灌用水量數據
決策樹表(Decision Tree Table):用于存放算法訓練后得到各種植物對應決策樹表。決策樹表是某一類別植物利用ATDT數據表進行分類模型構建后得到的模型結果。由于算法訓練數據表的數據的改動較小,因此盆栽硬件端模型構建后得到的決策樹結果,在一段時間內都具有有效性,并且規定一次訓練得到的決策樹有效時間為30 d(表6)。

表6 決策樹表
2.3.2 數據存儲載體 數據表以文件形式存儲于Arduino的SD卡,由于Arduino UNO自身的硬件架構特性,其內存僅為32KB,數據庫軟件無法在平臺上運行。因此數據表存儲以文件形式存儲在SD卡中,主控板通過讀寫SD卡中的文件操作數據表。
2.4.1 狀態分類回歸決策樹 智能盆栽硬件端從各個傳感器獲取的數據,如土壤溫濕度、環境溫濕度、光照強度等盆栽的基本生命狀態信息集合(記為infos)。根據infos查找ATDT表,判斷植物的干渴程度,既而判斷植物是否需要澆灌。

式中,f表示查表,表示infos條件下的植物是否需要澆水。
由于盆栽infos的數據屬性的數值型和變化性,ATDT無法包含植物所有狀態下的干渴程度信息。因此,結合ATDT中數據特征,系統采用適合機器學習分類算法[15],充分有效的利用ATDT,同時實現系統功能的健全性。分類方法的選擇決定著植物狀態識別的正確性高低。決策樹模型具有高效性、易構建性、計算復雜度不高等特性,針對本系統信息集合infos的特點,選擇決策樹模型進行澆灌決策。
決策樹有分類樹和回歸樹兩種[16],分類樹對離散變量做決策樹,回歸樹對連續變量做決策樹[17]。infos數據的數值型特性,系統進一步選擇決策樹模型中以Gini指數來選擇劃分屬性的分類回歸樹(ClassificationAndRegression Tree,CART)模型。其中Gini指數反映從數據集中隨機選擇兩個樣本,其類別標記不一致的概率,即盆栽樣本數據集中類別標記Watering不一致的概率。因此,Gini指數越小,則數據集純度越高[18],即劃分后的數據集中類別標記Watering一致性更高。所以,在進行算法訓練時,選擇Gini指數最小的分類方案的分類效果更好。在運用決策樹算法模型后,式(1)修正為:

式中,CART(ATDT)表示使用訓練數據ATDT訓練CART;f表示利用CART的結果,計算得出infos狀態下植物的。
2.4.2 系統應用 以 “盆栽綠蘿訓練數據表”(表7)為例,對盆栽是否需要澆水進行分析。該表數據參考文獻及其他數據庫等[19]由實驗所得,取多盆綠蘿盆栽進行實驗,分別于每天的8:00、14:00、20:00由盆栽傳感器獲得數據后求平均值,通過模糊決策樹對所得數據進行分析。選用綠蘿作為實驗物種,是因其具有廣大的市場,在盆栽植物中具有代表性。
ATDT數據庫中植物物種ID號為盆栽綠蘿(001)的共有100條記錄,其中正例50個,即Watering為1的數據,表示植物需要補水;反例50個,即Watering為0的數據,表示不需要澆水。表7顯示了其中一部分記錄。將ATDT表中該類別植物的所有數據作為輸入,應用CART算法處理數據后得到決策樹(圖3)。根據得到的決策樹,再結合數據采集模塊返回的傳感器數據信息,Arduino UNO便能進行決策,判斷出植物是否需要澆水。

表7 盆栽綠蘿植物訓練部分數據表(數據庫中植物物種ID號—001)
以數據采集模塊采集到的陽臺盆栽綠蘿下午14:00傳感器實時數據ATOP 35.50℃、AHOP 67%、STOP28.65℃、SHOP 76%、ALIOP 780為例,系統的決策過程如下。按照圖3決策樹逐屬性進行決策判斷,首先,獲得決策數根節點的屬性為SHOP,比較實時數據表中土壤濕度SHOP數值76小于根節點分支條件87,因此,需要進入分支節點STOP繼續比較,按照同樣的方法繼續判斷,所經過的樹節點依次為SHOPSTOP-ATOP-SHOP-AHOP,最終可以到達葉節點Watering為1,判斷得到植物需要澆水,決策模塊發出澆水信號,Arduino UNO控制器控制水泵對盆栽植物澆水。
2.4.3 算法改進 為滿足用戶的個性化需求,算法提供了多種模式。其中:
模式0(Automatic):系統根據自帶數據庫中的信息(ATDT),使用CART算法得到的構建決策樹,應用于盆栽決策過程。
模式1(Semi-Automatic):系統根據自帶數據庫的信息(ATDT),同時結合本地數據庫記錄的用戶澆水時的盆栽信息(BPSIT和WCT),再構建決策樹。

圖3 數據處理后得到的決策樹
模式2(Customize):系統根據本地數據庫記錄的用戶澆水信息(WCT),再構建決策樹。
以上3種模式適用于不同需求和背景的用戶,提供了個性化的方案,具有一定的實用性。
通過Arduino控制板自動澆灌或通過用戶Android端手動控制水泵對盆栽進行個性化澆灌;通過傳感器將盆栽實時生長環境信息傳送到Arduino主板中[20],利用數據庫及數據分析模塊中模糊決策樹算法對數據傳送的數據進行分析是否需要澆水和澆水量,而后反饋回Arduino控制板,再根據所得反饋信息控制水泵進行自動澆水;同時也會將盆栽實時生長環境信息傳送到用戶Android端中,用戶可以通過移動設備視頻遠程了解到盆栽實時情況,也可以在移動端進行操控,將信息傳送到Arduino控制板控制水泵進行手動澆水,同時提醒用戶澆水是否澆水不足或過量,讓用戶體驗到養殖盆栽的樂趣,也能讓盆栽更好地生長。
本智能盆栽模型采用Arduino UNO主板,配置SHT11溫濕度傳感器、YL-69土壤濕度傳感器以及BH1750環境光傳感器進行數據采集,通過藍牙通信模塊將數據無線傳輸到手機客戶端,用戶通過應用程序對盆栽進行遠程操作。在硬件方面獲取數據方便,及時,有效,且操作簡單,實用性強,成本低廉;使用決策樹算法,透析植物特性,對不同植物做出不同選擇,實現因植物而異的差異化照看。設想改進數據采集小車和數據存儲容量上稍加擴張,采用更精確的傳感器,系統還可拓展到溫室大棚蔬菜澆水等,應用于農業種植場和實驗基地。
隨著人們的購買力日益提升,盆栽市場具有廣闊的前景。個性化智能盆栽系統迎合大眾需求,根據不同植物的生活習性,實現智能操作,使植物的種植變得更加現代化,專業化。現代人不用再像傳統花農一樣常規常矩,按時按點打理,便可輕輕松松坐擁綠色生活。未來人工智能技術不斷完善,逐步滲透生活,智能家居將得到進一步推廣,相信智能綠化設計會更加深入人心,為人們所接受。