免费包邮开发板赠送!安信可蓝牙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文章
23252浏览量
660597 -
开发板
+关注
关注
25文章
5033浏览量
97377 -
wifi模块
+关注
关注
60文章
379浏览量
73474
发布评论请先 登录
相关推荐
外设移植 安信可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)
机智云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)
【Longan Pi 3H 开发板试用连载体验】基于 Longan Pi 3H 开发板完成智能家居控制小型项目
安信可Ai-WB2系列模组/开发板连接AWS亚马逊云
![安信可<b class='flag-5'>Ai-WB2</b>系列模组/<b class='flag-5'>开发板</b>连接AWS亚马逊云](https://file1.elecfans.com//web2/M00/BD/B6/wKgaomWmIeOAENdnAAJvgLI4jTU210.png)
评论