智能家居篇-7:ESP01 + SR501人体红外传感器,接入HomeAssistant

  很久没更新博客了,最近发生了很多事情,又经常加班,断更是不会断更的,博客会一直更新下去。


本篇文章介绍如何使用最便宜的ESP01 + SR501人体红外传感器,接入HomeAssistant ,实现APP/Siri 控制、识别。成本不到10块钱 = =、

SR501 就是下面图片这种,带透镜,可以多方位180度感应。
101093750.jpg

 这种传感器是5V供电,输出3.3V高电平,它有两种触发模式:

  • 1、当检测到有人活动时,会持续输出高电平,等延时时间一结束就变为低电平,(楼梯电灯就是这个模式);
  • 2、当检测到有人活动时,会输出高电平,在延时时间段内,如果有人体在其感应范围活动,将一直保持高电平输出,直到人体离开检测范围,才输出低电平。感应模块检测到人体的每一次活动后会自动顺延一个延时时间段,并且以最后一次活动的时间为延时时间的起始点,(电梯的红外感应就是这种模式

这里需要使用第2种模式,原理是:通过ESP 监测模块输出引脚,当有高电平时(即有人活动时),触发相应动作,比如控制一个电灯开启。有的朋友搞这个模块的时候会遇到频繁触发的问题,其实就是选错了模式。

话不多说,上代码:

为防止爬虫恶意采集,此处内容需要评论回复后方可阅读。

上面程序用到自动化模板控件Template,它的作用在于触发红外传感器时,能够自动将继电器打开 ,延时一段时间后自动关闭,如果光使用relay,是达不到自动关闭的效果的。

目前只测试了下自动延时的效果,其实还可以改成if_elsewhilewait_until的触发模式,也就是说,不需延时,只要检测到人体就一直保持触发状态,让继电器一直闭合(这里需要将红外模块设置成连续触发模式)

这个可以用于卫生间、起床小夜灯的场景,当检测到人体活动时,一直保持触发状态,让灯一直开着。

下面以if_else代码为例:

为防止爬虫恶意采集,此处内容需要评论回复后方可阅读。

(注:这段代码我没有测试验证,写得比较匆忙,待验证 = =)

最后提个醒,红外模块最低供电电压是5v3.3V是带不动的,ESP01需要3.3V供电,所以转换一下电压才能接上去。

接入HA的图忘了截,回头补上

最后修改:2019 年 11 月 05 日 05 : 43 PM
您的支持就是我持续更新的动力!

16 条评论

  1. liyang

    感谢楼主的分享,受益匪浅

  2. zk

    支持作者

  3. guochuang

    感谢楼主的分享,受益匪浅

  4. 弥雅

    博主的不少博文,含金量好高啊!

    1. Sakwe
      @弥雅

      哈哈,大佬见笑了,只是随便写点教程,经常因为忙而断更

      1. 弥雅
        @Sakwe

        看你的不少博文,似乎你对智能家居和物联挺感兴趣,路子走的也挺正。

        1. Sakwe
          @弥雅

          本身是从事嵌入式行业的,所以对这一块比较感兴趣,也比较喜欢动手

  5. 弥雅

    博主的不少博文,含金量好高啊!

  6. 厉害了

  7. jason

    膜拜大佬啊

  8. tomdf01

    感谢分享。。。。。。。学习中

  9. Aiden

    进来看看是不是esphome接入

    1. tomdf01
      @Aiden

      感谢分享。。。。。。。。

  10. 旧事酒浓

    有一款am312的人体感应器是3.3供电

  11. 旧事酒浓

    终于更新了,才看到

  12. 嘿嘿

    哈哈看看

发表评论

为了博客更好地生产内容,请将本站加入广告屏蔽插件的白名单,感谢您的支持。 具体方法
X