本帖最后由 业余菜狗 于 2023-10-7 15:26 编辑
用安信可的开发板和模组DIY了一个人体存在感应器,人体感应用的是RD03模组,加上一个WB2实现无线传输,
运行原理是:RD03识别到有人时,out引脚输出高电平给WB2,然后WB2发送有人的信号给HA,从而实现一些自动化操作.整个代码比RGB灯简单,只需要上报状态,不用接收,还是用的IO输入
一.WIFI和MQTT
先创建一个任务,在这里面连接WIFI和MQTT,代码都是抄的demo我也看不懂,就不解释了.值得注意的是,在没有连上MQTT时,其它任务都需要暂停,我是设置了一个全局变量,然后在别的任务里面while这个变量.
二.雷达模组
将RD03的out连接在WB2的IO12上面(我这是随便找了个IO,可通过代码修改),RD03在设别到有人时,out会输出高电平,然后WB2这边设定IO输入,当电平发生变化的时候就发送一个mqtt给HA.
三.红外模组
红外感应和雷达的代码是一样的,就是mqtt发送的主题和IO不一样,本来以为加上了红外感应,以防雷达误触,结果红外倒是经常误触.
四.环境亮度
本来是想再加上亮度感应的,但是ADC没搞定,就没加,有点遗憾,哪位大佬研究一下?
五.定时上报状态
加这个任务,主要是防止HA在重启之后会识别不到WB2,所以定时上报一下当前状态,给HA识别.
整个是放在面包板上面的,看上去不怎么美观
外形
自动接入HA
HA_MQTT
设备界面
接入HA之后可以查看历史记录
记录
最后附上代码:
解压到Ai-Thinker-WB2/applications/protocols/mqtt/文件夹下执行 make -j8 编译
|
|