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

3294528894_o.png

前言

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

902213720.png
(ESP01/01S模块)

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

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

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

902214222.png
(小米米家插座,49块)

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


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

第一部分

第一步:准备工作

准备材料、工具、环境:

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

902221007.png
(需使用到的模块)

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


第二步:添加ESPHome硬件

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

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

902222115.png

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

902222357.png

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

wifipsw.png

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


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

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

902224453.png

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

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

902230852.png

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

902232232.png
(开始编译)

902232501.png
(编译成功)

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

2019.9.4,接着更...

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

第五步:烧录固件

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

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

此处内容需要评论回复后(审核通过)方可阅读。

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

905223706.png
(烧录成功)


第六步:接入HomeAssistant

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

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

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

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

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

905233358.png

按照步骤添加就行了

905233504.png

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

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


      - entities:
          - switch.test_switch_relay
        show_header_toggle: false
        theme: default
        title: 测试房间
        type: entities

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

卡片示意图:

905235118.png

打开HomeAssistant APP 和 Apple家庭应用:

090611262320_0IMG_0357.png

自动添加,完美~

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

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

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

下一篇:ESP01/01S + WS2812,RGB灯带接入HomeAssistant,打造一个超炫的氛围灯~

最后修改:2019 年 09 月 06 日 11 : 27 AM
您的支持就是我持续更新的动力!

2 条评论

  1. cyqand

    正在学习,多谢博主

  2. weiwei

    谢谢博主分享~我正在搞这个模块

发表评论

为了博客更好地生产内容,请将本站加入广告屏蔽插件的白名单,感谢您的支持。 具体方法
X