前言

  ESP-01/01S应该是目前最便宜的ESP8266系列模块了。在未涨价之前,单个模块价格在3-4块之间,不知为啥现在都涨价了= =、现在价格在6-8块之间,安信可官方店里卖10块,加上一个继电器模块,总价在10-15块之间。

(ESP01/01S模块)

(ESP01/01S + 继电器 模块)

也就是说:通过研读本篇文章,你只需花3-4瓶快乐水的钱,即可让你桌面上的台灯接入HomeAssistant,实现APP or Siri 智能控制。如果换成是现成的设备呢?

(HomeKit认证的插座 288块,够我买半年快乐水了,打扰了…)

(小米米家插座,49块)

这么一看,小米是真的很良心啊!确实,价格屠夫嘛,可是米家设备闭源,不支持开放协议,虽然也可以通过米家Aqara二代网关接入,但是,二代网关多少钱?比我半年快乐水还多23333…


好了进入正题,本篇文章讲的是如何使用ESP01/01S通过刷ESPHome固件接入HomeAssistant 的过程,可能会比较长,但是比较简单,跟着教程基本能100%实现。本篇文章会分两个部分,第一部分为ESPHome固件的编译与烧录;第二部分为ESPHome设备添加到HomeAssistant实现智能控制。

第一部分

第一步:准备工作

准备材料、工具、环境:

  • 准备材料:ESP01/01S(注意:这是两个不同的模块,01和01S都可以),继电器模块。可以直接买上面一套的那种,10.2 元的,还需要有一个烧录工具
  • 工具:小螺丝刀,烧录工具,杜邦线等
  • 环境:HomeAssistant ,ESPHome 环境,参考前两篇连载文章;

(需使用到的模块)

最右边的是一个烧录工具,它与上面我提供的链接里的不一样,但是功能是一样的。提供链接里的烧录器不需要上电GPIO-0拉高,但我图中的这种是需要拉高,才能进去烧录模式。


第二步:添加ESPHome硬件

在局域网内,打开ESPHome管理界面,浏览器输入群晖IP:6052,打开主界面。点击右上角加号,开始添加设备的操作

1、在第一栏输入设备名称,可以自定义,只能由小写字母,不能大写字母开头,可以使用下划线、拼音,不遵循驼峰命名法则,写好之后点击蓝色按钮CONITNUE

2、设备类型选择:Generic ESP8266即默认的就可以。点击CONITNUE

3、输入Wifi信息,注意:ESP8266 只支持2.4G wifi,不支持5G wifi,请不要搞错了。OTA & HA 连接密码,我这里填的是1,这里需要记住,后面要用到。

4、输入完成之后,最后一步点击SUBMIT即可完成对设备的初步设定。


第三步:编写配置文件代码

这是关键的一步,在这里你需要通过编写一些配置代码,实现对这个设备的控制,一些简单的控制逻辑、传感器算法也是在这里配置的。不会很难,很简单的 = =、

回到ESPHome配置界面,找到刚刚新建出来的switch硬件,点击②EDIT 进入编辑,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
esphome:
name: switch ##这里的名称一定要与你建立这个模块时的名称相同;
platform: ESP8266 ##这里不能变;
board: esp01_1m ##这里不能变;
esp8266_restore_from_flash: yes ## 是否断电记忆继电器状态;

wifi:
ssid: "test-wifi" ## wifi账号;
password: "12345678" ## wifi密码;
manual_ip:
static_ip: 192.168.123.159 ##固定此设备IP地址为192.168.123.156;
gateway: 192.168.123.1 ##路由器、网关地址;
subnet: 255.255.255.0 ##子网掩码;

# Enable logging
logger: ##输出Log;

# Enable Home Assistant API
api:
password: "1" ## api密码,用于链接ha验证;

ota:
password: "1" ## ota密码,用于后续在线升级;

web_server: ## web控制,添加了这2行,就可以在网页端打开设备ip;
port: 80


switch: ##设备类型;
- platform: gpio ##平台;
name: "test switch relay" ##自定义名称,最好起关联的名称;
pin: GPIO0 ##ESP01/01S 是GPIO0脚;
id: relay ##ID 为继电器开关;
inverted: yes ## inverted 参数,表示低电平有效,即继电器是低电平触发;

YAML

第四步:校验-编译-下载

.yaml配置文件对空格、换行敏感,请特别注意!编写好了之后,点击右下角SAVE,然后点击④VALIDATE 检查一下配置文件有没有错误,如下图,出现右上角标志,表示配置文件没有错误,能通过校验。

通过校验之后,点击CLOSE关闭校验窗口,回到主界面,点击switch右上角三个点,弹出来选择Compile开始编译固件,大概需要3-5分钟即可完成编译。

(开始编译)

(编译成功)

然后点击DOWNLOAD BINARY将固件下载到桌面。

2019.9.4,接着更…

上面编译完成的固件下载保存到桌面之后之后,就需要通过下载工具烧录到ESP01/01S中了。

第五步:烧录固件

烧录软件点击下面链接获取

复制地址到浏览器打开:http://www.codess-yun.top:6860/index.php?share/file&user=1&sid=mZRfKghx

提取密码:EkEe9

或者Github下载:下载工具

首先,把ESP01/01S接上烧录工具,注意方向,否则直接烧报废,还有GPIO0需要拉低才能进入擦除Flash模式,也就是:拉低GPIO0再插入电脑USB

(烧录成功)


第六步:接入HomeAssistant

让ESP插上继电器模块接入5v电源,**注意:ESP01/01S模块的CH_PD引脚需要拉高至VCC才能正常工作!**,如下图:

(这里是为了演示引脚接法,实际使用中请不要直接使用焊锡飞线)

稍等一会儿在路由器管理界面就能看到接入的ESP设备,地址就是上面配置文件中你设置的地址,在这里就能测试继电器模块是否能正常工作,能显示这个界面,肯定是能工作的。

(WEB管理界面,也可以在这里进行固件的升级)

然后打开 HomeAssistant管理界面,配置-Server Control ,重启一下服务,稍等一会儿,再刷新一下就能看到一个新设备了。

按照步骤添加就行了

下面的是你设置的连接HA密码,我设的是1;

然后,在主界面,点击右上角三个点,“未使用的实体” 就能发现你刚添加的继电器了,然后“配置UI” — “原始UI编辑器” 加上下面的卡片代码:

1
2
3
4
5
6
- entities:
- switch.test_switch_relay
show_header_toggle: false
theme: default
title: 测试房间
type: entities

YAML

(注意:这里只是一张自定义卡片,请严格遵循缩进)

卡片示意图:

打开HomeAssistant APP 和 Apple家庭应用:

自动添加,完美~

此时呼唤一句:嘿~ Siri,打开“测试开关”试试?

到了这里,台灯的智能改造已经完成95%了,至于后面怎么接入、改造台灯部分,那就自己发挥啦,强电一定要注意安全哦。

这篇教程终于写完了,难倒是不难,可是写教程真的非常耗费时间啊啊啊….


相关链接(侵删)

  1. 智能家居篇-3:ESP-01/01S 接入HomeAssistant,实现Siri控制

=================我是分割线=================

欢迎到公众号来唠嗑: