ESP-01S实现智能灯控
ESP-01S实现智能灯控
前言
随着HomeAssistant和HomeBridge的接入,我屋内的智能家居开始变得完备起来,智能风扇,智能加湿器,智能温湿度传感器。这一切都归功于树莓派和这一颗热爱折腾的心😄。剩下的问题就是把家用灯也变得智能起来,只有这个实现了,这一套才算是入门级智能家居了吧。
问题分析:
智能风扇的实现得益于小米智能插座,湿度传感器是接在树莓派上的。显然我不能把家用灯接在智能插座或树莓派上----太臃肿。
机缘巧合
一个偶然的瞬间我在网上发现,可以通过ESP-01S模块加继电器实现对家用灯的控制。
准备
材料 | 价格 |
---|---|
ESP-01s模块 | 5.65 |
Relay继电器 | 4.2 |
ESP-01s烧录下载器 | 8.2 |
220V转5V降压模块 | 4 |
总计 | 22.05 |
除了这些以外,还需要杜邦线若干。 |
从左到右分别为ESP-01/ESP-01s芯片 、 继电器模块 、 ESP-01/ESP-01s烧录器
降压模块:
刷机
需要在Windows电脑上运行!!!
下载:
-
工具: https://pan.baidu.com/s/1Lamp5MbUz9Cwf5_NhCgrIg 提取码: r9fg
刷写固件:
打开下载好的文件夹,安装烧录器驱动。
用flash_download_tool工具将文件夹内的fullhaaboot.bin固件烧录到模块中。
这里COM口根据你实际选择
点击START进行刷写
如下显示时为刷写完成
配置
完成之后,ESP-01s 会建立一个 SSID 为 HAA-XXXXXX 的开放 2.4GHz WiFi 热点,连接它,等待几秒钟,就会跳转到 Home Accessory Architect 的配置页面。(如果为未自动跳转,进入192.168.4.1:4567)
这里我们需要写一个 JSON 来配置 ESP-01 的功能,HAA 提供了相当丰富的物联网设备类型供我们选择,这里我们选择相对简单的的开关(Switch)来配置。
将 wiki 中提供的范例 JSON 稍加修改:
1 | { |
这里表示了一个基本类型的开关(“t”: 1),通过 GPIO 0 控制继电器,因为这个继电器模块是 GPIO 0 低电平时闭合,所以在下面的 “0” 表示开关关闭的选项中 “v”: 1 表示高电平,而 “1” 与之相反。LED 指示灯定义为 GPIO 1,按钮定义为 GPIO 2,“s”: 1 表示通电后默认为开关打开状态。
详细的配置规则可以参阅原项目的 Wiki。
将 JSON 填入配置页面,并在下方连接 WiFi,注意 ESP-01 仅能连接 2.4GHz 的 WiFi。
之后点击保存并等待 7 分钟左右,完成后 LED 会亮起几秒钟。
接线
将 220V 的火线与零线接到 220V 转 5V 降压模块上。
降压模块输出 5V 电接入继电器的 VCC 与 GND。将 ESP-01 插在继电器上,因为该继电器自带一个 5V 转 3.3V,所以可以直接给 ESP-01 供电。
由于我房间是两个开关控制一个灯,分别是门口和床头。所以只用对其中一个开关安装这套硬件。保持电路闭合,模块才可控制灯的状态,同时物理开关也可以控制灯的状态。
添加 HomeKit 设备
在 iOS 设备中打开「家庭」App,通过下方的设置代码,按照正常步骤添加新配件。大约等待 30 秒即可添加完成。
现在我们就可以在 iOS 设备上通过 HomeKit 控制灯泡了。
总结
优点: ESP-01s脱离了树莓派的控制,是一个单独的模块。所以具有更强的稳定性和实用性。由于是单片机,在单方面的性能上更好,延迟更低,是个非常有意义的项目。