人体红外传感器模块
作者:sonatasss
人体红外传感器原理
感应器上的菲涅尔透镜会按区间的汇聚红外线,形成“盲区”和“高灵敏区”,这样人体移动时候发出的红外线会交替的通过“盲区”和“高灵敏区”照射到热释电材料上以后,就会导致热释电材料产生电位变化,就能判断是否有人体移动因此只能感应移动中的人体,静止是无法判断的
接线
今天还是用esp32 wroom
本文使用sr602模块
接线十分简单正负极和一根输出接在板子上就可以了
我们再添加一个发光二极管模拟如何控制开关灯
发光二极管顾名思义=led灯+二极管
所以长的那个针脚接正极
如果接反了电流是没法通过的
为了防止二极管过载烧毁,我们习惯性串联一个电阻
阻值100-10K欧姆都可以。看手头方便
我们打算通过esp32的针脚来给二极管供电
那么最终接线图就是下面这样
实际接线
手头没有长度合适的红线,所以用黄线当正极了
白色双公头杜邦线接在out针脚
这里接在了端口35上
主板34-39号端口只能输入正好可以用。
发光二极管接在了GPIO14上
为了帮助理解电路。用红线标了下电流走向
两根蓝线接在了主板GND上
分别给面包板左右两侧提供地线
注意发光二极管针脚要横过来
不然就被下面埋的导线短接了
代码编写
流程图
ESPHOME板内逻辑控制
逻辑比较简单,可以省略swtich模块直接用传感器控制灯光
那么只
binary_sensor、ligth、output模块
然后按照官网示例填写即可
和之前的传感器不同
红外传感器在ESPHOME被定义为二进制传感器(binary_sensor)
顾名思义二进制传感器没有具体数值
只有是或非两种状态,
有人或者没人
门开了还是门关着
这种都是二进制传感器
至于light(灯光)
这里用了只有简单开关功能的二级制灯光(platform: binary)
具体解释见代码注释吧
已经尽量描述清楚了
编译安装后HA中就可以看到设备了
但是有一个问题
红外传感器默认触发复位时间是2.5秒
小灯会随着复位自动熄灭
也就是触发一次只亮2.5秒显然不符合需求
尝试在关闭之前添加延迟时间(- delay:时间)
但是只能解决单次触发延时
如果短时间重复触发是不能延长亮灯时间的(参考楼道感应灯)
经过一番百度,找到了实现代码
代码使用了模板匿名函数过滤器延迟关闭等功能
我们不用关心它具体怎么实现的
只需要知道吧对应传感器id(pir_motion)延迟时间填好即可(15s)
编程的秘诀是: 能跑就行,怎么跑起来的不重要
延时代码如下
- platform: template ##引入自动化模板
name: temp_motion ##模板名称
lambda: 'return id(pir_motion).state;'
internal: true
filters:
- delayed_off: 10s ##若触发红外传感器,则延时2min后关闭继电器
我们继续在此基础上添加一个判断环境光的功能
让它在低于一定亮度之下才亮
搜索了下官网文档
判断代码如下
所以最终的代码是
binary_sensor: #二级制传感器模块
- platform: gpio
pin: 35 ##使用GPIO-35
name: "PIR Sensor"
device_class: motion ##传感器类型
id: pir_motion ##设置传感器ID
on_press: #如果检测有人,则执行的动作
then: #然后
- if: #如果
condition: #条件判断
#返回id为illuminance的数值小于30是否为真(bh1750设置的ID)
lambda: 'return id(illuminance).state < 30;'
#如果为真则执行
then:
#打开id为demo_light的灯
- light.turn_on: demo_light
- platform: template ##引入自动化模板
name: temp_motion ##模板名称
#匿名函数 返回ID为pir_motion传感器状态
lambda: 'return id(pir_motion).state;'
internal: true #内部模板HA不可见
filters:
- delayed_off: 15s ##若触发红外传感器,则延时15秒
on_release: #如果检测没人,则执行的动作
#关闭id为demo_light的灯
- light.turn_off: demo_light
#灯光模块
light:
#二进制灯
- platform: binary
name: "body light"
#灯光ID
id: demo_light
#供电ID
output: led_output
#输出模块
output:
#gpio针脚输出
- platform: gpio
pin: 14 #输出针脚
id: led_output #输出ID
log可以看到测试功能正常
至此板内逻辑感应灯可以正常使用了
HA逻辑判断配置
板内控制的优势是可以脱离HA独立运行
比较稳定
缺点是不能和其他设备联动
下面我们再用HA实现一遍
代码删去逻辑判断用基础代码
binary_sensor: #二级制传感器模块
- platform: gpio
pin: 35 ##使用GPIO-35
name: "PIR Sensor"
device_class: motion ##传感器类型
id: pir_motion ##设置传感器ID
#灯光模块
light:
#二进制灯
- platform: binary
name: "body light"
#灯光ID
id: demo_light
#供电ID
output: led_output
#输出模块
output:
#gpio针脚输出
- platform: gpio
#输出针脚
pin: 14
#输出ID
id: led_output
登录HA后
依次点击配置——场景自动化——添加自动化——从空的自动化开始
操作主要是鼠标点点点
有需要的tx看视频操作吧
总结
如果没有环境光传感器
时间或者日出日落来做条件判断也可以
其实环境光传感器更适合自动控制灯具功率
已达到一个合适的室内亮度
实际应用如果想用开发板控制220v灯具
我们还需要继电器或者光耦
这里介绍下继电器
原理很简单 电—磁场—电 实现电路隔离
不过这里墙裂不推荐新手改造强电
可以考虑买现成的通断器
也就20-30这样
这个有机会再展开讲吧
最后附上视频
殳念忽3942我选用的一个人体红外传感器模块,说是电平输出(高3.3 V /低0V ),请问可以用单片机直接检测这个个高电
皮超追15823708084 ______ 这个信号是可以直接用单片机检测的,不过最好是在引脚上加上上接电阻.看一看红外的资料,上面应该会有红外的典型应用电路,希望你成功.
殳念忽3942人体红外感应模块HC - SR501 为什么会爆炸 -
皮超追15823708084 ______ MCR100-8是单向可控硅 使用继电器 将高低压隔离稳妥些
殳念忽3942人体感应灯没人的时候亮是怎么回事? -
皮超追15823708084 ______ 人体感应灯是有一个感应范围的,一般感应角度为120度左右,当人体进入感应范围灯就会亮,当然也有可能是灯出现了故障,光敏电阻或是感应探头出现了故障,这个问题产品测试时我也有遇到过类似问题.下面是感应灯工作原理:光感应灯...
殳念忽3942热释电红外传感器模块检测到人体活动时,模块输出 电平,三极管 ,发光二极管 -
皮超追15823708084 ______ 你这是热释电红外声光报警器所用的元器件,是填空题吧: 热释电红外传感器模块检测到人体活动时,模块输出(高)电平,三极管(导通),发光二极管(发光), 音乐芯片(加电工作),扬声器(发声).
殳念忽3942人体热释电红外传感器接单片机接无线模块怎么样接 -
皮超追15823708084 ______ 把人体热释电模块输出的是开关量,一般的IO口就行了,你说的无线模块,要看型号吧?不过一般的都是SPI通讯,你用一般的单片机就模拟 我调试过24L01的和CC1100的,如果是简单的操作话,建议用基于24L01的无线模块PTR6000,操作起来更简单一点 如果还有什么问题,我们一起探讨 QQ 247519442
殳念忽3942多种传感器怎么和单片机连接 -
皮超追15823708084 ______ AM2301电容式温湿度传感器+MQ2气体传感器+GP2Y1010AU0F灰尘传感器+HC-SR501人体红外感应模块+光敏电阻传感器模块.其中人体红外感应模块(开关量)输出端可以直接连接到开发板任何IO端.其他都是模拟量,如果输出不是数字量,要经过AD转换,不能直接连到单片机开发板上.
殳念忽3942NRF24L01无线模块是否会干扰红外人体感应模块的工作>? -
皮超追15823708084 ______ 可行,不会干扰.频率不一样.需要注意设计电路时抗干扰以及编码加密,防止误动作,降低虚警率.
殳念忽3942红外感应器组成结构是怎样的? -
皮超追15823708084 ______ 红外感应器组成结构 菲涅尔滤光透镜,热释电红外传感器(PIR)和匹配低噪放大器. 菲涅尔透镜有两个作用:一是聚焦作用,即将热释红外信号折射在PIR上:二是将探测区内分为若干个明区和暗区,使进入探测区的移动物体(人)能以温...
殳念忽3942什么类型的传感器可以探测到人体的红外线,我们想做一个探测器, -
皮超追15823708084 ______[答案] 热释电红外传感器,简单配个biss0001专用芯片就成了.外围电路不复杂.
殳念忽3942人体感应开关VS红外感应开关,区别你都知道吗? -
皮超追15823708084 ______ 人体2113感应开关是红外开关中的一种,是感知一定范5261围内存在人体活动4102发出的红外线信号,从而触发开关1653发相应动作的一种开关,主要区别在于它属于“被动式开关”,也就是该开关不会自己发射红外线进行探测的一种红外线装置.通常的“红外线围栏”就属于主动式装置,它需要自己发射并接受相应的红外信号而工作.这两款产品,都可以在百度上搜索 爱露华电器,进入店铺挑选你心仪的产品哦.