1功能實現
2 系統軟硬件設計
3 系統測試
4 結論
1.總體功能實現
本文設計的一款基于STM32的植物澆水系統,主要由STM32單片機、土壤濕度傳感器、溫濕度傳感器、Wi-Fi模塊、水泵系統、繼電器以及OLED液晶顯示屏等構成,實現手動或自動澆水和遠程監控。當土壤濕度傳感器檢測到土壤中的濕度較低時,自動啟動澆水系統澆水,直到土壤濕度達標。同時,用戶可以通過手機App實時查看土壤濕度數據與空氣溫濕度數據、設置澆水模式等。該系統硬件電路成本低,運行穩定,實現了智能澆水。
在技術高速發展的今天,物聯網系統開發模式已經發生了大幅度的轉變。在傳統物聯網系統開發模式中,需要搭建一臺高性能服務器,在服務器上搭建物聯網后臺,把相關項目以及數據部署在服務器上,通過服務器向用戶提供相關服務。但是該模式存在很多問題:首先是成本問題,主要包含購買服務器、服務器的運營等費用,導致系統價格上升,難以推廣;其次是安全問題,服務器要預防網絡攻擊、停電等各種異常問題,一旦服務器出現問題,產品可能會死機。本文選取機智云物聯網平臺,其是致力于物聯網、智能硬件云服務的開放平臺。平臺提供了從產品定義、設備端開發調試、應用開發、產品測試、運營管理等覆蓋智能硬件接入到運營管理全生命周期服務的能力。目前,機智云針對esp8266提供基本的MCU開發方案以及SDK開發方案,能夠滿足用戶的實際需求,使用簡單靈活。
2.總體硬件系統結構
系統硬件設計
系統總體設計如圖1所示。由圖1可知,整個系統由數據獲取層、數據處理及控制層和數據顯示層組成。數據獲取層由土壤濕度傳感器、溫濕度傳感器構成,其中,土壤濕度傳感器能夠采集土壤濕度,溫濕度傳感器能夠采集環境溫濕度數據。數據處理及控制層包括STM32單片機、繼電器、水泵,其中,STM32為系統核心部分,用于數據處理,并向繼電器發送控制信號,啟動或停止水泵出水。
數據顯示層包括OLED液晶顯示屏、Wi-Fi模塊、機智云物聯網平臺和手機App, 其中,OLED液晶顯示屏用于顯示STM32獲取的傳感器數據信息,STM32通過Wi-Fi模塊向機智云物聯網平臺傳輸數據,并將數據顯示在手機App上,同時借助手機App向STM32單片機發送控制信號。
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.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.2土壤濕度傳感器程序設計
土壤濕度傳感器的數據獲取是通過單片機的ADC引腳獲取傳感器的電壓值,然后將獲取到的模擬電壓進行模數轉換得到土壤濕度信息。首先初始化ADC功能,然后打開相關ADC通道進行數據循環采樣,流程如圖4所示。
3.3環境溫濕度傳感器程序設計
環境溫濕度傳感器通過單片機的IO口進行命令的發送及數據的獲取。首先初始化與溫濕度傳感器連接的數據引腳,然后分別輸出一段時間的高低電平命令,獲取GPIO的電平信號并獲取溫濕度傳感器傳輸的數據。程序設計流程如圖5所示。3.4 ESP8266通信模塊程序設計
ESP8266通信模塊通過串口與單片機進行通信,因此將該程序設計轉換成單片機串口數據收發程序。首先對串口初始化,設置標志位,判斷串口是否產生中斷:如果產生中斷,接收數據并將數據解析存儲;如果沒有中斷,繼續等待。程序設計流程如圖6所示。4 系統測試與應用在進行系統硬件調試前,需要確保傳感器和單片機電源、傳感器與單片機的引腳連接正確。經過硬件焊接連接的實物圖如圖7所示
4.云平臺傳輸調試
將系統獲取的數據上傳至機智云物聯網平臺,并針對Wi-Fi模塊、數據上傳和命令過程下發進行調試。調試程序如圖8所示。
5.測試結果與分析
在自動模式下,將土壤濕度傳感器放置在干燥缺水的土壤中,通過手機App可監測到環境溫度值為26,環境濕度值為32,土壤濕度值為4036,此時自動啟動水泵澆水,如圖9所示。
結論
本文以STM32F103C8T6作為主控芯片,以及使用溫濕度傳感器、土壤濕度傳感器、繼電器、水泵、Wi-Fi模塊、OLED等器件,設計了一款能夠實時采集土壤濕度信息,并在土壤干涸時及時澆水的智能澆水系統。
該系統能夠滿足實時監測土壤環境的濕度,并且能定時將采集到的數據上傳到機智云物聯網平臺,使用戶能夠實時了解環境狀況,同時用戶能夠根據環境溫濕度以及土壤濕度信息,決定是否遠程打開水泵進行手動澆水操作。
-
傳感器
+關注
關注
2550文章
51037瀏覽量
753085 -
OLED
+關注
關注
119文章
6198瀏覽量
224107 -
物聯網
+關注
關注
2909文章
44561瀏覽量
372800 -
STM32
+關注
關注
2270文章
10895瀏覽量
355751
發布評論請先 登錄
相關推薦
評論