商业化的智能开关,可以同时用实体开关和app来控制灯的亮灭,而且状态实时同步。由此也埋下了自己DIY智能开关的种子,但一时间不知道如何实现,暂且搁置。后来在读esphome官方文档自动话章节的时候,开篇举的例子正式智能开关,链接在此https://www.esphome.io/guides/automations.html?highlight=auto
大体的原理是:一个gpio虚拟成二进制传感器,一个gpio来控制继电器。当这个二进制传感器触发的时候,开关的开与闭合也发生变化。
因为esp01s的小巧,所以下面是用esp01s继电器来实现的,esp01s的gpio2作为二进制传感器,gpio0来控制继电器。gpio2接的是回弹式开关,当开关按下回弹的时候,联动gpio0控制继电器,进而控制灯泡。
下面就来介绍如何制作。
一,需要的材料:
- esp01s继电器一个
- esp01s一个
- 若干导线
- 10k电阻一个
- 热缩管
- 5V降压模块
二,将模块连接起来,根据下面的图连接。
1,首先把5v降压模块焊上导线
2,在esp01s继电器背部,焊上电阻以及用于接回弹式开关的导线。
3,用导线5v电压模块的正负极连接esp01s继电器的正负极用于给它供电。另找两根导线分别接esp01s继电器的NO和COM口来控制灯的亮灭。
4,用esphome编译固件,yaml代码如下:
可以在esohome中随便建立一个节点,把里面的内容全部替换成下面的代码,最后只更改wifi名称和密码就可以了。
esphome:
name: wireless_switch05
platform: ESP8266
board: esp01_1m
wifi:
networks:
ssid: "just_do_it" #改成你的wifi名称
password: "116116116" #改成你的wifi密码
#manual_ip:
#static_ip: 192.168.2.188
#gateway: 192.168.2.1
#subnet: 255.255.255.0
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "WS05 Fallback Hotspot" #当esp01s连不上网的时候,它会自动发出热点。
password: "12345678"
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
password: "1"
ota:
password: "1"
web_server:
port: 80
switch:
- platform: gpio
pin: GPIO0
name: "wireless05_switch"
id: relay2
binary_sensor:
- platform: gpio
pin: GPIO2
name: "press_switch05"
device_class: opening
filters:
- delayed_on_off: 100ms #这里一定要加这个这个起到滤波的作用。
on_press: #当这个二进制传感器触发的时候,触发gpio0
then:
- switch.toggle: relay2
5,编译下载固件,然后把esp01s插到下载器上,下载器插到电脑上用esphome_flasher来烧录固件。
6,把esp01s插入到esp01s继电器上,套上热缩管,用热风枪烤一下。接上接线端子,就完成了。
如果嫌麻烦这里有做好的成品,想自己DIY的话也有散件^_^
淘宝店铺:尚恩树莓派电子
https://item.taobao.com/item.htm?spm=a230r.1.14.276.7d4a7c24KqZmZl&id=627812204172&ns=1&abbucket=19#detail