利用ESPHome+ESP8266,使用舵机将房屋顶灯控制开关接入HA+Homekit教程

利用ESPHome+ESP8266,使用舵机将房屋顶灯控制开关接入HA+Homekit教程

AlexWei Lv1

一、所需材料及环境准备

  • HomeAssistant环境,可运行在路由器/Windows电脑/树莓派等平台上,本文不再赘述,教程自行Google/Baidu
  • 具有Wifi模块,usb接口的ESP开发板,包括ESP32,ESP8266等,本教程以ESP8266 NodeMCU(CH340)开发版为例
  • SG90或其他180度舵机
  • 一台电脑,装有python3/pip3,本文以macOS为例。且需已安装CH340或CP2102芯片的对应驱动,可详询你购买开发板的卖家
  • 数据线,固定舵机所需如尼龙扎带等杂项工具

二、具体实现步骤

(1)将ESPHome刷入开发板

电脑本地需安装ESPHome环境,在macOS终端下,用pip安装

1
pip3 install --user esphome

设置环境变量,注意根据自己的python路径修改

1
export PATH="$PATH:/Users/你的用户名/Library/Python/你的python版本/bin"

至此ESPHome面板在本地已安装结束,你需要新建一个任意一个你希望存放其配置文件的目录,并在终端内cd到该目录,并启动

如:

1
2
3
cd /Users/alexwei/Developer/ESPhome_demo

esphome dashboard demo1/

当看到以下提示时,说明安装已成功

1
2024-06-15 22:01:10,062 INFO Starting dashboard web server on http://0.0.0.0:6052 and configuration dir demo1/...

此时,在浏览器内打开http://localhost:6052/

可以看到ESPHome的本地管理页面(注意在接下来的操作中,请勿关闭终端窗口,请保持后台运行)

image-20240616145741087

点击右下角的+ NEW DEVICE,随便设定一个名字比如light,继续

注意此处不要着急安装,亲测大概率会失败,原因未知,先SKIP后续再安装即可成功image-20240616150734274

选择对应的芯片型号,比如ESP8266

image-20240616150833793

接下来再开始安装,按照指引进行即可

image-20240616150936777 image-20240616150959965

(2)修改并写入配置文件

点击EDIT,进入配置页面,将以下配置文件复制粘贴替换全部,记得对应修改自己的wifi ssid和密码

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# board需要对应你的板子型号,否则可能无法写入,请注意
esphome:
name: light
platform: ESP8266
board: nodemcuv2


logger:

# key可自行修改,用于连接HA
api:
encryption:
key: "VmM7VolyYLNgJ3xf8PUNFbLFyFWa+/UjvzIVw9nax+4="
services:
- service: control_servo
variables:
position: float
then:
- servo.write:
id: my_servo
level: !lambda 'return position / 180.0;'
- delay: 1s
- servo.write:
id: my_servo
level: !lambda 'return 90.0 / 180.0;'

ota:
password: "8784b54c881cbd425f828e64b942d84e"

wifi:
ssid: your_ssid #必须2.4Ghz,不可用5G Wi-Fi
password: your_password


ap:
ssid: "Light Fallback Hotspot"
password: "ATXaqZu1fTpK"

servo:
- id: my_servo
output: pwm_output
min_level: 2.5% # 调整最小脉宽信号
max_level: 12.5% # 调整最大脉宽信号

#pin可按照实际接线情况修改
output:
- platform: esp8266_pwm
id: pwm_output
pin: D4
frequency: 50 Hz

#角度可按照实际情况进行修改
switch:
- platform: template
name: "Light Switch"
turn_on_action:
- servo.write:
id: my_servo
level: !lambda 'return (90.0 + 90.0) / 180.0;'
- delay: 1s
- servo.write:
id: my_servo
level: !lambda 'return 90.0 / 180.0;'
turn_off_action:
- servo.write:
id: my_servo
level: !lambda 'return (90.0 - 90.0) / 180.0;'
- delay: 1.1s
- servo.write:
id: my_servo
level: !lambda 'return 92.0 / 180.0;'

接下来按右上角的SAVE保存,点击install,选择安装方式,稍等便可看到安装成功及联网信息。

(3)接入Home Assistant

首先在Home assistant安装ESPHome加载项,可点击如下链接跳转安装

https://my.home-assistant.io/redirect/supervisor_addon/?addon=5c53de3b_esphome&repository_url=https%3A%2F%2Fgithub.com%2Fesphome%2Fhome-assistant-addon

其次需要安装桥接至Homekit的插件,点击配置–设备与服务–添加集成,搜索Apple,点击HomeKit Bridge进行安装

image-20240616152454117

image-20240616152521643

上述安装完毕后,确保运行HA的服务器和ESP8266接入同一局域网内,便可在“设备与服务”页面看到自动监测到的ESPHome设备,本教程中名为light,点击配置

配置完毕后,应当可以在ESPHome中看到switch实体

image-20240616152852366

image-20240616152908180

接下来,回到已配置页面,进入HomekitBridge,点击“添加条目”

image-20240616153023629

在要包含的域中,可根据你需要从HA桥接到Homekit的设备实际进行配置,但需确保Switch被选中

image-20240616153116488

点击提交,在通知中找到二维码,用你的iPhone/ipad系统自带扫码或在Home App中进行扫码配置安装,详细过程不再赘述

image-20240616153240402

image-20240616153342048

为确保siri将开关作为灯具,请确保在Home应用中将开关类型设置为Light

IMG_1056

(4)硬件配置

image-20240616153633147

拿出你的开发板,将SG90舵机按照图示导线颜色连接至开发板,请勿连反

Screenshot 2024-06-16 at 15.39.51

(5)固定安装

至此,技术部分的配置已完成,接下来需要你根据家庭墙面开关的位置和实际情况,为ESP8266开发板连接稳定供电,并将舵机安装在合适的位置。

笔者的开关之一在书架后侧,因此使用尼龙扎带固定,供参考。

(*注意舵机开关旋转方向和实际的对应,不过也可自行修改yaml文件适配)

32A17079-99B1-4E03-9478-BB67978031FF_1_102_o

三、效果与总结

效果实现

至此,一切配置已完成,此时你可以便捷地使用Apple设备控制你的顶灯,或使用siri,自动化等Homekit功能

5ABC0EE5-7EF0-44DB-B3B9-0B7ED89F47F4_4_5005_c

7054DAD9-1F92-49A9-BBBF-71F1A41E9BA8_4_5005_c

成本总结(仅供参考)

材料 单价 购入平台
ESP8266开发板 ¥12.3 淘宝
SG90舵机 ¥5.6 淘宝
尼龙扎带2.5*150mm 100根 ¥5.87 京东
MicroUSB 3米数据线 ¥25.77 京东

总计¥49.54(最贵的竟然是数据线(笑)),成本可控制50元以内

该方案的优点在于不需要改造原双控电路,如原本为单控开关,还是建议买个智能开关,仅100元上下(这个还是比舵机稳定多了())

  • 标题: 利用ESPHome+ESP8266,使用舵机将房屋顶灯控制开关接入HA+Homekit教程
  • 作者: AlexWei
  • 创建于 : 2024-06-16 13:00:00
  • 更新于 : 2024-08-26 17:37:47
  • 链接: https://www.alexwei.top/2024/06/16/smart-switch-tutorial/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论