【IoT開發】onenet雲平臺+STM32的植物澆水系統的設計與實現
2024-1-16 16:58 237 1 1 分類: 物聯網 文集: onenet
摘要:由於城市居民工作忙,生活節奏快,人們經常忘記給植物澆水,為此設計一款基於STM32的植物澆水系統,主要由STM32微控制器、土壤溼度感測器、溫溼度感測器、Wi-Fi模組、水泵系統、繼電器以及OLED液晶螢幕等構成,實現手動或自動澆水和遠端監控。當土壤溼度感測器檢測到土壤中的溼度較低時,自動啟動澆水系統澆水,直到土壤溼度達標。同時,使用者可以透過手機App實時檢視土壤溼度資料與空氣溫溼度資料、設定澆水模式等。該系統硬體電路成本低,執行穩定,實現了智慧澆水。
0引言
隨著科學技術的進步和人民生活質量的提高,越來越多的居民在自家陽臺種植花卉植物,以改善家中的空氣質量並陶冶情操。但由於生活節奏較快,人們常常忘記或者無法及時給花卉澆水而導致花卉枯萎[1-3]。研究表明,花卉生長過程中枯萎有百分之八十是由於澆水不當引起的,澆水不宜過多也不能過少[4],因此如何給花卉澆水是一個不可忽視的研究領域。但人們不一定都十分了解花卉種植,很多時候無法從花卉和土壤的表面來判斷是否需要給花卉澆水,因而自動澆花裝置是一個不錯的選擇。
市場上已有的自動澆花裝置大多不適合家用,其價格昂貴、效能低,雖然採用了定時澆水方案,但並沒有考慮當下花卉的生長環境和狀況,可能會產生澆水過多或者過少而導致花卉枯萎的情況[5]。為了解決以上問題,本文將物聯網技術與雲平臺相結合,設計一款根據土壤溼度進行澆水的植物澆水系統,能夠根據土壤溼度的變化自動實時澆水,同時能夠實時監控土壤的溼度及環境溫溼度資訊,並將土壤溼度及環境溫溼度資訊傳輸到onenet物聯網平臺,便於使用者在手機App上實時監控。
1 onenet物聯網平臺
在技術高速發展的今天,物聯網系統開發模式已經發生了大幅度的轉變。在傳統物聯網系統開發模式中,需要搭建一臺高效能伺服器,在伺服器上搭建物聯網後臺,把相關專案以及資料部署在伺服器上,透過伺服器向使用者提供相關服務。但是該模式存在很多問題:首先是成本問題,主要包含購買伺服器、伺服器的運營等費用,導致系統價格上升,難以推廣;其次是安全問題,伺服器要預防網路攻擊、停電等各種異常問題,一旦伺服器出現問題,產品可能會當機。
本文選取機智雲物聯網平臺,其是致力於物聯網、智慧硬體雲服務的開放平臺。平臺提供了從產品定義、裝置端開發除錯、應用開發、產品測試、運營管理等覆蓋智慧硬體接入到運營管理全生命週期服務的能力[6]。目前,機智雲針對esp8266提供基本的MCU開發方案以及SDK開發方案,能夠滿足使用者的實際需求,使用簡單靈活。
2 系統硬體設計
系統總體設計如圖1所示。由圖1可知,整個系統由資料獲取層、資料處理及控制層和資料顯示層組成。資料獲取層由土壤溼度感測器、溫溼度感測器構成,其中,土壤溼度感測器能夠採集土壤溼度,溫溼度感測器能夠採集環境溫溼度資料。資料處理及控制層包括STM32微控制器、繼電器、水泵,其中,STM32為系統核心部分,用於資料處理,並向繼電器傳送控制訊號,啟動或停止水泵出水。
資料顯示層包括OLED液晶螢幕、Wi-Fi模組、onenet物聯網平臺和手機App, 其中,OLED液晶螢幕用於顯示STM32獲取的感測器資料資訊,STM32透過Wi-Fi模組向onenet物聯網平臺傳輸資料,並將資料顯示在手機App上,同時藉助手機App向STM32微控制器傳送控制訊號。
圖1 系統總體設計框圖
2.1 土壤溼度感測器硬體電路設計
選用YL-69土壤溼度感測器檢測土壤溼度,將土壤溼度轉換成模擬電壓訊號,微控制器藉助內部自帶的模/數轉換模組將模擬訊號轉換成數字訊號,從而獲取土壤溼度資料[7]。該感測器利用土壤水分對電容值的影響來檢測土壤溼度:數值越大,說明土壤越乾燥;數值越小,土壤越溼潤。在硬體電路連線時需要將土壤溼度感測器的AO引腳與微控制器的ADC輸入引腳(PA1)相連,土壤溼度感測器的GND引腳連線到微控制器的GND引腳,土壤溼度感測器的VCC引腳連線到微控制器的VCC引腳。
2.2 環境溫溼度感測器硬體電路設計
選用DHT11溫溼度感測器監測環境溫溼度資訊。該感測器是一款含有已校準數字訊號輸出的溫溼度複合感測器,使用專用的數字模組採集技術和溫溼度感測技術,單線型序列介面,使用時需要在資料口連線一個上拉電阻(連線長度短於20 m時用5 kΩ上拉電阻,大於20 m時根據實際情況選擇合適的上拉電阻)[8-9]。上電後,溫溼度感測器接收到微控制器傳送的相關命令,並根據接收到的不同命令反饋相關資料。在硬體電路連線時,將溫溼度感測器的資料輸出引腳與微控制器的通訊引腳(PB9引腳)進行連線。
2.3 繼電器硬體電路設計
繼電器被用來控制水泵。水泵啟動需要較大的電壓及電流,如果使用微控制器直接驅動,將影響微控制器工作的穩定性,因此採用弱電控制強電原理,藉助繼電器進行控制。繼電器相當於一個開關,其中VCC表示電源正極、GND表示電源負極、IN表示訊號輸入腳、COM表示公共端、NC(normal close)表示常閉端、NO(normal open)表示常開端,一般情況下是常閉狀態。在硬體電路連線時,繼電器連線微控制器的PB13引腳。
2.4 資料顯示與系統通訊硬體設計
2.4.1 ESP8266通訊模組硬體電路設計
ESP8266是一個成本較低的無線裝置,內建TCP/IP協議,可以與任何Wi-Fi網路連線,是目前比較常用的一種無線通訊模組[10]。本系統中的通訊模組透過串列埠與微控制器相連,將微控制器與機智雲伺服器連線,進行資料傳輸。在硬體電路連線時,將Wi-Fi模組的LRXD引腳連線微控制器串列埠TX(PB10),UTXD引腳連線微控制器串列埠RX(PB11),從而實現兩者之間的資料通訊,如圖2所示。
圖2 ESP8266硬體電路連線圖
2.4.2 OLED液晶螢幕硬體電路設計
有機發光二極體(OLED),又稱有機電鐳射顯示。OLED具備自發光、使用溫度範圍廣、構造簡單等特點,被認為是下一代的平面顯示器新興應用技術。雖然OLED的尺寸難以大型化,但是解析度很高。
SSD1306是0.96英寸OLED液晶屏,滿足本系統需求。STM32微控制器將獲取到的溫溼度資訊顯示到OLED液晶螢幕,方便使用者檢視。在硬體電路連線上,STM32使用IIC通訊協議連線OLED液晶螢幕,分別連線微控制器對應的PB6(作為IIC的SCL引腳)和PB7引腳(作為IIC的SDA引腳)。
2.5 STM32微控制器程式下載電路設計
選用的STM32F103C8T6微控制器是一款基於Cortex-M3核心STM32系統的32位微控制器。該微控制器支援的程式下載方式包括串列埠下載和下載器下載。串列埠下載需要先更改硬體boot引腳連線方式,然後修改微控制器的啟動地址,即可透過串列埠下載程式,而下載器下載需要藉助微控制器的下載引腳SWD和SCLK,再使用下載器下載程式。採用串列埠下載方式,藉助FlyMcu軟體,透過串列埠完成程式的下載。
3 系統軟體設計
3.1 主程式設計
STM32作為主控晶片,負責程式初始化、控制及資料顯示。微控制器首先獲取感測器資料,將資料顯示在液晶屏,使用通訊模組連線機智雲平臺與手機進行通訊,再根據獲取的資料實施相應控制。當土壤溼度感測器檢測到土壤溼度較低時,啟動澆水系統,當土壤溼度達標後停止澆水系統,其中澆水系統的啟動方式包括手動和自動2種。具體流程如圖3所示。
圖3主程式流程圖
3.2 土壤溼度感測器程式設計
土壤溼度感測器的資料獲取是透過微控制器的ADC引腳獲取感測器的電壓值,然後將獲取到的模擬電壓進行模數轉換得到土壤溼度資訊。首先初始化ADC功能,然後開啟相關ADC通道進行資料迴圈取樣,流程如圖4所示。
圖4 土壤溼度感測器程式流程圖
3.3 環境溫溼度感測器程式設計
環境溫溼度感測器透過微控制器的IO口進行命令的傳送及資料的獲取。首先初始化與溫溼度感測器連線的資料引腳,然後分別輸出一段時間的高低電平命令,獲取GPIO的電平訊號並獲取溫溼度感測器傳輸的資料。程式設計流程如圖5所示。
3.4 ESP8266通訊模組程式設計
ESP8266通訊模組透過串列埠與微控制器進行通訊,因此將該程式設計轉換成微控制器串列埠資料收發程式。首先對串列埠初始化,設定標誌位,判斷串列埠是否產生中斷:如果產生中斷,接收資料並將資料解析儲存;如果沒有中斷,繼續等待。程式設計流程如圖6所示。
4 系統測試與應用
在進行系統硬體除錯前,需要確保感測器和微控制器電源、感測器與微控制器的引腳連線正確。經過硬體焊接連線的實物圖如圖7所示。
圖5 環境溫溼度程式設計流程圖
圖6ESP8266通訊模組的程式設計流程圖
圖7 基於STM32的植物澆水設計
4.1 雲平臺傳輸除錯
將系統獲取的資料上傳至機智雲物聯網平臺,並針對Wi-Fi模組、資料上傳和命令過程下發進行除錯。除錯程式如圖8所示。
圖8 ESP8266除錯程式
4.2 測試結果與分析
在自動模式下,將土壤溼度感測器放置在乾燥缺水的土壤中,透過手機App可監測到環境溫度值為26,環境溼度值為32,土壤溼度值為4036,此時自動啟動水泵澆水,如圖9所示。
圖9 自動澆水除錯圖
5總結
以STM32F103C8T6作為主控晶片,以及使用溫溼度感測器、土壤溼度感測器、繼電器、水泵、Wi-Fi模組、OLED等器件,設計了一款能夠實時採集土壤溼度資訊,並在土壤乾涸時及時澆水的智慧澆水系統。該系統能夠滿足實時監測土壤環境的溼度,並且能定時將採集到的資料上傳到機智雲物聯網平臺,使使用者能夠實時瞭解環境狀況,同時使用者能夠根據環境溫溼度以及土壤溼度資訊,決定是否遠端開啟水泵進行手動澆水操作。實踐證明,該系統執行正常,能夠直觀地監測到花盆土壤資訊,實現植物的科學澆水。