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电脑上运行!!!

下载:

刷写固件:

打开下载好的文件夹,安装烧录器驱动。
用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
2
3
4
5
6
7
8
9
10
{
"c": { "l": 1, "b": [{ "g": 2, "t": 5 }] },
"a": [{
"t": 1,
"s": 1,
"0": { "r": [{ "g": 0, "v": 1 }] },
"1": { "r": [{ "g": 0, "v": 0 }] },
"b": [{ "g": 2 }]
}]
}

这里表示了一个基本类型的开关(“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脱离了树莓派的控制,是一个单独的模块。所以具有更强的稳定性和实用性。由于是单片机,在单方面的性能上更好,延迟更低,是个非常有意义的项目。

-------------本文结束感谢您的阅读-------------