作者:难得一见_Eva | 来源:互联网 | 2023-09-02 10:02
前期准备树莓派3BNodeMCUESP8266CH3405v继电器温度传感器DS18b20该教程是在继电器已经接入ESP8266,且ESP8266的基本配置已经完成的基础上的延伸。
前期准备
树莓派3BNodeMCU ESP8266 CH3405v继电器温度传感器DS18b20
该教程是在继电器已经接入ESP8266,且ESP8266的基本配置已经完成的基础上的延伸。基本配置参考前期的文章《nodemcu+树莓派控制继电器实现智能插座》。
一.ESP8266接入温度传感器1.硬件连接
继电器的连接与上一教程一致,温度传感器的VCC接3.3V,GND接地,DQ端接ESP8266的D4脚。
2.ESP8266配置
这里只写温度传感器的配置,继电器配置看上一教程。
在浏览器地址栏输入ESP8266的ip,点击Devices项,在新的空白一栏点击Edit。
Device栏选择DS18b20,Name自定义,Enabled勾选,1st GPIO就是硬件上DQ端与ESP8266连接的引脚,Delay延时自行设置调整,Value自定义,后面会用到。
配置完成后submit,close。
二.配置HASS
在configuration.yaml中添加如下代码:
sensor:
- platform: mqtt
name: "temperature"
state_topic: "/ESP_Easy/temperature/Temperature"
qos: 1
unit_of_measurement: "℃"
其中name自定义,state_topic: "/ESP_Easy/temperature/Temperature"中的ESP_Easy是你的ESP设备的名字,temperature是当时在Devices中设置的Name,Temperature是当时设置的Value中的Name。
保存重启HASS,应该能在HASS界面中出现温度了。
三.设置自动化
Home Assistant 中的自动化遵循触发条件trigger —— 环境条件condition —— 执行动作 action 的三步逻辑。
触发条件是我们传统意义上的条件,即某个事件的发生启动了自动化的进程;环境条件是附加条件,可为空,即在触发条件发生下,自动化还受某些环境因素所制约;动作则是自动化的目标和终点,即自动化最终要实现的操作。
自动化设置规则参照
在这里,我设置了当温度超过26℃,且低于30℃时,打开继电器。在configuration.yaml中添加如下代码:
automation:
- alias: 'Rule - temperature high'
# 定义该自动化规则的名字
trigger:
# 触发条件
platform: numeric_state
# 数字状态触发器
entity_id: sensor.temperature
# 实体id是温度传感器
above: 26
below: 30
# 如果从低到高越过26,或者从高到低越过30,就触发。换句话说,就是从[26,30]之外的范围进入这个范围。
action:
# 调用服务,打开继电器
service: switch.turn_on
entity_id:
- switch.switch
保存,重启HASS。能在HASS界面中看到该自动化规则,且测试当传感器温度高于26℃,低于30℃时,能控制继电器打开。