【零基础】一起DIY智能家居 篇六:红外+雷达双判断人体存在传感器设计
追加修改(2022-09-15 08:11:23):
有TX需要LD2410的驱动和配置
我也放在gitee里面了,欢迎自取,有问题留言即可
LD2410驱动文件
https://gitee.com/sonata1/esphome/raw/master/%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94%E9%9B%B7%E8%BE%BE/LD2410.h
LD2410esphome代码
https://gitee.com/sonata1/esphome/blob/master/%E4%BA%BA%E4%BD%93%E6%84%9F%E5%BA%94%E9%9B%B7%E8%BE%BE/esphome_LD2410.yaml
前言:
最近看了下网上的人体存在DIY文章。大多硬件搭配都是感应雷达+门磁
个人觉得espC3+环境光+红外+毫米波更合理
红外+毫米波双保险防止误判
而且功耗更低
环保一点,毕竟毫米波雷达发热也挺厉害的
硬件搭配
主板:wroom
环境光传感器:BH1750 Illuminance
红外传感器:sr-602
24GHz毫米波雷达:cem5825f
cem5825f和最近比较热的LD2410最主要的区别是功耗低
我试了下3.3v 工作电流60ma 功率200mw
LD2410只能5v以上,功率350mw左右
其实LD2410也一样用
只不过设计有3.3v需求,就选了cem5825f
接线和设计思路
焊接导线
这款模块没有自带排针
也不是标准排针间距
先把双公头杜邦线一段剪掉剥5mm左右导线
点上适量的锡膏后用烙铁依次加热即可
最后用指甲钳去掉多余铜线就可以用了。
逻辑思路
红外传感器检测到人后先判断环境亮度
低于设定亮度开启雷达判断人的位置
距离过远关灯关雷达
流程图如下
测试过程我发现雷达波似乎可以被墙面反射
实际使用用小于设定距离或者多雷达协作更不容易误判
看图比较直观
接线uart i2c前面都讲过了
这里就不赘述了
本来想直接用eps32的gpio给雷达供电
后来发现所需电流超过针脚限定值(限流30-40ma)
那就只能从3.3v直接取电用继电器控制了
3.3v的继电器暂时手头只有这个双刀双掷的
先对付着测试吧
只用1、8 6、5针脚就行
18通电 65跟着也接通
这个继电器太小 ,只能劈个叉插在面包板上了
继电器部分模拟接线图如下
我还用了个红色发光二极管模拟灯具
实际接线图如下
线有点乱糟糟,实际应用还是自己画个pcb打板好一点
如果想直接接入米家
把发光二极管换成米家门磁就可以了(个人觉得没必要)
代码
之前讲过的部分略过
说说感应雷达部分
这里直接用hassbian大佬发的驱动文件
需要注意的是在文件开头name后面加载驱动模块 UartReadLineSensor.h文件
附上驱动文件
如果是跟着篇一装的docker版 直接用下面命令就可以了
其他安装位置的下载到和yaml文件相同目录即可
wget -P /home/esphome https://gitee.com/sonata1/esphome/raw/master/人体感应雷达/UartReadLineSensor.h
由于代码200多行大家直接看源文件吧
复制粘贴到配置文件后面
tx_pin:和 rx_pin修改成自己接的针脚的就可以了
https://gitee.com/sonata1/esphome/raw/master/人体感应雷达/UartReadLineSensor.h
更新固件后HA的界面如下
然后结合篇5讲的逻辑判断就可以多条件控制灯具了
这里附上关灯的关键代码
above 后面改成自己想要的数值就行了
想小于多少关灯就把above换成below
代码片段
https://gitee.com/sonata1/esphome/raw/master/人体感应雷达/cem5825f+pir.yaml
代码所用针脚
效果测试
总结
本文没有介绍HA里面创建条件判断
本示例还有很多可以优化的地方,比如:
红外+雷达同时判断有人再开灯;手动开灯优先级;多雷达协同判断距离;距离大于xx持续xx秒以后再关灯
这些都可以在HA里很方便的添加条件
网页界面鼠标点点就可以
如有大家有需求回头单独开一篇再讲
大家可以尝试参考篇5视频自己在HA创建一个自动化脚本
、
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
afeuzhjq
校验提示文案
afeuzhjq
校验提示文案
soul0700
校验提示文案
mu0lang
校验提示文案
mu0lang
校验提示文案
soul0700
校验提示文案
afeuzhjq
校验提示文案
afeuzhjq
校验提示文案