
使用 ESPHome 实现 WS2812 灯控制
使用 ESPHome 可以快速在 ESP 的芯片上实现各种硬件的控制,不需要自己写代码,配置 GPIO 即可。

对于 ESPHome 的安装本文不再赘述。只需要在 Addons 中选择 ESPHome 安装即可。如果是使用 Core 方法安装,可能需要自己手动跑下。
新建一个设备,按照提示输入设备名称

在连接之后选择自己的硬件类型

我这里使用的 ESP8266 作为主控芯片。在自己画的板子上,目前不需要蓝牙相关功能,所以只画了 8266,通过 WIFI 连接 HA 控制即可。
新建成功后,直接点击 Edit 进入

将不需要的部分先删掉。

配置 LED 灯和 WIFI
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# 一般来说下面这段 WIFI 设置并不需要。但是我在不设置的情况下,连不上 WIFI,只好加上这个功能,让他直接连接,不用 DHCP 分配 IP
fast_connect: true
manual_ip:
static_ip: 192.168.50.20
gateway: 192.168.50.1
subnet: 255.255.255.0
# Light
light:
- platform: neopixelbus
type: GRB # 这里配置发送顺序, WS2812 的发送顺序为 GRB
variant: ws2812x # 这里配置灯珠类型
pin: GPIO13 # 这里配置 GPIO
num_leds: 16 # 灯珠数量
name: "Ring Light"
按上面注释配置好了自己的硬件后,点击 INSTALL

由于我们是第一次烧录,只能选择 Wirelessly 以外的选项,因为 OTA 功能还没有烧进去。
在没设置 HTTPS 的情况下,第二个选项也没办法选择,只能选第三项,并且把硬件插入 Home Assistant 的服务器机子上。
如果因为自身原因没办法设置 HTTPS 也没办法碰到实体服务器,那么只能选择最后一项,再用 ESP Download Tool 来手动下载。
我这里选择第二项,在浏览器弹出的窗口中选择对应串口,便会进入下载模式。如果没有弹出来,可以尝试切换浏览器。
当然,这时候如果板子没有自动下载电路,还需要手动按板子上的按键来进行手动下载,根据各个硬件不同,进入的方式也有变化。
安装完成,便可看见设备在线了:

这时候,在 Home Assistant 的设备选项中,点击添加集成

在选择 ESPHome 之后,一般会自动检测到

如果没有检测到,则手动输入自己配置的 IP 即可。也可以点击刚刚 ESPHome 的界面的 LOGS 进入日志查看。如果在 ESPHome 中显示在线,即可使用 Wireless 模式进行在线 Log 调试,无需再次插线。但是如果在没有在线的情况下,则只能插线用串口调试。
打开 Log 后一般就能看见自己设备的 IP 了。输入进去即可
就可以正常在 HA 中添增了:

我的已经扯电了,所以显示不可用。

附上成功点亮照片
