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