当前位置:
文章详情

红外+雷达双判断人体存在传感器设计

2022-09-14 18:25:05 8点赞 76收藏 5评论

追加修改(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

GY-302GY30数字光强度光照传感器BH1750FVI模块代码5.8元天猫精选去购买微型SR602人体感应模块热释电人体红外传感器探头开关灵敏度高3.65元天猫精选去购买24GHz毫米波雷达模块国产精准人体感应传感器萤火工场CEM5825F33.8元天猫精选去购买


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创建一个自动化脚本




作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
5评论

  • 精彩
  • 最新
  • 这个雷达驱动,LD2410可以用吗?

    校验提示文案

    提交
    LD2410的驱动文件和配置我也放在gitee里面了,欢迎自取,有问题留言即可

    校验提示文案

    提交
    收起所有回复
  • 学习一下

    校验提示文案

    提交
  • 动手能力太强

    校验提示文案

    提交
  • sr602距离太近

    校验提示文案

    提交
提示信息

取消
确认
评论举报

最新文章 热门文章
76
扫一下,分享更方便,购买更轻松