智能雨林缸,顧名思義,是指在魚缸內(nèi)養(yǎng)雨林植物,與傳統(tǒng)的水族缸不同的是智能雨林缸,具備的功能更多,能夠自動(dòng)調(diào)節(jié)光照、溫濕度等環(huán)境因素,讓植物生長(zhǎng)的更好。
本次通過ESP8266和機(jī)智云,進(jìn)行PCB設(shè)計(jì),以最低成本自己開發(fā)智能控制器,實(shí)現(xiàn)智能雨林缸智能監(jiān)測(cè)溫濕度,通過手機(jī)App遠(yuǎn)程控制照明、噴水、噴霧、風(fēng)扇調(diào)節(jié),與此同時(shí)還設(shè)有手機(jī)控制功能、自動(dòng)調(diào)節(jié)功能,以便更好的照顧雨林植物。
一、硬件部分
可以自己購買4路繼電器,及防水溫度傳感器DS18B20探頭,ESP12S小系統(tǒng)板。
繼電器:GPIO13(加熱管)GPIO12(循環(huán)電機(jī))GPIO16(噴淋電機(jī))GPIO5(燈光)配網(wǎng)按鍵:GPIO14(按下低電平)溫度傳感器:GPIO4(傳感器需要上拉電阻)?? ? ? ?
二、軟件部分1、在機(jī)智云自助開發(fā)平臺(tái)創(chuàng)建“智能雨林缸”產(chǎn)品,登錄dev.gizwits.com,創(chuàng)建產(chǎn)品
?? ? ? ?
2、創(chuàng)建數(shù)據(jù)功能點(diǎn)。為后MCU代碼移植、App控制提供基礎(chǔ)。
?? ? ? ?
?? ? ? ?
3、生成基于ESP8266 SOC方式的代碼包,以便后續(xù)代碼移植
? ??
三、APP開發(fā)使用機(jī)智云進(jìn)行APP開發(fā)有多種方式,諸如使用機(jī)智云開源框架、機(jī)智云代碼自動(dòng)生成工具,這兩種方式涉及到Java語言或Swift語言,我未選用。
而是采用了機(jī)智云賽博坦工具,無代碼,只需要進(jìn)行在線配置就能開發(fā)出一款個(gè)性化的App。具體而言需要進(jìn)行如下操作。
3.1 通過dev.gizwits.com 切換至機(jī)智云新版開發(fā)平臺(tái),創(chuàng)建【移動(dòng)應(yīng)用】
?? ? ? ?
3.2 創(chuàng)建好移動(dòng)應(yīng)用后,關(guān)聯(lián)設(shè)備到移動(dòng)應(yīng)用里面。其他參數(shù)根據(jù)自己需求進(jìn)行更改
?? ? ? ?
3.3 之后,回到機(jī)智云新版開發(fā)平臺(tái)主頁,選擇自己創(chuàng)建“智能雨林缸”,然后進(jìn)入如下頁面。將【產(chǎn)品開發(fā)-模組信息】:配置成樂鑫模組,注意只需要修改模組就行,熱點(diǎn)參數(shù)無需更改。
?? ? ? ?
3.4 接下來,進(jìn)入【應(yīng)用頁面-控制頁面】:進(jìn)行App頁面修改,可以根據(jù)自己需求設(shè)置好控制模塊的大小以及圖標(biāo)。其余參數(shù)根據(jù)自己的需求修改。注意:每個(gè)頁面都需要保存。
?? ? ? ?
?? ? ? ?
3.5 App控制頁面定義完成后,接下來需要進(jìn)行參數(shù)配置,點(diǎn)擊【構(gòu)建應(yīng)用】,進(jìn)行應(yīng)用【應(yīng)用證書】配置,最后再進(jìn)行【應(yīng)用構(gòu)建】 ?? ? ? ?
當(dāng)應(yīng)用構(gòu)建“成功”后,可以下載此App安裝到手機(jī)上。這樣一個(gè)個(gè)性化的“智能雨林缸”App就開發(fā)完成了。
四、ESP8266接入機(jī)智云這是進(jìn)行開發(fā)的最重要的步驟之一。為了讓“智能雨林缸”的控制器具有聯(lián)網(wǎng)功能,讓App能夠?qū)崿F(xiàn)遠(yuǎn)程控制,需要對(duì)基于ESP8266 SOC方案生成的代碼包進(jìn)行移植,最后要將移植后的代碼燒寫至ESP8266上。
由于涉及的代碼較多,我只進(jìn)行簡(jiǎn)要說明,更具體的操作步驟、代碼請(qǐng)參考博客 https://club.gizwits.com/thread-166412-1-1.html
先將ESP8266 SOC代碼包進(jìn)行解壓縮,接下來進(jìn)行移植
1、采用IDE方式進(jìn)行開發(fā)編譯:解壓過后即可使用,路徑不能有中文。2、修改編譯參數(shù):打開根目錄下面的Makefile文件,然后修改23到27行的內(nèi)容。3、按鍵部分無需修改,因?yàn)樽詣?dòng)生成的代碼就是gpio14按鍵長(zhǎng)按短按進(jìn)行網(wǎng)絡(luò)配置。但繼電器引腳的初始化我們寫在按鍵函數(shù)的初始化里面, 初始化為輸出模式。4、在gizwits_product.c和gizwits_product.h增加全局變量。5、在gizwits_product.c的gizwitsEventProcess函數(shù)里面對(duì)開關(guān)狀態(tài)進(jìn)行緩存。6、處理斷電開機(jī)之后開關(guān)以及各項(xiàng)參數(shù)的初始化。主要是利用flash讀取獲取參數(shù)。數(shù)據(jù)狀態(tài)存放在flash,后續(xù)教程及程序會(huì)有存儲(chǔ)體現(xiàn)。初始化主要修改userInit函數(shù)。7、在gizwits_product.c新增DS18B20驅(qū)動(dòng)函數(shù)、溫度傳感器的函數(shù)。8、在gizwits_product.c的userHandle函數(shù)里面對(duì)GPIO輸出點(diǎn),溫度采集,flash存儲(chǔ)以及邏輯控制進(jìn)行編寫。9、修改完代碼之后ctrl+B進(jìn)行編譯固件編譯。10、利用樂鑫燒錄軟件將生成的固件燒錄到ESP8266里面。參數(shù)參考下圖,注意參數(shù)不能有錯(cuò)。
下載硬件接線如下表下載模式。
記住通電瞬間就要保持這個(gè)狀態(tài)才是下載模式。
11、程序燒錄完成之后,通過按鍵長(zhǎng)按觸發(fā)airlink配網(wǎng)(或短按觸發(fā)softap配網(wǎng)),在APP選擇對(duì)應(yīng)的配網(wǎng)進(jìn)行網(wǎng)絡(luò)配置及綁定設(shè)備。綁定后進(jìn)入設(shè)備即可進(jìn)行采集和控制。
? ? ? ??
作為水族圈的一員,養(yǎng)過觀賞魚、玩過自然水景,現(xiàn)在自己動(dòng)手做一個(gè)“智能雨林缸”特別有成就感,機(jī)智云和ESP8266的改造成本又低,真是太棒了。
-
控制器
+關(guān)注
關(guān)注
112文章
16419瀏覽量
178799
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論