呂春曉,栗碧悅
(1.山西農業大學信息科學與工程學院,山西晉中 030801;2.上海理工大學光電信息與計算機工程學院,上海 200093)
隨著人們生活品質的不斷提高,很多家庭通過養殖花卉來凈化室內空氣,美化室內環境。花卉的養殖需要主人精心的照料,所以一旦遇到花卉主人需要出差、旅行時,花卉的照料就成為一個問題[1],因此設計一款遠程澆花系統就顯得尤其必要[2]。
在過去的幾年里,出現了很多智能澆花系統的設計[3],這些系統大都基于WIFI 及藍牙控制[4],其控制距離短,雖然使澆花更加便捷但不能解決出差旅行時對于花卉的照料。而對于遠程澆花系統[5],其設計的控制終端一般都為電腦[6],電腦體積大,質量重,不易攜帶。而手機具有便攜性和易操作性,因此該設計開發一款智能手機APP 控制的通過GPRS傳輸的遠程澆花系統,可以使用戶能夠更加便捷地對花卉進行管理與照料。
該系統采用STM32 作為主控芯片,首先由溫濕度傳感器采集花卉的土壤信息和環境信息并上傳給STM32,STM32 對該數據信息進行處理判斷,從而控制澆花模塊的工作狀態,并由顯示模塊顯示采集到的環境參數。同時STM32 將該信息通過SIM800C 上傳至服務器,手機端通過設計的APP 訪問該服務器,從而實現用戶對于花卉信息的查看,同時手機APP也可通過服務器將控制信號傳輸給SIM800C,再由SIM800C 將控制信息通過串口傳輸給STM32 從而控制澆花模塊的工作。該系統的總體設計框圖如圖1所示。

圖1 系統的總體設計框圖
該系統的硬件電路以嵌入式芯片STM32 為主控端,通過傳感器采集土壤濕度和環境溫濕度。STM32將采集到的信息進行讀取和判斷,在LCD 上顯示,并通過控制繼電器的開關來控制水泵的工作,同時STM32 需要利用串口完成與SIM800C 芯片的數據通信。
該模塊的主要任務是測試土壤的濕度以及空氣的溫濕度,其中測試土壤濕度的傳感器選用的是電容式土壤濕度傳感器[7]。該傳感器穩定性好,且可直接插入土壤,不易被腐蝕,可以在-10~60 ℃的溫度下使用,其工作電壓為3.3~5.5 V。該傳感器有三個引腳,分別為電源、接地和輸出引腳;其中輸出引腳輸出模擬信號0~3 V。該引腳接STM32 內部ADC 的模擬輸入口PA1。輸入的模擬信號用STM32 內部的ADC 轉換為數字信號從而計算出其濕度值。其電路圖如圖2 所示。

圖2 土壤濕度傳感器電路圖
測試空氣溫濕度的傳感器選用的是數字型傳感器DHT11,該傳感器為溫濕兩用的傳感器[8]。可測的濕度范圍為5%~95%RH,測量精度為±5%RH,可測溫度范圍為-20.0~+60.0 ℃,測量精度為±2 ℃,工作電壓為3.3~5.5 V,輸出為40 bit 的串行數字信號,其中低8 位為校驗位,8-23 位為溫度的整數和小數的數據,24-39 位為濕度的整數和小數數據。該傳感器有三個引腳,分別為電源VDD、接地引腳GND 和輸出引腳DATA,其中電源引腳VDD接+5 V電源,GND引腳接地,其輸出引腳DATA 輸出數字信號到STM32的I/O 口PA6,STM32 根據其 傳入的40 bit數字信號求得相應的溫濕度的值。其電路圖如圖3 所示。

圖3 空氣溫濕度傳感器電路圖
該模塊的主要任務是根據STM32 發出的指令,控制繼電器的開斷,從而控制水泵的工作[9]。其電路圖如圖4 所示,當PA10 輸出信號0 時,三極管工作在放大狀態,繼電器導通,電機工作開始澆花。圖中二極管為續流二極管,其作用是保護三極管不被損耗,在電路工作時可緩慢釋放掉繼電器線圈內生成的反向電動勢。

圖4 澆水模塊電路圖
該模塊的作用是STM32 通過SIM800C 將溫濕度信息傳輸出去[10]。SIM800C 為SIM 公司于2015 年生產,其工作電壓為3.4~4.4 V,可利用天線采用GPRS技術進行無線通信,支持AT 指令控制。STM32 的串口通過AT 指令來控制SIM800C 模塊的相應動作[11],STM32 可通過“AT+CPIN=“TCP”等實現遠程連接,具體指令如表1 所示。

表1 AT指令表
該模塊分為通信電路和SIM 卡的ESD 防護電路。SIM800C 模塊與STM32 利用串行通信進行信息傳輸,由于電路需要進行3.3V 的電平匹配,需要在STM32 的RXD/TXD 引腳上外接一個1 kΩ的電阻,其電路圖如圖5 所示。

圖5 SIM800C與STM32的通信電路圖
GPRS 模塊的正常使用需要SIM 卡作為物理介質,生活中使用SIM 卡時會經常插拔,這就使得卡難免會觸及到ESD 產生源發生掉卡現象[12]。因此把ESD 保護器件工作設計在參數的極限附近,該設計盡量選擇反應速度極快、靈敏性高的元器件,避免了在強干擾的環境下發生SIM 掉卡的情形,有效地保護了器件,因此在SIM800C 模塊中設計有SIM 卡的ESD 防護電路。其電路圖如圖6 所示。

圖6 SIM卡的ESD防護電路
STM32 的工作電壓為3.3 V,所以電路要進行降壓處理,AMS1117 電源穩壓芯片是5 V 轉3 V 電路中使用最簡單有效的芯片,但是該芯片降壓后會有較大的紋波[13],所以在設計時加入0.1 μF 的瓷片電容,用來濾除電路中的高頻信號得到穩定的電源,其降壓圖如圖7 所示。

圖7 5 V-3.3 V的降壓電路圖
SIM800C 模塊的工作電壓為4 V,因此SIM800C的電源端也需要搭建降壓電路,將5 V 的電壓降到4 V,該降壓電路常用的芯片為MIC29302WU,該芯片是一個低成本、高精度的電壓調節器[14],其降壓電路圖如圖8 所示。

圖8 5 V-4 V降壓電路圖
STM32 作為主控芯片,主要負責信息的采集和控制水泵澆花。上電后,對系統時鐘、I/O口、定時器等初始化,傳感器將采集的土壤信息和環境信息傳給STM32 時,STM32 將該土壤濕度的模擬信號通過A/D 轉換為數字信號。同時從DHT11 傳入的數據中提取環境的溫濕度數據。并判斷采集的濕度是否超過閾值從而控制水泵是否工作。同時將采集的數據傳送給SIM800C,由SIM800C 傳送到服務器,再由服務器傳送到手機終端。手機終端根據傳來的數據發送控制信號。控制信號通過SIM800C 傳輸到STM32來控制水泵的工作。其流程圖如圖9 所示。

圖9 STM32程序流程圖
STM32 通過服務器與手機終端連接,因此在設計中要進行服務器的連接,SIM800C 模塊通過花生殼軟件與服務器通信。在電腦端下載花生殼軟件,并進行賬號注冊,登錄賬號進行IP 設置。設置成功后打開網絡調試助手,設置本地主機地址與花生殼軟件的內網主機地址相同,點擊連接,同時檢測SIM800C 模塊是否把參數上傳到服務器上,其測試圖如圖10 所示。

圖10 網絡調試助手測試圖
目前大部分智能手機都為Android 系統,且Android 系統具有開源性,因此它受到了大批軟件開發人員的青睞[15]。目前最常用的Android 系統的開發環境為Android Studio,其具有功能豐富的模擬器和強大的布局編輯器,在開發軟件時,可方便快捷地搭建開發環境[16]。因此在該設計中利用軟件Android Studio進行Android端APP的開發。該APP使用JAVA語言進行開發,并利用Android Studio 作為Android 端APK 的編程工具。其主要顯示澆花系統各部分的狀態及花卉的溫濕度,并設置控制端控制水泵的工作。
在創建主界面前,先開啟Activity 子類,并在繼承類中重寫oncreat()方法,這時可以使界面進入到監聽狀態。該APP 的登錄功能主要通過EditText 控件、TextView 控件等實現。在登錄該APP 時,首先要對服務器進行配置和連接,用戶在配置服務器時需要輸入花生殼軟件設置的IP 地址和端口號。配置成功將提示“配置成功,請連接服務器!”,最后再點擊“連接服務器”,連接成功將提示“服務器連接成功”。相關內容如圖11 所示。

圖11 手機端連接服務器
將電容式土壤濕度傳感器插入土壤,DHT11 放在空氣中,打開電源。打開串口助手,設置串口的串口號和波特率,并設置IP 地址和端口號。設置完成后打開串口,這時對話框提示“串口已打開!IP 設置成功!端口號設置成功”,如圖12 所示,表明硬件電路已經連接好。同時在LCD 顯示屏上顯示空氣溫濕度,土壤濕度及水泵開關狀態的信息,如圖13 所示。

圖12 串口參數的配置

圖13 硬件調試實物圖
硬件電路調試完成后,上位機軟件與其連接成功,在所設計的手機APP 上輸入服務器端的端口號和IP 地址。當出現“服務器連接成功”的提示后表示連接成功,這時用戶可以根據需求查看環境參數及控制水泵的工作狀態,工作時長及設置系統處于自動模式下的閾值。根據測試該系統達到了遠程澆花的目的,且運行穩定,反應靈敏。
該系統是基于STM32 為控制芯片制作的一款遠程澆花系統,通過SIM800C 芯片進行通信,與傳統的藍牙和WIFI 相比具有永遠在線,傳輸距離不受限制等特點;且制作了一款手機APP 監控該澆花系統,與原有的SIM 傳輸的短信息指令控制相比更加直觀、快捷、方便。該系統可以發展應用到物聯網農業中,實時監控農業生產中的溫度和濕度,在農業灌溉中,具有廣闊的應用前景。