戴晶華
(內蒙古自治區法治培訓中心,內蒙古呼和浩特,010070)
在學習和工作之余,人們通常養花來豐富自己的生活,可以凈化空氣,給人們帶來了舒適的生活環境。通常的花盆需要人工澆水,費時費力,為了克服傳統養花的一些缺點,設計一種自動澆花系統為養花者提供更為智能便捷的智能澆花設備。隨著5G和物聯網技術的深入發展,將會有越來越多的智能設備進入人們的日常生活。
本設計是運用物聯網技術對花盆進行改造,實現溫度和濕度的遠程實時監測。本設計提供了兩種澆水模式,即遠程手動澆水模式和自動澆水模式。在遠程手動澆水模式下,可以隨時隨地進行遠程澆花,避免了由于澆水不及時導致的植株枯萎;在自動模式下,在儲水裝置水量充足時,自動澆花系統可通過對花盆土壤濕度的實時監測,在花盆的土壤濕度較低時自動啟動澆水泵進行澆水,該模式為可養花者提供便捷的服務。
本系統主要由花盆智能控制板、云服務器消息代理、手機APP三部分組成。花盆智能控制板主要負責底層硬件的數據采集以及澆水泵和照明燈的控制,云服務器上的消息代理軟件負責控制信息和采集數據的接收和轉發,從而實現硬件數據通過互聯網傳輸到手機APP,手機APP進行相關數據參數的數據顯示及控制按鈕的實現,主要顯示的參數有土壤溫度數據的顯示,當前土壤濕度是否需要澆花的顯示,主要實現的控制按鈕有澆水泵控制按鈕和照明燈控制按鈕,系統整體設計框圖如圖1所示。

圖1 系統整體設計框圖
花盆智能控制板可以連接溫度傳感器和濕度傳感器,實現土壤溫度和土壤濕度數據采集。土壤溫度傳感器采用DS18B20防水傳感器,通過單總線協議實現數據傳輸。濕度傳感器通過連接AD轉換模塊實現濕度數據的模數轉換,可以寬范圍控制土壤的濕度,通過電位器調節控制相應的閾值,濕度低于設定值時,DO端口輸出高電平,高于設定值時,DO端口輸出低電平?;ㄅ柚悄芸刂瓢宓腃C3200分別通過端口PIN_08和PIN_01輸出高低電平實現繼電器的閉合與斷開,從而實現澆水泵和照明燈的控制,硬件功能框圖如圖2所示。

圖2 硬件功能框圖
通過對CC3200進行編程實現對土壤溫濕度數據采集,并進行分析和處理,將采集到數據進行遠程發送,實現土壤溫度和當前濕度是否需要澆水的數據遠程發送,CC3200實時接收控制信息,實現澆水泵和照明燈的遠程控制。CC3200通過WiFi配置入網,實現上行環境數據和下行控制信號的傳輸,硬件設備傳輸的數據格式為JSON格式。
1.1.1 溫度傳感器
本設計中土壤溫度數據的采集使用DS18B20溫度傳感器實現,首先進行溫度傳感器初始化,溫度傳感器反饋初始化是否成功的信息,寫入控制數據,并等待溫度傳感器做出應答,待溫度傳感器做出應答后,開始接收溫度低8位數據,緊接著接收溫度高8位數據,當溫度數據接收完成后,進行數據的格式轉換,將二進制數據轉換為十進制數據,并將轉換完成的數據儲存到temp變量中,此時溫度數據采集完成。
1.1.2 濕度傳感器
本設計中所采用的濕度傳感器適用于土壤的濕度檢測,模塊中藍色的電位器是用于土壤濕度的閾值調節,順時針調節,控制的濕度會越大,逆時針調節,控制的濕度會越小。數字量輸出引腳DO與CC3200的PIN_06相連,通過CC3200檢測高低電平,由此來檢測土壤濕度,并確定是否需要澆水。在檢測到的電平中,其中高電平代表需要澆水,低電平表示不需要澆水,編寫程序將CC3200的PIN_06引腳配置為讀模式,并讀取電平。
1.1.3 澆水電路設計
澆水泵由一個365直流抽水馬達(12V微型自吸水水泵)實現,該水泵有入水口和出水口,用途十分廣泛,在家電,醫療,模型DIY,水族器材等方面都得以應用,主要實現抽水,冷水循環等功能。本設計主要通過繼電器實現其控制,首先CC3200將接收到的控制數據進行解析,當變量watering為1時,表示開啟澆水泵,此時將CC3200的PIN_01引腳置為1,輸出高電平,繼電器模塊接收到高電平后,繼電器吸合,澆水泵開始工作。當變量watering為0時,表示關閉澆水泵,此時將CC3200的引腳置為0,輸出低電平,繼電器模塊接收到低電平后,繼電器斷開,澆水泵停止工作。
服務器上安裝Mosquitto消息代理軟件,MQTT協議提供了使用發布/訂閱模型執行消息傳遞的輕量級方法。這使得它適用于物聯網信息傳遞,即低功耗傳感器或移動設備,如手機、嵌入式計算機或微控制器。本設計通過MQTT協議實現數據傳輸,實現了高效準確的數據傳輸。硬件設備與服務器之間的通信的數據格式為JSON格式,服務器與硬件設備通信的端口號設定為1883,服務器與手機APP通信的端口號為9000。
手機APP基于React Native進行開發。主要實現的功能有土壤溫度數據和當前濕度是否需要澆水的實時顯示,澆水泵和照明燈的開關控制,以及與服務器之間的實時數據通信。手機APP的界面主要有土壤溫度數據顯示、土壤濕度是否需要澆水顯示、澆水泵狀態顯示、照明燈狀態顯示、澆水泵的開關按鈕和照明燈的開關按鈕,手機APP功能框圖如圖3所示。

圖3 手機APP功能框圖
本設計中所采用的芯片是德州儀器公司的CC3200,該器件集成了ARM Cortex-M4。在本設計中,使用了4個通用輸入輸出(GPIO)引腳,分別是實現溫度數據采集的PIN_03引腳;實現土壤濕度澆水反饋的PIN_06引腳;實現澆水泵控制的PIN_08引腳;實現照明燈控制的PIN_01引腳。
CC3200定義發布主題,即/SmartPot/send,主題的數據格式為JSON格式,主題的內容為{"temp":"00.00","moisture":"0","watering":"0","LED":"0"}。當溫度傳感器采集到土壤的溫度數據信息后,對其中的temp數據進行更新;當濕度傳感器采集到土壤的濕度數據信息后,對其中的moisture數據進行更新;當澆水水泵開啟時,將其中watering的值更新為1,表示水泵為開啟狀態,當澆水泵關閉時,將其中watering的值更新為0,表示水泵為關閉狀態;當照明燈開啟時,將其中LED的值更新為1,表示照明燈為開啟狀態,當照明燈關閉時,將其中LED的值更新為0,表示照明燈為關閉狀態,并每隔0.3秒上傳一次土壤溫濕度數據及硬件的狀態數據,這樣就達到了數據的實時上傳,硬件打包程序框圖如圖4所示。

圖4 硬件打包數據上傳程序框圖
MQTT(Message Queuing Telemetry Transport)協議是一個基于TCP的發布訂閱協議。在云端和傳感器、醫療設備、家居及一些小型化設備通信中已得到了廣泛使用。新版本的MQTT協議具有更好的錯誤報告、共享訂閱、消息屬性、消息過期、會話到期、主題別名等亮點。本設計MQTT協議通過mosquitto消息代理軟件進行實現。MQTT協議用來支持將CC3200上的數據用1883端口發送到服務器的broker上。同時MQTT協議用來支持手機APP和硬件之間的通信,當mosquitto broker收到服務端消息后,broker繼續將消息通過MQTT協議用9000端口發送給訂閱端。
本設計中手機APP與服務器使用的通信協議為基于WebSocket 的MQTT 跨平臺推送服務方案。MQTT WebSocket JavaScript API 的功能描述如下:Connect 連接、 DisConnect 斷開連接、Subscribe 訂購、UnSubscribe 取消訂購、Publish 發布。
硬件設備通過MQTT協議上傳相關數據到服務器,手機APP通過MQTT協議接收服務器轉發的數據,即{"tem p":"00.00","moisture":"0","watering":"0","LED":"0"},首先進行溫度數據顯示、是否需要澆水顯示、澆水泵開關狀態顯示、照明燈開關狀態顯示,手機APP的控制按鈕有澆水泵開關按鈕和照明燈開關按鈕,APP提供了兩種工作模式,即手動澆水模式和自動澆水模式。
在手動澆水模式下,當用戶點擊開啟澆水泵按鈕后,手機app發送開啟澆水泵控制指令,即"watering":"1",硬件設備收到開啟澆水泵控制指令,啟動澆水泵進行澆水,當用戶點擊關閉澆水按鈕后,手機app發送關閉澆水泵控制指令,即"watering":"0",硬件設備收到關閉澆水泵控制指令,關閉澆水泵停止澆水;當用戶點擊開啟照明燈按鈕后,手機app發送開啟照明燈控制指令,即"LED":"1",硬件設備收到開啟照明燈控制指令,啟動照明燈,當用戶點擊關閉照明燈按鈕后,手機app發送關閉照明燈控制指令,即"LED":"0",硬件設備收到關閉照明燈控制指令,關閉照明燈。
在自動澆水模式下,當watering值為1時,并且當溫度小于25℃時,APP自動發送開啟澆水泵控制命令,即"watering":"1",直到硬件上傳的數據中watering值變為0,APP自動發送"watering":"0",關閉澆水泵。
本設計中通過paho軟件進行硬件設備與服務器間的數據通信調試,首先硬件設備上電,硬件指示燈閃爍幾秒后熄滅,表示硬件設備已經成功連接WiFi,按下SW3按鍵開始土壤溫度和濕度是否需要澆水數據上傳,在調試軟件上輸入服務器地址和端口號,并訂閱主題,可以看到土壤溫度和濕度是否需要澆水數據成功發送到了服務器上,并通過調試軟件顯示到電腦屏幕上,土壤溫度和濕度是否需要澆水數據為設定好的JSON格式數據。
手機APP與服務器之間的通信采用MQTT協議,當啟動硬件設備后,可以看到手機APP成功顯示了土壤的溫度數據、目前濕度是否需要澆水、燈光狀態和水泵狀態,點擊澆水控制按鈕,可以看到硬件設備澆水泵開啟,并可以看到手機APP上反饋到澆水泵為開啟狀態,點擊關閉澆水泵按鈕,可以看到澆水泵關閉;點擊照明燈按鈕,可以看到照明燈開啟,手機APP中顯示照明燈開啟,點擊關閉照明燈按鈕,可以看到手機APP顯示照明燈關閉。

圖5 手機APP界面
本設計提供的智能控制板與花盆采用分離式設計,通過溫度和濕度傳感器檢測實時數據,實現自動澆花的功能,也可以通過手機APP實現澆花的遠程手動控制的功能,是物聯網技術應用到智能家居的典型應用,可以推廣到其他領域,具有一定的實用價值。