概述
智能燈,是一個簡單常見的智能產品,硬件電路簡單,程序本身也不復雜;下面我們使用esp8266開發板和機智雲雲端,實現如何將一個傳統的燈泡,改造成可以遠程控制開關的智能燈。
1、准備工作
硬件:
(1)esp8266開發板
(2)usb線
軟件:
(1)esp8266開發環境 eclipse IDE
(2)Vmwave 虛擬機 linux
2、開始開發
2.1 注冊開發者賬號
機智雲開發者賬號,用於產品接入、設備管理、OTA服務、MCU開發等的功能使用。
注冊鏈接:http://dev.gizwits.com/zh-cn/developer/
2.2新建產品
注冊完成后,登陸至機智雲開發者中心后台后,點擊開發者中心后台右上角的“創建新產品”菜單,在跳轉頁面新建一個名為“LED燈”的產品,選擇“Wi-Fi/移動網絡方案”方式接入,並完成產品創建。如下圖:
2.3 新建數據點
本次的項目“LED燈”,它需要實現的功能是遠程開燈和關燈,那我們只需在雲端建立一個“布爾值”的數據點即可完成這件事,如下圖:
添加數據點完成之后,點擊“應用”,即可完成整個產品的數據點的新建工作。
2.4 雲端生成代碼
如圖,左邊菜單欄選擇MCU開發,需要填寫的Product Secret看下面
如圖,左邊菜單欄選擇基本信息,點擊顯示完整密鑰就行了
下載代碼包
2.5 修改代碼
在如下目錄導入rgb的.c和.h文件
在主函數下初始化rgb燈
設置回調函數
smartconfig 按鍵配網,長按和短按RGB顏色反饋
修改app/Gizwits/gizwits_product.c 下的 gizwitsEventProcess
在之前設置的數據點(EVENT_)對應的case下添加代碼
代碼修改就完成了
還有一些細節如聲明頭文件就不發出來了,各位自行添加
2.6 編譯
因為電腦使用的x86編譯器生成的機器碼是無法在esp8266上運行的,需要交叉編譯工具鏈編譯,所以要在虛擬機LINUX系統上進行
具體操作參考機智雲的開發平台搭建,這里就不再贅述
注意事項:
要使當前編譯的環境變量生效,執行source /etc/environment,這樣在當前命令行終端下該編輯的環境變量有效,換個命令行終端就無效了!當然更好的方式就是重啟系統了
檢查編譯器
1、cd ~
2、執行echo $PATH,查看當前環境變量,是否已經存在/opt/xtensa-lx106-elf/bin。
3、在命令行終端執行xtensa-lx106-elf-gcc -v,如可看到版本號,表示當前交叉編譯器安裝成功
如圖表示編譯完成
2.7 燒寫固件
下載燒寫軟件
https://www.espressif.com/sites/default/files/tools/flash_download_tools_v3.6.4.rar
esp_init_data_default.bin 0x3fc000
blank.bin 0x3fe000
boot_v1.6.bin 0x00000
user1.4096.new.6.bin 0x01000
開發板進入燒錄方式
如圖,開關撥到下載位置,開發板關閉
點擊燒錄軟件的開始按鈕后,給開發板上電
燒錄完畢后記得將開關撥回運行
bin 文件的燒錄地址看下面
2.8設備開始連接雲
下載配網APP
到這個網址去下載app用來給esp8266配網,ios還是安卓看個人手機
https://download.gizwits.com/zh-cn/p/98/99
登陸開發者賬號
軟件需要登陸的,就先前創建的賬號
設備配網
如下面幾個圖操作
開發板調至待連接狀態:長按smartconfig鍵,直到rgb燈變綠
設備已連接
遠程控制LED燈
至此,實現了手機遠程控制LED燈
剛開始會遇到各種各樣的問題
比如手機連不上開發板,檢查rgb燈是否變綠,家里wifi是否正常,注意:5G wifi是無法連接上esp8266的
還有ununtu修改了環境變量后重啟顯示空白桌面的情況,要重新安裝gnome
等等等等。。
加油,共勉吧