找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1598|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

基于Android+機(jī)智云的室內(nèi)植物墻智能控制系統(tǒng)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:729078 發(fā)表于 2021-9-2 18:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本文是由開(kāi)發(fā)者設(shè)計(jì)的一個(gè)基于 Android +機(jī)智云的室內(nèi)植物墻智能控制系統(tǒng),打造室內(nèi)的小型化的可智能監(jiān)控的植物墻,完成在線監(jiān)測(cè)溫濕度、二氧化碳濃度、甲醛濃度、光照強(qiáng)度,并可控制水泵進(jìn)行灌溉等。

基于arduino 平臺(tái)設(shè)計(jì)一個(gè)多傳感器的硬件系統(tǒng),并利用WiFi 芯片與機(jī)智云平臺(tái)連接,通過(guò)云平臺(tái)與 Android 手機(jī)移動(dòng)端進(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ù)較多花草植物卻又沒(méi)有充足的時(shí)間與精力的人群提供一個(gè)符合需求的解決方案。
為此室內(nèi)植物墻智能控制系統(tǒng)功能實(shí)現(xiàn)有:
① 實(shí)時(shí)獲取當(dāng)前溫濕度、甲醛濃度、光照強(qiáng)度、二氧化碳濃度等數(shù)據(jù),以便清楚得知室內(nèi)空氣環(huán)境變化,更加科學(xué)的養(yǎng)護(hù)植物;
② 將實(shí)時(shí)獲取到的數(shù)據(jù)展現(xiàn)在移動(dòng)端,提高養(yǎng)護(hù)植物的樂(lè)趣,調(diào)動(dòng)人群的積極性;
③ 能夠由移動(dòng)端遠(yuǎn)程控制水泵澆水等動(dòng)作,將養(yǎng)護(hù)植物的難度進(jìn)一步降低,提高植物存活能力。
系統(tǒng)總體結(jié)構(gòu)可以分為植物墻設(shè)計(jì)、硬件電路設(shè)計(jì)、軟件服務(wù)設(shè)計(jì)三個(gè)部分,具體設(shè)計(jì)如圖所示:
智能控制系統(tǒng)硬件及電路設(shè)計(jì)
1、室內(nèi)植物墻設(shè)計(jì)
結(jié)合市面植物墻產(chǎn)品設(shè)計(jì)的優(yōu)缺點(diǎn),確定本系統(tǒng)所使用的植物墻方案,墻架主體包括循環(huán)灌水式水箱、可移動(dòng)式鐵架、自由擺放植物木架三個(gè)部分,其組合實(shí)物圖如下所示。
2、硬件選擇及電路設(shè)計(jì)
◆ 中央處理器:
整個(gè)硬件部分以 Arduino Uno R3板為核心,搭配各種傳感器及相應(yīng)配套電路。
◆ 溫濕度傳感器:
本系統(tǒng)采用DHT11傳感器,其供電電壓與 Arduino板的輸出電壓相對(duì)應(yīng)。
◆ 甲醛濃度檢測(cè)傳感器:
選擇檢測(cè)方法為電化學(xué)法的DS-HCHO數(shù)字式傳感器。
DS-HCHO 引腳說(shuō)明:
◆ 光照強(qiáng)度傳感器:
選用TSL2561 傳感器,實(shí)現(xiàn)自行編程設(shè)置光照閾值,當(dāng)實(shí)際光強(qiáng)超過(guò)閾值時(shí)能夠產(chǎn)生中斷信號(hào)。
◆ 二氧化碳濃度傳感器:
采用MG811的檢測(cè)傳感器,可探測(cè)的濃度范圍為 0 到 10000ppm,具有溫度補(bǔ)償功能,能夠?qū)崿F(xiàn)全溫度范圍下檢測(cè)二氧化碳濃度。
◆ 水泵開(kāi)關(guān)電路設(shè)計(jì):
選用電磁式的繼電器,輸入電流只需要 5V 直流電流,可以對(duì) 220V、10A 交流的電路進(jìn)行控制,與 Arduino 板搭配使用很合適,其接線示意圖如圖所示。
◆ WiFi電路設(shè)計(jì):
本系統(tǒng)采用樂(lè)鑫的 esp8266 芯片作為 WiFi 通信芯片。
ESP8266 引腳說(shuō)明:


系統(tǒng)軟件程序設(shè)計(jì)
1、溫濕度檢測(cè)程序
引用了DHT11庫(kù)文件后的驅(qū)動(dòng)程序編寫(xiě)如下:
//引用 DHT11 的庫(kù)文件#include <DHT11.h> //創(chuàng)建實(shí)例化對(duì)象DHT11 DHT;//定義 2 號(hào)引腳為溫濕度測(cè)量的引腳#define DHTPIN 2//設(shè)置波特率為 9600void setup(){Serial.begin(9600);}//循環(huán)函數(shù)void loop(){//將讀取到的值賦給 ckint ck = DHT.read(DHTPIN);//若無(wú)問(wèn)題就打印 OK if (ck == DHTLIB_OK){Serial.println(“OK”);}//出現(xiàn)校驗(yàn)和錯(cuò)誤else if(ck == DHTLIB_ERROR_CHECKSUM){Serial.println(“CHECKSUM ERROR”);}//出現(xiàn)超時(shí)錯(cuò)誤else if(ck == DHTLIB_ERROR_TIMEOUT){Serial.println(“TIMEOUT ERROR”);}//出現(xiàn)未知錯(cuò)誤 else{ Serial.println(“UKNOWN ERROR”)}//打印溫度及濕度值Serial.println(“Temperature: ” + DHT.temperature);Serial.println(“Humidity(%):” + DHT.humidity);//延時(shí) 1000 毫秒開(kāi)始下一次循環(huán)delay(1000);}
2、甲醛濃度檢測(cè)程序
分析清楚傳感器通信格式后,可編寫(xiě)代碼如下:

參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw

3、光照強(qiáng)度檢測(cè)程序
TSL2561傳感器能夠?qū)⒐鈴?qiáng)直接轉(zhuǎn)換為數(shù)字信號(hào)輸出,其具體傳輸流程如下所示:
其部分程序代碼如下:
參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw

4、二氧化碳濃度檢測(cè)程序
基于二氧化碳傳感器相關(guān)變量的對(duì)應(yīng)關(guān)系,可以設(shè)計(jì)二氧化碳濃度檢測(cè)程序,部分代碼如下:

參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw

6、WiFi連接程序
Wi-Fi 模塊作為連接客戶(hù)端與 Arduino 平臺(tái)的中間模塊,在程序上選擇刷入機(jī)智云的固件,這樣的好處在于能使用機(jī)智云的云平臺(tái)服務(wù),具體內(nèi)容會(huì)在后續(xù)介紹。
系統(tǒng)服務(wù)端及移動(dòng)端設(shè)計(jì)
本系統(tǒng)的軟件部分可為服務(wù)端與移動(dòng)端,系統(tǒng)服務(wù)端采用機(jī)智云物聯(lián)網(wǎng)云平臺(tái),移 動(dòng)端基于機(jī)智云的 Android SDK 進(jìn)行深度二次開(kāi)發(fā)設(shè)計(jì)。
1、服務(wù)端設(shè)計(jì)
◆ 機(jī)智云物聯(lián)網(wǎng)云平臺(tái)介紹
機(jī)智云提供一站式的物聯(lián)網(wǎng)服務(wù)平臺(tái),包含硬件開(kāi)發(fā)及云服務(wù),并且面向個(gè)人及企業(yè)開(kāi)發(fā)者,開(kāi)發(fā)者通過(guò)物聯(lián)網(wǎng)云平臺(tái),可以實(shí)現(xiàn)從硬件開(kāi)發(fā)到應(yīng)用開(kāi)發(fā)及云端開(kāi)發(fā)的功能,其云平臺(tái)的架構(gòu)如下所示。
◆ 設(shè)備接入設(shè)計(jì)
機(jī)智云提供多種硬件設(shè)備接入方案,例如購(gòu)買(mǎi)官方開(kāi)源套件就可自動(dòng)實(shí)現(xiàn)接入云端,也可通過(guò)將 GAgent 固件燒錄進(jìn) WiFi模組中,從而實(shí)現(xiàn)與機(jī)智云平臺(tái)的連接。
GAgent 固件可以看作是一款運(yùn)行在通信模塊中的軟件,提供模塊與上層應(yīng)用(包括移動(dòng)客戶(hù)端及云端等)的雙向通信,無(wú)需關(guān)注通信的具體協(xié)議及細(xì)節(jié),也不需要進(jìn)行專(zhuān)門(mén)的 TCP傳輸設(shè)計(jì)。
考慮到本系統(tǒng)以 Arduino 板為核心,以 ESP8266 為通信模塊,完美契合機(jī)智云給出的解決方案中燒錄固件的形式,因此,本系統(tǒng)采用燒錄固件的方案、
具體接入步驟如下:
►在機(jī)智云官方網(wǎng)站上找到所需的固件資源,選擇與通訊模塊相匹配的 GAgent 固件及燒錄軟件進(jìn)行下載,選即擇第二個(gè)GAgent for ESP8266 進(jìn)行下載,如圖 所示。
►下載燒寫(xiě)軟件工具:https://www.espressif.com/zh-hans/support/download/other-tools
►將 WiFi 模塊與 USB 轉(zhuǎn) TTL 模塊相連接,進(jìn)入燒錄模式,需要注意的是,在進(jìn)入燒錄模式后,USB 轉(zhuǎn) TTL 模塊提供的電壓已無(wú)法滿足 WiFi 模塊的供電需求,此時(shí)需要有外部電源對(duì) WiFi 模塊提供 3.3V 的電壓,兩個(gè)模塊具體的接線如圖所示。
►具體而言就是兩個(gè)模塊的 TX 與 RX 交叉連接,外部電源正極與 Wi-Fi 模塊的 VCC 及 EN相連,外部電源的負(fù)極與 Wi-Fi 模塊的 IO0、IO2、GND 及轉(zhuǎn)串模塊的 GND 相連,在RST 于 GND 之間連接一個(gè)開(kāi)關(guān)。
►在硬件電路連接好,需要用到的軟件及固件都下載好后,打開(kāi)燒錄軟件,依據(jù)說(shuō)明選擇相應(yīng)的選項(xiàng),點(diǎn)擊 START 鍵后按下復(fù)位開(kāi)關(guān)即可開(kāi)始進(jìn)行燒錄,最后燒錄成功后如圖所示。
►創(chuàng)建產(chǎn)品:接下來(lái)在機(jī)智云平臺(tái)創(chuàng)建一個(gè)產(chǎn)品,命名為“智能植物墻”,技術(shù)方案選擇 WiFi方案,數(shù)據(jù)傳輸方式為定長(zhǎng),完成創(chuàng)建后如圖所示。
►下一步是設(shè)置數(shù)據(jù)點(diǎn),所謂數(shù)據(jù)點(diǎn)即是希望系統(tǒng)采集或者控制的數(shù)據(jù),讀寫(xiě)類(lèi)型分為只讀與可寫(xiě)兩類(lèi),數(shù)據(jù)類(lèi)型分為數(shù)值與布爾值等,本系統(tǒng)設(shè)置了六個(gè)數(shù)據(jù)點(diǎn),如表所示。
►在機(jī)智云平臺(tái)上創(chuàng)建數(shù)據(jù),完成后如圖所示。
►設(shè)置好數(shù)據(jù)點(diǎn)后進(jìn)入 MCU 開(kāi)發(fā)環(huán)節(jié),選擇獨(dú)立 MCU 方案,硬件平臺(tái)選擇Arduino UNO R3,如圖所示。
►填寫(xiě)產(chǎn)品密鑰,產(chǎn)品密鑰在產(chǎn)品基本信息一欄,是作為 APP 開(kāi)發(fā)和服務(wù)器對(duì)接時(shí)需要使用的參數(shù),如圖所示。
►輸入密碼后即可顯示完整密鑰,然后復(fù)制粘貼即可。完成后點(diǎn)擊生成代碼包,稍等片刻即完成,如圖所示。
2、移動(dòng)端設(shè)計(jì)
關(guān)于移動(dòng)APP的設(shè)計(jì),可以采用基于機(jī)智云開(kāi)源框架二次開(kāi)發(fā)設(shè)計(jì)智能控制系統(tǒng)APP。
從實(shí)際需求出發(fā),移動(dòng)端應(yīng)該具有以下幾個(gè)功能:
① 用戶(hù)注冊(cè)及登錄:智能植物墻系統(tǒng)作為一個(gè)物聯(lián)網(wǎng)項(xiàng)目,對(duì)每個(gè)用戶(hù)而言,基于信息保密原則需要有自己的賬號(hào),賬號(hào)與設(shè)備一一對(duì)應(yīng),因此用戶(hù)注冊(cè)及登錄功能必不可少;
② 設(shè)備綁定與解除綁定:用戶(hù)在登錄移動(dòng)端后首先需要做的就是與自己的設(shè)備進(jìn)行綁定,以便進(jìn)行下一步的操作,在綁定了設(shè)備后還需要能夠解綁;
③ 數(shù)據(jù)采集及設(shè)置:與設(shè)備綁定后需要能夠?qū)崿F(xiàn)實(shí)時(shí)顯示采集到的數(shù)據(jù),并且能夠控制硬件設(shè)備。
移動(dòng)端完整的工作流程如下:
點(diǎn)擊移動(dòng)端,展示歡迎界面,調(diào)用登錄接口讓用戶(hù)通過(guò)注冊(cè)或者直接登錄的方法登錄移動(dòng)端,設(shè)備提前接入網(wǎng)絡(luò),調(diào)用設(shè)備綁定接口在移動(dòng)端配置設(shè)備并與之綁定,綁定設(shè)備完成后,展示設(shè)備列表,點(diǎn)擊具體綁定的設(shè)備,實(shí)時(shí)查看當(dāng)前數(shù)據(jù),并能與設(shè)備進(jìn)行交互。
移動(dòng)APP端的登錄及注冊(cè)界面效果:
最終完整配置流程界面:
在完成設(shè)備的綁定后該設(shè)備就會(huì)出現(xiàn)在移動(dòng)端中,需要對(duì)云端返回的設(shè)備采集到的數(shù)據(jù)進(jìn)行可視化處理,設(shè)計(jì)展示界面及開(kāi)關(guān)控制功能。
最終的參數(shù)查詢(xún)及控制界面:
其部分程序代碼如下:
  • 參考原文:https://mp.weixin.qq.com/s/A3GgcayTV23xf_dVWB1AVw


  • 系統(tǒng)設(shè)計(jì)總結(jié)

基于Android +機(jī)智云平臺(tái)的室內(nèi)植物墻智能控制系統(tǒng)由植物墻、硬件電路及移動(dòng)控制端等組成,通過(guò)市場(chǎng)調(diào)研確定植物墻的設(shè)計(jì)方案,以 Arduino 作為硬件平臺(tái)并輔以各類(lèi)傳感器,組成環(huán)境信息探測(cè)采集系統(tǒng)。
以ESP8266 為 Wi-Fi 芯片并刷入機(jī)智云固件,作為橋梁將硬件系統(tǒng)與機(jī)智云平臺(tái)相連接。以 Android 平臺(tái)作為移動(dòng)端的選擇,以機(jī)智云開(kāi)源框架為基礎(chǔ)設(shè)計(jì)移動(dòng)端,以實(shí)現(xiàn)對(duì)硬件系統(tǒng)的遠(yuǎn)程控制。在實(shí)時(shí)監(jiān)測(cè)室內(nèi)環(huán)境數(shù)據(jù)的同時(shí)遠(yuǎn)程控制水泵灌溉開(kāi)關(guān),降低了綠植養(yǎng)護(hù)的難度,提高了綠植養(yǎng)護(hù)的樂(lè)趣。
設(shè)計(jì)完善的植物墻養(yǎng)護(hù)植物圖:
由于繼電器端口的原因,水泵無(wú)法直接與之相連,因此用一個(gè)改裝過(guò)的插座來(lái)代替,通過(guò)繼電器控制插座的通斷電從而控制插在插座上的水泵,以此起到開(kāi)關(guān)的作用。
完整的硬件電路連接圖:
將項(xiàng)目代碼編譯打包運(yùn)行,通過(guò) Android Studio 的調(diào)試功能將生成的完整移動(dòng)端安裝到手機(jī)上并打開(kāi),如圖所示從左到右依次為移動(dòng)端下載安裝完成圖、移動(dòng)端打開(kāi)后歡迎頁(yè)、登錄頁(yè)、點(diǎn)擊跳過(guò)后移動(dòng)端內(nèi)容頁(yè),即為移動(dòng)端首次運(yùn)行的頁(yè)面。
測(cè)試注冊(cè)及登錄功能圖:
在經(jīng)過(guò)配置——選擇無(wú)線網(wǎng)絡(luò)——選擇無(wú)線模組——搜索設(shè)備并連接的流程后,在移動(dòng)端中出現(xiàn)了“智能植物墻”這一設(shè)備,這表明設(shè)備能夠順利完成與移動(dòng)端的綁定操作。
測(cè)試綁定后的設(shè)備實(shí)現(xiàn)遠(yuǎn)程查看數(shù)據(jù)并控制水泵開(kāi)關(guān)。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表