家里有个传统的3M的净水器,有时放水太慢人离开忘记关闭,导致费水,于是想搞个传感器写个自动化通知来提醒,在网上找一款DWS-MH-01三合一传感器集成霍尔流量温度和TDS的。
代码小白,都是问的AI,霍尔代码是写好的,但是这个温度和TDS不知道该如何写,AI给出的完全不准,现想请教一下大佬该如何正确写这两个传感器的代码。
网上找到这个传感器的技术细节
供电是3.5V起,直接用ESP32的3.3V供电的,不知道这个有没有影响?
AI给的ESPhome代码
sensor:
# 流量传感器:霍尔管输出脉冲,pulse_counter 读取
- platform: pulse_counter
name: "DWS Flow Rate" # 流量(升/分钟)
pin: GPIO4 # TODO: 连接流量传感器脉冲输出的 GPIO 引脚
unit_of_measurement: "L/min"
update_interval: 1s
# 默认输出单位为 脉冲/分钟,假设 450 脉冲 = 1 升
filters:
- multiply: 0.000462962963 # 1/450,将脉冲频率转换为 L/min
total:
name: "DWS Total Flow" # 累计总流量(升)
unit_of_measurement: "L"
filters:
- multiply: 0.000462962963 # 同样转换累计脉冲数
# 温度传感器:ADC 读取模拟电压,并校准为摄氏度
- platform: adc
name: "DWS Water Temperature"
pin: GPIO32 # TODO: 连接温度传感器输出的 GPIO 引脚
unit_of_measurement: "°C"
attenuation: auto # 自动衰减,可测量高达 ~3.12V(见文档:contentReference[oaicite:17]{index=17})
update_interval: 5s
filters:
- calibrate_linear: # 线性校准示例(电压:温度)
- 0.33 -> -25.0
- 2.97 -> 80.0
name: "DWS Water TDS"
pin: GPIO33 # TODO: 连接 TDS 传感器输出的 GPIO 引脚
unit_of_measurement: "ppm"
attenuation: auto
update_interval: 5s
filters:
- calibrate_linear: # 线性校准示例(电压:TDS值)
- 0.33 -> 0.0
- 2.97 -> 20000.0
|