本文是由開發(fā)者設(shè)計(jì)的一個基于 Android +機(jī)智云的室內(nèi)植物墻智能控制系統(tǒng),打造室內(nèi)的小型化的可智能監(jiān)控的植物墻,完成在線監(jiān)測溫濕度、二氧化碳濃度、甲醛濃度、光照強(qiáng)度,并可控制水泵進(jìn)行灌溉等。
基于arduino 平臺設(shè)計(jì)一個多傳感器的硬件系統(tǒng),并利用WiFi 芯片與機(jī)智云平臺連接,通過云平臺與 Android 手機(jī)移動端進(jìn)行交互,從而實(shí)現(xiàn)在手機(jī)上查看當(dāng)前數(shù)據(jù)并控制系統(tǒng)的功能。
系統(tǒng)總體方案設(shè)計(jì)室內(nèi)植物墻智能控制系統(tǒng)的設(shè)計(jì)目的是為想要在室內(nèi)養(yǎng)護(hù)較多花草植物卻又沒有充足的時間與精力的人群提供一個符合需求的解決方案。 為此室內(nèi)植物墻智能控制系統(tǒng)功能實(shí)現(xiàn)有: ① 實(shí)時獲取當(dāng)前溫濕度、甲醛濃度、光照強(qiáng)度、二氧化碳濃度等數(shù)據(jù),以便清楚得知室內(nèi)空氣環(huán)境變化,更加科學(xué)的養(yǎng)護(hù)植物; ② 將實(shí)時獲取到的數(shù)據(jù)展現(xiàn)在移動端,提高養(yǎng)護(hù)植物的樂趣,調(diào)動人群的積極性; ③ 能夠由移動端遠(yuǎn)程控制水泵澆水等動作,將養(yǎng)護(hù)植物的難度進(jìn)一步降低,提高植物存活能力。 系統(tǒng)總體結(jié)構(gòu)可以分為植物墻設(shè)計(jì)、硬件電路設(shè)計(jì)、軟件服務(wù)設(shè)計(jì)三個部分,具體設(shè)計(jì)如圖所示: 智能控制系統(tǒng)硬件及電路設(shè)計(jì)1、室內(nèi)植物墻設(shè)計(jì) 結(jié)合市面植物墻產(chǎn)品設(shè)計(jì)的優(yōu)缺點(diǎn),確定本系統(tǒng)所使用的植物墻方案,墻架主體包括循環(huán)灌水式水箱、可移動式鐵架、自由擺放植物木架三個部分,其組合實(shí)物圖如下所示。 2、硬件選擇及電路設(shè)計(jì) ◆ 中央處理器: 整個硬件部分以 Arduino Uno R3板為核心,搭配各種傳感器及相應(yīng)配套電路。 ◆ 溫濕度傳感器: 本系統(tǒng)采用DHT11傳感器,其供電電壓與 Arduino板的輸出電壓相對應(yīng)。 ◆ 甲醛濃度檢測傳感器: 選擇檢測方法為電化學(xué)法的DS-HCHO數(shù)字式傳感器。 DS-HCHO 引腳說明: ◆ 光照強(qiáng)度傳感器: 選用TSL2561 傳感器,實(shí)現(xiàn)自行編程設(shè)置光照閾值,當(dāng)實(shí)際光強(qiáng)超過閾值時能夠產(chǎn)生中斷信號。 ◆ 二氧化碳濃度傳感器: 采用MG811的檢測傳感器,可探測的濃度范圍為 0 到 10000ppm,具有溫度補(bǔ)償功能,能夠?qū)崿F(xiàn)全溫度范圍下檢測二氧化碳濃度。 ◆ 水泵開關(guān)電路設(shè)計(jì): 選用電磁式的繼電器,輸入電流只需要 5V 直流電流,可以對 220V、10A 交流的電路進(jìn)行控制,與 Arduino 板搭配使用很合適,其接線示意圖如圖所示。 ◆ WiFi電路設(shè)計(jì): 本系統(tǒng)采用樂鑫的 esp8266 芯片作為 WiFi 通信芯片。 ESP8266 引腳說明:
系統(tǒng)軟件程序設(shè)計(jì)1、溫濕度檢測程序 引用了DHT11庫文件后的驅(qū)動程序編寫如下: //引用 DHT11 的庫文件#include <DHT11.h> //創(chuàng)建實(shí)例化對象DHT11 DHT;//定義 2 號引腳為溫濕度測量的引腳#define DHTPIN 2//設(shè)置波特率為 9600void setup(){Serial.begin(9600);}//循環(huán)函數(shù)void loop(){//將讀取到的值賦給 ckint ck = DHT.read(DHTPIN);//若無問題就打印 OK if (ck == DHTLIB_OK){Serial.println(“OK”);}//出現(xiàn)校驗(yàn)和錯誤else if(ck == DHTLIB_ERROR_CHECKSUM){Serial.println(“CHECKSUM ERROR”);}//出現(xiàn)超時錯誤else if(ck == DHTLIB_ERROR_TIMEOUT){Serial.println(“TIMEOUT ERROR”);}//出現(xiàn)未知錯誤 else{ Serial.println(“UKNOWN ERROR”)}//打印溫度及濕度值Serial.println(“Temperature: ” + DHT.temperature);Serial.println(“Humidity(%):” + DHT.humidity);//延時 1000 毫秒開始下一次循環(huán)delay(1000);}
2、甲醛濃度檢測程序
分析清楚傳感器通信格式后,可編寫代碼如下:
參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw 3、光照強(qiáng)度檢測程序 TSL2561傳感器能夠?qū)⒐鈴?qiáng)直接轉(zhuǎn)換為數(shù)字信號輸出,其具體傳輸流程如下所示: 其部分程序代碼如下: 參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
4、二氧化碳濃度檢測程序 基于二氧化碳傳感器相關(guān)變量的對應(yīng)關(guān)系,可以設(shè)計(jì)二氧化碳濃度檢測程序,部分代碼如下:
參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
6、WiFi連接程序
Wi-Fi 模塊作為連接客戶端與 Arduino 平臺的中間模塊,在程序上選擇刷入機(jī)智云的固件,這樣的好處在于能使用機(jī)智云的云平臺服務(wù),具體內(nèi)容會在后續(xù)介紹。 系統(tǒng)服務(wù)端及移動端設(shè)計(jì)本系統(tǒng)的軟件部分可為服務(wù)端與移動端,系統(tǒng)服務(wù)端采用機(jī)智云物聯(lián)網(wǎng)云平臺,移 動端基于機(jī)智云的 Android SDK 進(jìn)行深度二次開發(fā)設(shè)計(jì)。 1、服務(wù)端設(shè)計(jì) ◆ 機(jī)智云物聯(lián)網(wǎng)云平臺介紹 機(jī)智云提供一站式的物聯(lián)網(wǎng)服務(wù)平臺,包含硬件開發(fā)及云服務(wù),并且面向個人及企業(yè)開發(fā)者,開發(fā)者通過物聯(lián)網(wǎng)云平臺,可以實(shí)現(xiàn)從硬件開發(fā)到應(yīng)用開發(fā)及云端開發(fā)的功能,其云平臺的架構(gòu)如下所示。 ◆ 設(shè)備接入設(shè)計(jì) 機(jī)智云提供多種硬件設(shè)備接入方案,例如購買官方開源套件就可自動實(shí)現(xiàn)接入云端,也可通過將 GAgent 固件燒錄進(jìn) WiFi模組中,從而實(shí)現(xiàn)與機(jī)智云平臺的連接。 GAgent 固件可以看作是一款運(yùn)行在通信模塊中的軟件,提供模塊與上層應(yīng)用(包括移動客戶端及云端等)的雙向通信,無需關(guān)注通信的具體協(xié)議及細(xì)節(jié),也不需要進(jìn)行專門的 TCP傳輸設(shè)計(jì)。 考慮到本系統(tǒng)以 Arduino 板為核心,以 ESP8266 為通信模塊,完美契合機(jī)智云給出的解決方案中燒錄固件的形式,因此,本系統(tǒng)采用燒錄固件的方案、 具體接入步驟如下: ►在機(jī)智云官方網(wǎng)站上找到所需的固件資源,選擇與通訊模塊相匹配的 GAgent 固件及燒錄軟件進(jìn)行下載,選即擇第二個GAgent for ESP8266 進(jìn)行下載,如圖 所示。 ►下載燒寫軟件工具:https://www.espressif.com/zh-hans/support/download/other-tools ►將 WiFi 模塊與 USB 轉(zhuǎn) TTL 模塊相連接,進(jìn)入燒錄模式,需要注意的是,在進(jìn)入燒錄模式后,USB 轉(zhuǎn) TTL 模塊提供的電壓已無法滿足 WiFi 模塊的供電需求,此時需要有外部電源對 WiFi 模塊提供 3.3V 的電壓,兩個模塊具體的接線如圖所示。 ►具體而言就是兩個模塊的 TX 與 RX 交叉連接,外部電源正極與 Wi-Fi 模塊的 VCC 及 EN相連,外部電源的負(fù)極與 Wi-Fi 模塊的 IO0、IO2、GND 及轉(zhuǎn)串模塊的 GND 相連,在RST 于 GND 之間連接一個開關(guān)。 ►在硬件電路連接好,需要用到的軟件及固件都下載好后,打開燒錄軟件,依據(jù)說明選擇相應(yīng)的選項(xiàng),點(diǎn)擊 START 鍵后按下復(fù)位開關(guān)即可開始進(jìn)行燒錄,最后燒錄成功后如圖所示。 ►創(chuàng)建產(chǎn)品:接下來在機(jī)智云平臺創(chuàng)建一個產(chǎn)品,命名為“智能植物墻”,技術(shù)方案選擇 WiFi方案,數(shù)據(jù)傳輸方式為定長,完成創(chuàng)建后如圖所示。 ►下一步是設(shè)置數(shù)據(jù)點(diǎn),所謂數(shù)據(jù)點(diǎn)即是希望系統(tǒng)采集或者控制的數(shù)據(jù),讀寫類型分為只讀與可寫兩類,數(shù)據(jù)類型分為數(shù)值與布爾值等,本系統(tǒng)設(shè)置了六個數(shù)據(jù)點(diǎn),如表所示。 ►在機(jī)智云平臺上創(chuàng)建數(shù)據(jù),完成后如圖所示。 ►設(shè)置好數(shù)據(jù)點(diǎn)后進(jìn)入 MCU 開發(fā)環(huán)節(jié),選擇獨(dú)立 MCU 方案,硬件平臺選擇Arduino UNO R3,如圖所示。 ►填寫產(chǎn)品密鑰,產(chǎn)品密鑰在產(chǎn)品基本信息一欄,是作為 APP 開發(fā)和服務(wù)器對接時需要使用的參數(shù),如圖所示。 ►輸入密碼后即可顯示完整密鑰,然后復(fù)制粘貼即可。完成后點(diǎn)擊生成代碼包,稍等片刻即完成,如圖所示。 2、移動端設(shè)計(jì) 關(guān)于移動APP的設(shè)計(jì),可以采用基于機(jī)智云開源框架二次開發(fā)設(shè)計(jì)智能控制系統(tǒng)APP。 從實(shí)際需求出發(fā),移動端應(yīng)該具有以下幾個功能: ① 用戶注冊及登錄:智能植物墻系統(tǒng)作為一個物聯(lián)網(wǎng)項(xiàng)目,對每個用戶而言,基于信息保密原則需要有自己的賬號,賬號與設(shè)備一一對應(yīng),因此用戶注冊及登錄功能必不可少; ② 設(shè)備綁定與解除綁定:用戶在登錄移動端后首先需要做的就是與自己的設(shè)備進(jìn)行綁定,以便進(jìn)行下一步的操作,在綁定了設(shè)備后還需要能夠解綁; ③ 數(shù)據(jù)采集及設(shè)置:與設(shè)備綁定后需要能夠?qū)崿F(xiàn)實(shí)時顯示采集到的數(shù)據(jù),并且能夠控制硬件設(shè)備。 移動端完整的工作流程如下: 點(diǎn)擊移動端,展示歡迎界面,調(diào)用登錄接口讓用戶通過注冊或者直接登錄的方法登錄移動端,設(shè)備提前接入網(wǎng)絡(luò),調(diào)用設(shè)備綁定接口在移動端配置設(shè)備并與之綁定,綁定設(shè)備完成后,展示設(shè)備列表,點(diǎn)擊具體綁定的設(shè)備,實(shí)時查看當(dāng)前數(shù)據(jù),并能與設(shè)備進(jìn)行交互。 移動APP端的登錄及注冊界面效果: 最終完整配置流程界面: 在完成設(shè)備的綁定后該設(shè)備就會出現(xiàn)在移動端中,需要對云端返回的設(shè)備采集到的數(shù)據(jù)進(jìn)行可視化處理,設(shè)計(jì)展示界面及開關(guān)控制功能。 最終的參數(shù)查詢及控制界面: 其部分程序代碼如下: - 參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw
- 系統(tǒng)設(shè)計(jì)總結(jié)
基于Android +機(jī)智云平臺的室內(nèi)植物墻智能控制系統(tǒng)由植物墻、硬件電路及移動控制端等組成,通過市場調(diào)研確定植物墻的設(shè)計(jì)方案,以 Arduino 作為硬件平臺并輔以各類傳感器,組成環(huán)境信息探測采集系統(tǒng)。 以ESP8266 為 Wi-Fi 芯片并刷入機(jī)智云固件,作為橋梁將硬件系統(tǒng)與機(jī)智云平臺相連接。以 Android 平臺作為移動端的選擇,以機(jī)智云開源框架為基礎(chǔ)設(shè)計(jì)移動端,以實(shí)現(xiàn)對硬件系統(tǒng)的遠(yuǎn)程控制。在實(shí)時監(jiān)測室內(nèi)環(huán)境數(shù)據(jù)的同時遠(yuǎn)程控制水泵灌溉開關(guān),降低了綠植養(yǎng)護(hù)的難度,提高了綠植養(yǎng)護(hù)的樂趣。 設(shè)計(jì)完善的植物墻養(yǎng)護(hù)植物圖: 由于繼電器端口的原因,水泵無法直接與之相連,因此用一個改裝過的插座來代替,通過繼電器控制插座的通斷電從而控制插在插座上的水泵,以此起到開關(guān)的作用。 完整的硬件電路連接圖: 將項(xiàng)目代碼編譯打包運(yùn)行,通過 Android Studio 的調(diào)試功能將生成的完整移動端安裝到手機(jī)上并打開,如圖所示從左到右依次為移動端下載安裝完成圖、移動端打開后歡迎頁、登錄頁、點(diǎn)擊跳過后移動端內(nèi)容頁,即為移動端首次運(yùn)行的頁面。 測試注冊及登錄功能圖: 在經(jīng)過配置——選擇無線網(wǎng)絡(luò)——選擇無線模組——搜索設(shè)備并連接的流程后,在移動端中出現(xiàn)了“智能植物墻”這一設(shè)備,這表明設(shè)備能夠順利完成與移動端的綁定操作。 測試綁定后的設(shè)備實(shí)現(xiàn)遠(yuǎn)程查看數(shù)據(jù)并控制水泵開關(guān)。
|