免費包郵開發板贈送!安信可藍牙5.2低功耗開發板免費申請啦_嗶哩嗶哩_bilibiliwww.bilibili.com/video/BV1UgSiY1EP9/?spm_id_from=333.999.0.0&vd_source=54c5db21948db2378659b7e8e42bafbf
安信可技術論壇官方B站賬號來啦
提前關注不迷路
在這里優先預告各類活動、教程
以下作品由安信可社區用戶
業余菜狗制作
大家是不是經常看到各種彩色的小燈
bingbing的五顏六色很吸引人
今天用WB2開發板做了一個能加入HA的全彩LED小夜燈
來看看主要的教程
連接WiFi
先對Ai-Thinker-WB2/applications/protocols/mqtt/tcp/例程進行編譯,編譯成功后,燒錄到板子上面去。
上電之后先確認板子有沒有連上WiFi,這個在路由器后臺可以看到,之后在mqtt服務器后天查看WB2是不是有連接上MQTT服務器,沒連上!為啥?哦~~~忘了改代碼里面的MQTT服務器IP了。(這里服務器地址不包含"mqtt://"的前綴,只是純IP地址)
再次編譯上傳,從mqtt服務器后臺可以看到WB2連上mqtt服務器了。
這里用的是emqx的開源服務器,可以在服務器里面看到有訂閱一個主題,嘗試向這個主題發送一個信息,然后用調試器看WB2輸出。
這里順帶一提默認波特率是115200,燒錄器默認的波特率是2000000,要改。
從WB2串口輸出,發現WB2收到的mqtt是在一個看不懂的函數里面執行的,里面執行的代碼就是把收到的主題和信息打印出來.順帶把訂閱和發送的函數也找到了。
遠程點亮LED
那就在處理信息這里改,改成判斷收到的信息是不是"ON"或者"OFF",如果是,那就開啟或關閉LED(這里的判斷,出了很多問題,在妖哥個幫助下,抄了一個arduino的代碼才成功判斷)。
因為要LED亮起來,程式到這里也就加上了Ai-Thinker-WB2/applications/get-started/blink/里面的閃燈代碼。
加上pwm調整亮度
光亮起來,明顯是不夠的,明顯還需要加上一個pwm程式來調節LED的亮度,這里就把blink里面的代碼刪除,換成Ai-Thinker-WB2/applications/peripherals/demo_pwm/里面的代碼,這里面的代碼正好是控制那個板載LED的RGB.不過我嫌pwm的代碼太繁瑣,就給它封裝了一個RGB.h庫丟那里讓我引用就可以了,庫里面就一個函數:RGB(R,G, B, BL),這個函數有4個參數,分辨是顏色參數的RGB的值和亮度值。
但是新的問題來了,mqtt收到的信息是字符串,但是RGB需要的參數是數值,比如收到的信息是"255,0,0",需要分割成255,0,0三個數值。
我在網上找了一大圈,最后用了個笨方法把收到的信息進行歷遍分解,這樣代碼就很長很不好看,不過后面在群友的幫助下,用了個函數分解出來了。
到現在為止,已經可以用mqtt方式無線控制LED的顏色、亮度和開關了。
不過這樣還是有個問題,就是在斷電重新上電之后LED的顏色、亮度和開關狀態都會被重置,需要有個地方儲存這些參數。
存儲數據到flash
在WB2上電后還沒有連上WiFi和mqtt服務器的這段時間,沒有接收到參數,不會亮的。
所以需要把數據存在WB2上,然后就找到了Ai-Thinker-WB2/applications/storage/easyflash/這個demo,把這個demo改一下也加入到我們的代碼中來。
然后設定程式,在啟動的時候從WB2flash中讀取出數據,在去連接WiFi和mqtt,也需要在每次收到命令時將數據存到flash里面。
總結
制作過程的全過程大致就是這樣了,總結一下代碼流程:
上電--->讀取flash--->點亮LED--->連接WiFi和mqtt--->訂閱設置主題--->處理收到信息--->更新LED狀態--->上傳LED狀態--->保存LED狀態到flash
看看演示效果:
玩過HA的都知道設備一旦加入了HA,那么它就具有巨大的可玩性,即使只是一個LED。
這是亮度調節
這是顏色調節
可以直接輸入參數
審核編輯 黃宇
-
led
+關注
關注
242文章
23355瀏覽量
663156 -
開發板
+關注
關注
25文章
5121瀏覽量
98189 -
wifi模塊
+關注
關注
60文章
380瀏覽量
73766
發布評論請先 登錄
相關推薦
【貝啟科技BQ3568HM開源鴻蒙開發板深度試用報告】2 - 智能家居中控屏界面設計:打造便捷的家居控制體驗
智能家居迎來AI場景化,AI芯片加速迭代
安信可Ai-WB2系列的優勢是?一秒讀懂!
外設移植 安信可Ai-WB2-32S開發板+TM1637 NTP時鐘
![外設移植 安信可<b class='flag-5'>Ai-WB2</b>-32S<b class='flag-5'>開發板</b>+TM1637 NTP時鐘](https://file1.elecfans.com//web2/M00/08/9C/wKgaombyXD6Ad5ZaAAAJ02uBSJ0427.png)
智能家居之旅(15):HA傳感器采集主板低功耗設計的遭遇
![<b class='flag-5'>智能家居</b>之旅(15):HA傳感器采集主板低功耗設計的遭遇](https://file1.elecfans.com//web2/M00/05/54/wKgZombZFxKAI7_sAABnhaoHtUw37.jpeg)
linux開發板與樹莓派的區別
機智云ESP8266開發板RGB彩燈控件
![機智云ESP8266<b class='flag-5'>開發板</b>RGB彩燈控件](https://file.elecfans.com/web2/M00/40/03/pYYBAGJrSWqAb-nSAAAXmKtCFeo833.jpg)
如何用一塊免費的PCB板完成2元USB小夜燈控制器?
![如何用一塊免費的PCB<b class='flag-5'>板</b>完成<b class='flag-5'>2</b>元USB<b class='flag-5'>小夜燈</b>控制器?](https://file1.elecfans.com//web2/M00/FF/52/wKgZomaoUOeAeF0SAABaNA9L1ok12.jpeg)
安信可Ai-WB2系列模組/開發板連接AWS亞馬遜云方法
![安信可<b class='flag-5'>Ai-WB2</b>系列模組/<b class='flag-5'>開發板</b>連接AWS亞馬遜云方法](https://file1.elecfans.com/web2/M00/B2/78/wKgaomVtd6KAfnb3AAA2-gyc3Ao368.png)
打卡智能家居之旅(2):設備接入HomeAssistant的方法
![打卡<b class='flag-5'>智能家居</b>之旅(<b class='flag-5'>2</b>):設備接入HomeAssistant的方法](https://file1.elecfans.com//web2/M00/ED/44/wKgaomZiZCCAAP1SAADFBOcfn1E89.jpeg)
智能家居系統的開發-基于米爾瑞薩RZ/G2UL開發板
![<b class='flag-5'>智能家居</b>系統的<b class='flag-5'>開發</b>-基于米爾瑞薩RZ/G<b class='flag-5'>2</b>UL<b class='flag-5'>開發板</b>](https://file.elecfans.com/web2/M00/08/64/pYYBAGDwFEGADIPWAAFlJOlmLxg664.jpg)
安信可Ai-WB2系列模組/開發板連接AWS亞馬遜云方法
![安信可<b class='flag-5'>Ai-WB2</b>系列模組/<b class='flag-5'>開發板</b>連接AWS亞馬遜云方法](https://file1.elecfans.com//web2/M00/C9/99/wKgaomYeLlGAbcyYAADhzlVOpVQ21.jpeg)
評論