先是这个温湿度传感器,采用的是dht11,精确度嘛也就那样
菜鸡的我只会esphome还不精,分享下代码
substitutions:
device_name: dht11
wifi_ssid: '@qqcdrbs'
wifi_password: '12345678'
wifi_fast_connect: 'false'
wifi_reboot_timeout: 60s
ota_password: '123456'
api_reboot_timeout: 0s 个人喜欢用mqtt不喜欢用接入ha的api
esphome:
name: $device_name
platform: ESP8266
board: esp01_1m
on_boot: 开机后亮灯
priority: 250
# ...
then:
- switch.turn_on: led
wifi:
ssid: $wifi_ssid
password: $wifi_password
reboot_timeout: $wifi_reboot_timeout
power_save_mode: none
fast_connect: $wifi_fast_connect
ap:
ssid: dht11
password: "12345678"
logger:
mqtt:
id: mqtt_client
broker: 192.168.1.233
port: 1883
username: mqtt
password: mqtt
discovery_retain: false 这里是ha的自动发现因为我们要让他休眠,休眠会显示不可用所以关闭
# birth_message:
# topic: dht11/ailabilitystate
# payload: online
# will_message:
# topic: dht11/ailabilitystate
# payload: offline
on_message: 这里是阻止休眠方便ota
topic: dht11/ota_mode
payload: 'ON'
then:
- deep_sleep.prevent: deep_sleep_1
ota:
safe_mode: true
password: $ota_password
deep_sleep: 休眠时间根据自己需要修改
run_duration: 10s 注意一点的是 esp的rst针脚要与GPIO16连接
sleep_duration: 10min 要不然就会一睡不醒
id: deep_sleep_1
switch:
- platform: gpio
pin: 12
id: led
sensor:
- platform: dht
model: DHT11
pin: 4
temperature:
name: "br_temp"
state_topic: dht11/temp
humidity:
name: "br_hum"
state_topic: dht11/hum
update_interval: 4s
- platform: adc 测量内部电压
pin: VCC
name: vcc
# internal: true
id: Voltage
state_topic: dht11/Voltage
update_interval: 3s
- platform: template 一个粗略的电量计算方法
name: "battery"
icon: mdi:battery
lambda: |-
if (id(Voltage).state > 3.41) {
return id(Voltage).state*380/3-432 ;
} else {
return 0;
}
update_interval: 4s
unit_of_measurement: "%"
state_topic: dht11/battery
目前 运行良好 可以看出休眠有在稳定运行
接下来是这个东西
`
好像没啥用的东西,方便练习用了
substitutions:
device_name: tpm
wifi_ssid: '@qqcdrbs'
wifi_password: '12345678'
wifi_fast_connect: 'false'
wifi_reboot_timeout: 60s
ota_password: '123456'
api_reboot_timeout: 0s
esphome:
name: $device_name
platform: ESP8266
board: nodemcuv2
on_boot: 开机的时候推送等级0
priority: -10
then:
- text_sensor.template.publish:
id: template_text
state: "等级0"
wifi:
ssid: $wifi_ssid
password: $wifi_password
reboot_timeout: $wifi_reboot_timeout
power_save_mode: none
fast_connect: $wifi_fast_connect
ap:
ssid: tpm
password: "12345678"
logger:
# web_server: web网页方便调试用,调试完毕后推荐关闭
# port: 80
# css_url: https://esphome.io/_static/webserver-v1.min.css
# js_url: https://esphome.io/_static/webserver-v1.min.js
mqtt:
id: mqtt_client
broker: 192.168.1.233
port: 1883
username: mqtt
password: mqtt
discovery_retain: false
ota:
safe_mode: true
password: $ota_password
#deep_sleep:
# run_duration: 6s
# sleep_duration: 1min
text_sensor: 一个文本传感器
- platform: template
name: "class of pollution"
id: template_text
state_topic: hdmi/text
binary_sensor:
- platform: gpio
name: tpm_a
internal: true
pin:
number: GPIO12
mode: INPUT_PULLUP
id: tpm_a
on_state: 根据tb详情页做的一个自动化 if 走起,当状态变化后执行下面代码
then:
- lambda: |-
if (id(tpm_a).state) {
if(id(tpm_b).state) {
id(template_text).publish_state("等级3");
}else{
id(template_text).publish_state("等级2");
}
} else {
if(id(tpm_b).state) {
id(template_text).publish_state("等级1");
}else{
id(template_text).publish_state("等级0");
}
}
- platform: gpio
name: tpm_b
internal: true
pin:
number: GPIO14
mode: INPUT_PULLUP
id: tpm_b
on_state:
then:
- lambda: |-
if (id(tpm_a).state) {
if(id(tpm_b).state) {
id(template_text).publish_state("等级3");
}else{
id(template_text).publish_state("等级2");
}
} else {
if(id(tpm_b).state) {
id(template_text).publish_state("等级1");
}else{
id(template_text).publish_state("等级0");
}
}