篇二 使用ESPHome、配合ESP-01S来制作开、关机案例(1)
刚开始玩ESP8266系列时,使用的是Ardunio,但发现即使一些简单功能实现还是相对繁琐。后来发现很多大神推荐使用的ESPHome可以很轻松的创建、定制和集成智能设备。这不正是我等懒人需要的神器么~~,先举个小例子来说明:
就拿上一篇开机举例吧,我们在开电脑的时候无非是按下开机键,然后松手,在这期间哪怕再快中间一定是有一个很小时间的间隔。那对应的行为代码就是:
- switch.turn_on: power # 按下
- delay: 1000ms # 启动时,按下持续很短的时间间隔。
# 同理,这个时间很长的话(例如8秒),那就是强制关机了,就是这么简单。(单位是毫秒)
- switch.turn_off: power # 松手
这样功能就可以实现,其他无非就是对硬件或行为的描述,例如给他起个名字、使用的wifi名称、密码等。配置好后,第一次要使用烧录器把生成的代码固件写给它,之后就可以简单通过wifi发送固件了~~
在这里,先抛开理论,快速实现我们的需求,细节以后慢慢说来。那先介绍这次我们要使用的硬件:

开机线一分二的的连接方法,在网上找到一个不错的截图,稍微修改下:
简单的做法就是在主板上找到原Power SW线拔下,将开机线的母头插到主板之前的位置,将拔下的线插到开机线公头上。另一个就是接我们做好的母头即可。
硬件完成后,只要把代码写入ESP-01S后,插到继电器模块上就完成了。那开始介绍软件部分:ESPHome。无论是用的NAS,还是路由带的系统,先确保有容器管理Docker(这个如有必要,我们在后期会讲解怎样安装Docker)。可以使用命令在docker中安装ESPHome:
docker run -d --name="ESPHome" \
-e TZ=Asia/Shanghai --hostname="esphome" \
-v /opt/esphome:/config -v /run/udev:/run/udev \
--privileged --restart unless-stopped \
--net=host esphome/esphome
完成后,就可以使用 http://esphome所在的地址:6052 来访问了。
之后的流程:


到此我们做好了可以写到ESP-01S的固件,下一期会介绍怎样将它写入到硬件,并加载至Home Assistant中。