本帖最后由 xubinbin 于 2023-8-29 22:28 编辑
模块选择:DHT22温湿度传感器、电容土壤湿度传感器、ESP32开发板
接线方式:
一、DHT22
“+”——>“3.3V”、“-”——>“GND”、“out”——>“GPIO4”
二、土壤湿度
“vcc”——>“3.3V”、“GND”——>“GND”、“AOUT”——>“GPIO32”
注意事项:ESP32 ADC2仅当设备上未配置 Wi-Fi 时,引脚才可用,因此只能使用GPIO32-GPIO39作为ADC引脚;
软件部分:
sensor配置
sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
update_interval: 5s
- platform: adc
pin: GPIO32
name: "1号土壤湿度"
unit_of_measurement: "%"
icon: "mdi:water-percent"
accuracy_decimals: 3
attenuation: 11db
update_interval: 1s
filters:
- sliding_window_moving_average:
window_size: 15
send_every: 15 #数据1s采集一次,采集15次后处理数据,再上传处理后的数据,即数据最终是15s更新一次
- lambda: !lambda |-
float y=215.32-72.993*x;
if (y<0)
{return 0;}
else if (y>100)
{return 100;}
else {return 215.32-72.993*x;}
PS:1、注意代码缩进; 2、最后的lambda中为了防止数值最后出现<0和>100的情况,加了if else做了下判定;
3、lambda中数值转换的公式需要自己去根据实际采集值做转换成0-100的百分比数据,不要硬套;
4、数据采集的时间自己根据需求设置;
来个最终效果图:
|