买了个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
学习了
感谢留言,大家一起学习。