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