ESP-01s+SR501红外传感器的ESPHome配置示例

April 10, 2020 访问: 275 次

买了个led灯带,在床底下盘一圈做晚上起夜的夜灯用。

用到了ESP8266最小的板子ESP-01s。esp01分为01和01s,区别是一个没有上拉电阻,一个内置了电阻。

还有SR501红外传感器,这个传感器可以加一个光敏电阻,达到光线好的时候不触发,光线差的时候才触发输出高电平。由于我将传感器放在床下,白天光线也比较暗,所以这里还是需要未来在代码里做下优化。

另外还增加了一个DHT22的温湿度传感器,可以随时观察一下地面温湿度。加这个主要是esp01有多个IO接口,只用了两个觉得还是有点浪费。

这里是弱电控220v交流电,继电器选择的是固态继电器,没声音,安全稳定。电磁继电器声音咔哒咔哒的,还是比较担心夜里的噪音的。

这套方案简单没什么技术含量,不需要太多去考虑电路规划问题。后面有时间再研究使用其他弱电控强电的方案,比如晶闸管这种。

使用esphome简直是太爽了,刷完固件以后就可以OTA升级固件,空出来了RX,TX接口,接口一下子扩展到了4个。其中RX对应GPIO3,TX对应GPIO1,这个网上好像很少有人提到这点。

GPIO0接继电器时,ESP01s无法开机,应该是变成了低电平导致进入刷机模式,所以在接口的选择上一定要注意各个接口的开机电平。

GPIO2接SR501红外传感器,GPIO0接DHT22温湿度传感器,RX输出控制继电器。

yaml配置中尽量不要使用汉字字符,有可能有各种奇怪的问题。想要中文可以在homeassistant中去覆盖配置。

配置代码:

esphome:
  name: beedroom_ir_light
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "Service"
  password: "******"
  manual_ip:
    static_ip: 192.168.50.110
    gateway: 192.168.50.1
    subnet: 255.255.255.0

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Beedroom Ir Light"
    password: "******"
    
captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "******"

ota:
  password: "******"
  
sensor:
  - platform: dht
    pin: 0
    humidity:
      name: "Humidity"
    temperature:
      name: "Temperature"
    update_interval: 60s

switch:
  - platform: gpio
    name: 'light relay'
    pin: 
      number: 3
      inverted: True
    id: relay

binary_sensor:
  - platform: gpio
    pin: 2
    name: 'ir led'
    device_class: motion
    id: pir_motion
    on_press:
    - switch.turn_on: relay
    
  - platform: template
    name: temp_motion
    lambda: 'return id(pir_motion).state;'
    filters:
      - delayed_off: 15s
    on_release:
      - switch.turn_off: relay

添加新评论

  1. 虐薛定谔的猫

    学习了

    Reply