esp8266 接入homeassistant的实践

开始

由于柠萌最近淘宝手里有很多小券就打算想找个便宜又好玩的东西玩。正好b站最近总是给咱推esp8266系列以及单片机的视频。手就很刺挠了,入了一块玩玩,就有了今天的教程记录了。

1.esp8266 配合homeassistant实现温湿度实时显示(保姆级教程)

esphome的搭建(基于群晖7.2docker配置)

container manager打开后点击注册表

这里的话由于docker在国内被墙,需要科学上网。

输入esphome,下载最新版本即可

clipboard-5640.webp

在端口这里本地端口6052就行,变量这里USERNAME PASSWORD 内务必填写好你的用户名和密码即可部署完毕

clipboard-2739.webp

你的机器内网ip+6052端口号输入即可进入,esphome的webui界面,用户名和密码填你在docker的配置的即可。

clipboard-6109.webp

首次进入的话不会有左上角的esp8266的一个栏,是空白的状态

点击右下角的绿色标识 newdevice 后弹出下面如图的弹窗点击CONTINUE

clipboard-1548.webp

在这里的话是输入配置文件的名称,可以随便输入,柠萌这里的话就默认填esp8266好了

clipboard-1548.webp

输入完毕后会弹出设备选项,选esp8266

弹出这个话就是配置好了,

底下会显示一串key的密钥,请务必保存好

之后点击INSTALL即可

clipboard-3042.webp

点击CANCEL 接下来我们来配置一下yaml文件

点击EDIT,这里是默认所给出的配置文件,我们需要改一下内容

clipboard-2499.webp

这里的话有必要讲解一下内容,

前面这些apiotaap这些数值都不要动,按照默认的来,按需加入内容

WiFi这里填你自己的WiFi名称和密码, manual_ip: 这里填写固定的ip地址以及路由器的ip地址, sensor: 这里 pin 写自己所与杜邦线连接的gpio引脚

我这里的话是这样 oata 接在esp8266的随便一个gpio引脚都可以,只需在配置文件里改正即可。

esp8266dht11.webp

esphome:
name: esp8266
friendly_name: esp8266

esp8266:
board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
encryption:
key: "gBZDX9+lyYluiJtupESyRKghj+RHK1dUBSzPIcvQDd4="

ota:
- platform: esphome
password: "94cc3828b9966c4ab5ccbc4b005ec1"

wifi:
ssid: "你的WiFi名称"
password: "你的WiFi密码"

# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Esp8266 Fallback Hotspot"
password: "VAI3mbrjBXlk"

manual_ip: #设置固定IP
static_ip: 192.168.123.185
gateway: 192.168.123.1
subnet: 255.255.255.0

captive_portal:

web_server: ## web控制,添加了这2行,就可以在网页端打开设备ip;
port: 80

sensor: #设置dht11传感器
- platform: dht
pin: GPIO4
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 30s # 数据每30s监测一次
model: "DHT11"


点击save保存

点击INSTALL选项,这里的话柠萌就展示第二种安装方法

clipboard-8937.webp

在这个步骤里可能等待的时间过于漫长,但还是请耐心等待,直到显示出 Download project 后点击下载所要烧录的文件

clipboard-1668.webp

下载完毕后点击 Open ESPHome Web,跳转页面

此时将你的esp8266 连接上电脑的usb口

clipboard-0184.webp

此时勾选esp8266的端口,

clipboard-0207.webp

点击INSTALL将刚刚下载的bin文件导入,即可开始烧录,等待进度条跑完。

clipboard-7650.webp

clipboard-7328.webp

此时就可以输入你在配置文件所填写的ip地址即可进入到烧录在esp8266的webui界面

此时如果能正常显示温湿度,那么在基于esphome上的配置就已经完毕了

clipboard-9755.webp

与homeassistant进行绑定

homeassistant的搭建(基于群晖7.2docker配置)

还是和上面的流程一样,搜索选择第一个安装

clipboard-9755.webp

这里的话储存空间设置里加上挂载/config的目录,以便后续修改操作

clipboard-8658.webp

网络这里的话改成host模式,然后部署即可

clipboard-2995.webp

将esphome绑定到homeassistant

登录这里的话我就不细讲了,IP+8123端口后跳转注册页面,地区正确填写即可

点击右下脚的新增整合

clipboard-9443.webp

搜索esphome,之后点击可能会稍微等待一会,直到出现这个页面

clipboard-8952.webp

输入你之前烧录到esp8266所配置的ip地址 端口号不要改变

之后输入你在上面在esphome配置时保存的key并点击确认,出现成功提示后恭喜你已经成功将esphome绑定。

clipboard-9802.webp

此时就能正常的显示出它的温湿度信息啦

clipboard-2440.webp

2.esp8266使用mos管模块控制小灯实现pwm无极调光

当初本身我想做的是使用继电器控制小灯的开关,后期做了之后我并没有感到满意,晚上由于灯光不能调整,感觉会比较刺眼。

准备材料

你需要一个mos开关驱动模块,一个带正负极线的小灯外加一个 按钮模块用于控制小灯的开关

Screenshot_20241126-202145_淘宝.webpclipboard-8170.webp

clipboard-4560.webp

这些小东西的话你都可以在淘宝上轻易的买到,而且的话价格也不是很贵

所需代码

esphome:
name: esp8266
friendly_name: esp8266

esp8266:
board: esp01_1m

logger:

#api和ota那用你自己的

wifi:
ssid: "你的WiFi名称"
password: "你的密码"
ap:
ssid: "Esp8266 Fallback Hotspot"
password: "5IUTqpzb6Nj1"
manual_ip:
static_ip: 192.168.123.185
gateway: 192.168.123.1
subnet: 255.255.255.0

captive_portal:

web_server:
port: 80
output: #mos模块使用pwm调光控制
- platform: esp8266_pwm
pin: GPIO13 # 连接到MOSFET的栅极
id: pwm_output
frequency: 3000 Hz # 设置PWM频率

light:
- platform: monochromatic
name: "Dimmer Light"
output: pwm_output
id: dimmer_light
default_transition_length: 0s
binary_sensor: #控制按钮开关
- platform: gpio
pin:
number: GPIO14
mode: INPUT_PULLUP
inverted: True
name: "Button"
on_press:
- light.toggle: dimmer_light
sensor: #温湿度传感器
- platform: dht
pin: GPIO5
temperature:
name: "Temperature"
humidity:
name: "Humidity"
update_interval: 60s
model: "DHT11"

线路连接

clipboard-9427.webp

esp8266的 GPIO13与gnd分别接入mos管模块的pwm与gnd接口,使用5v电源供电分别接入vin+与vin- 。小灯分别接入vout+与vout- 。

按钮模块连接:out与gnd,vcc分别接入esp8266的gpio14和gnd,3.3v处即可。

总结

其实配置起来的话难度还好,不算太难,只不过写文章的时候倒是感觉很手酸呜呜呜,这样的话就又算做了一个记录,希望帮助咱自己的同时也能帮助到你呀。