楊延申,李振華,汪會斌,包偉豪
(東南大學成賢學院,江蘇南京,210000)
目前國內人民收入普遍提高,與此同時個人生活質量也在提高,但奮斗在大都市的年輕人們的精神世界并不富裕,時常會在深夜疲倦地回到家,感受到孤獨,即使在周末也是通過睡覺休息來度過迷茫的時間,社交也成為了人們不愿意面對的難題,獨自居住時養(yǎng)點什么陪伴自己也就成為大多數(shù)年輕人的想法。
相較于養(yǎng)寵物,養(yǎng)植物能夠在一些特定的地方或者空闊的角落擺放上一些植物裝飾室內的空間,起到凈化環(huán)境的作用,還不用擔心自己回家后面對寵物造成的一片狼藉。理所當然養(yǎng)植物就成為大多數(shù)人提升生活品質的選擇。如果一個人在外租房居住,平時又比較忙,很多年輕人都會覺得照料家里的植物有點麻煩。于此同時,還存在因為工作繁忙,常常忘記照顧,以及在出差的時候家里的植物盆栽會可能因缺水而枯死的情況。因此,本項目結合物聯(lián)網(wǎng)技術和云端技術,提出一種基于云端的植物養(yǎng)護監(jiān)測系統(tǒng)設計,通過微信小程序來對植物生長環(huán)境進行實時傳輸,最終用戶可通過手機隨時查看。即使人們出門在外,心愛的植物在家也能得到很好的照顧,并且隨時隨地“云養(yǎng)”它們。
我們的設計選用了STM32 系列的單片機來處理各個傳感器的信息。DHT11 傳感器和YL-69 傳感器收集所需數(shù)據(jù)傳送給單片機進行數(shù)據(jù)信號的處理后將指令發(fā)給水泵,控制水泵進行澆水,再由ESP8266 傳輸數(shù)據(jù)到騰訊云服務器,移動端使用微信小程序從服務器上接受數(shù)據(jù)。整個設計的系統(tǒng)由DHT11 數(shù)字溫濕度傳感器模塊、YL-69 土壤濕度傳感器模塊、ESP8266-01S WIFI 模塊、水泵模塊和微信小程序構成。設計圖如圖1 所示。
圖1 系統(tǒng)設計方案框圖
STM32F103ZET6 單片機由ARM 公司的Corte-M3 的內核和ST 公司的設計制造而成。STM32F103ZET6 單片機不僅具有72MHzCPU 的超快速度,還有高達1MB 的FLASH 閃存,并且ARM Cortex-M3 32 位閃存微處理器在工作時所需求的電壓并不高,與此同時它相較于同類型的產品擁有更優(yōu)秀的實時運算功能。因此,由于STM32F103ZET6單片機強大的性能以及可以重復擦寫代碼,盡管相對于其他單片機來說,入門稍有難度,但熟練之后操作之后可以設計出更多有趣且實用的功能。
DHT11 數(shù)字溫濕度傳感器模塊是一種復合傳感器。它本身是帶有校訂數(shù)字信號輸出的溫濕度復合傳感器,設計人員為了確保該傳感器具有超高可靠性和卓越的長期穩(wěn)定性,開發(fā)并使用了一種獨特的數(shù)字模塊采集技術和溫濕度傳感技術。該傳感器本身包含了電阻型濕度傳感器和業(yè)內常用的NTC 溫度傳感器,并且內置了一塊小型但具有高性能的8位單片機相連。因而,DHT11 數(shù)字溫濕度傳感器擁有質量優(yōu)異、價格低廉和反應靈敏等優(yōu)點。
我們所采用的DHT11 數(shù)字溫濕度傳感器會將采集到的當前空氣的溫濕度數(shù)據(jù)經(jīng)過內置的小型八位單片機處理之后傳輸給STM32F103ZET6 單片機進行程序的執(zhí)行。
YL-69 是一款常見的土壤濕度傳感器,它所采用的是市面上普遍使用的電容式傳感器,主要是濕敏電容。用傳感器監(jiān)測當前的環(huán)境濕度發(fā)生變化時,其中的濕敏電容中的介質同步發(fā)生變化,這也影響濕敏電容中電容值的改變,YL-69所使用濕敏電容的電容值的變化值與環(huán)境中的濕度值成正比關系。因為濕敏電容普遍有著迅速響應、高靈敏度、誤差小,不易滯后等特點,每當所監(jiān)測的土壤濕度發(fā)生改變時,傳感器都可以快速檢測出改變值并獲得其數(shù)據(jù)。在接收到數(shù)據(jù)之后STM32F103ZET6單片機將數(shù)據(jù)經(jīng)過公式計算后得到數(shù)值。
ESP8266-01S 是由深圳市安信可公司研發(fā)的小型WiFi模塊,該模塊的核心處理器ESP8266 在同類型產品中用了較小的尺寸不僅使用目前業(yè)界先進的技術封裝集成了超低功耗32 位微型MCU,還帶有16 位精簡模式,這樣的操作使得芯片的主頻不僅支持80 MHz 和160MHz,還支持即時操作系統(tǒng)(RTOS)在較短時間內執(zhí)行下達的任務。新一代的ESP8266-01S WiFi 模塊支持無線局域網(wǎng)標準的IEEE802.11b/g/n 和TCP/IP 協(xié)議。由ESP8266-01S 模塊將開發(fā)板連接上互聯(lián)網(wǎng)之后,STM32F103ZET6 單片機可以通過MQTT 互聯(lián)網(wǎng)協(xié)議將獲得的數(shù)據(jù)實時上傳到云端服務器。
STM32F103ZET6 單片機將獲得的數(shù)據(jù)經(jīng)過處理之后代入程序中執(zhí)行,當溫濕度達到超過(或低于)設定的閾值之后,STM32F103ZET6 單片機自動控制水泵的開啟與關閉。
將按鍵與STM32F103ZET6 單片機連接,通過按鍵可以設定溫濕度的閾值,使用戶可以根據(jù)養(yǎng)護的植物不同,所需要的生長環(huán)境不同,設定符合的溫濕度需求。
微信小程序部分分為界面外觀設計以及接收信息程序設計。
采用簡潔的大圖顯示,方便使用者一眼就能夠明了澆花相關的信息顯示。如圖3 所示。
圖3 小程序界面
首先定義出一個最大的總界面框架:
其次明確所需展示的內容有:①澆花系統(tǒng)名稱展示;②空氣溫度;③空氣濕度;④土壤濕度;⑤濕度閾值(土壤)。將以上內容分為兩個模塊,一個是“系統(tǒng)名稱”:
單片機收集到傳感器所監(jiān)測到的數(shù)據(jù),再由單片機上的ESP8266-01SWiFi 模塊將我們所需的相關數(shù)據(jù)發(fā)送到預先設定的云服務器上,通過云服務器再將數(shù)據(jù)傳送給微信小程序并且顯示在移動端的小程序界面。根據(jù)以上基本流程原理,需要先建立一個云服務器,我們選擇騰訊云的云服務器,基于EMQX 在騰訊云搭建MQTT 服務器。選擇在騰訊云購買一個按量計費的云服務器:南京一區(qū),標準型S5,Ubuntu 鏡像。然后新建安全組,設置登錄密碼,開通云服務器。新建的安全組需要添加入站規(guī)則:來源:0.0.0.0/0(任何ip 均可以訪問);協(xié)議端口TCP:1883,8883,8083,8084,18083。添加入站規(guī)則目的是為了打開以上協(xié)議端口。登錄服務器內部,切換為root 用戶,隨后從EMQX 網(wǎng)站找到Shell 腳本一鍵安裝的代 碼“curl https:// repos.emqx.io/install_emqx.sh | bash”,安裝完成后輸入“emqx start”啟動emqx。最后通過地址146.56.251.193:18083 訪問web 控制臺??刂婆_可以用于測試主題訂閱以及主題消息發(fā)送接收。
圖5 EMQX 的web 控制臺
為了使微信小程序能夠訂閱云服務器,我們接著還需要注冊MQTT 服務器域名并且配置對應的SSL 通訊證書。在騰訊云搜索域名注冊,以“mqttwater.xyz”為域名注冊,域名持有者選擇為個人,實名認證后購買域名成功。域名注冊成功后需要在解析設置中添加記錄,目的是使得輸入域名后可以被解析到對應的云服務器IP 地址,即訪問該域名即可訪問對應云服務器。域名注冊完成后,需要配置SSL 證書,原因是微信小程序開發(fā)中域名只支持https 和wss 協(xié)議,而以上兩種協(xié)議必須要有證書。在騰訊云通過搜索可以找到SSL 證書申請,選擇單域名,DV SSL 類型,免費版,即可免費申請一個SSL 證書,隨后將此證書與域名綁定。最后下載證書,通過FinalShell 軟件對emqx 的相關配置項進行修改以完成SSL 證書配置(如圖6)。證書配置完成后可以在web 控制臺SSL 連接測試域名連接是否有效。
圖6 使用FinallShell 進行配置項修改
云服務器以及連接部分準備完畢后,需要使用JS 語言對微信小程序進行編寫相關訂閱獲取信息的代碼。將對應數(shù)據(jù)進行綁定,讓數(shù)據(jù)變化顯示在正確的位置:{{Temp}}℃對應接收空氣溫度數(shù)據(jù)變化,{{Hum}}%對應空氣濕度數(shù)據(jù)變化,{{Humi}}%對應土壤濕度數(shù)據(jù)變化,{{lim}}對應土壤濕度閾值設定;嘗試連接指定的云服務器域名:'wxs://mqtt.mqttwater.xyz:8084/mqtt',訂閱指定的主題:subscribe"/mysmarthome/pub",并且提示是否訂閱成功,當我們訂閱成功后就可以使用云服務器接收和上傳我們所需的數(shù)據(jù)。
圖7 JS 語言編寫代碼
圖8 訂閱消息發(fā)送測試
微信小程序在開發(fā)者環(huán)境下測試完成后,選擇上傳,然后點擊發(fā)布,等待官方審核員查核通過后就可以發(fā)布成功。發(fā)布成功后我們就可以選擇下載官方提供的小程序二維碼,使用手機通過掃描二維碼的方式開啟小程序,或者在微信首頁的搜索框內查詢也可以找到該小程序。
圖9 小程序正式發(fā)布
生活在這個時代,人們的生活節(jié)奏正在不斷加快,無數(shù)件瑣碎的小事占滿我們所剩無多的休閑時間,忙碌的時候可能沒有多余的時間照顧家中的植物。跟隨著物聯(lián)網(wǎng)技術的興起我們設計了這樣一款能夠在我們忙碌的時間幫助我們照顧家里植物的智能家居。并且現(xiàn)在的技術高速發(fā)展,我們的設計還可以有更好的改進和提升來提高用戶的體驗。