『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 3026|回复: 12

[技术探讨] ESPhome读取太阳能热水器水位/水温

[复制链接]

9

主题

53

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
金钱
227
HASS币
0
发表于 2023-12-6 18:22:31 | 显示全部楼层 |阅读模式

  ####################    太阳能水温传感器    ####################
  - platform: ntc # 》水温检测参数《
    sensor: resistance_sensor #
    icon: mdi:sun-thermometer-outline
    calibration:
      b_constant: 3435 #NTC的B值
      reference_temperature: 25°C #NTC标称温度参数
      reference_resistance: 10kOhm #NTC标称温度阻值
    name: "solar_temp"
    #device_class: "battery" #更改设备类型
    accuracy_decimals: 1 #更改小数点位数

  # Example source sensors:
  - platform: resistance
    id: resistance_sensor
    sensor: solar_temp
    configuration: DOWNSTREAM
    resistor: 5.024kOhm #分压电阻阻值
    #name: "9solar_水温阻值"

  - platform: adc
    id: solar_temp
    pin: GPIO1
    name: "solar_temp_adc1"
    update_interval: 1s # never update
    accuracy_decimals: 2 #更改小数点位数
    attenuation: 11db
    filters:
      - sliding_window_moving_average: # 滤波
          window_size: 15
          send_every: 15

  ####################    太阳能水位传感器    ####################
  - platform: adc
    id: solar_water_level
    pin: GPIO4
    name: "solar_water_level_adc4"
    update_interval: 1s # never update
    accuracy_decimals: 2 #更改小数点位数
    attenuation: 11db
    filters:
      - sliding_window_moving_average: # 滤波
          window_size: 30
          send_every: 15

  - platform: template
    update_interval: 30s
    name: "solar_water_level"
    unit_of_measurement: "%"
    accuracy_decimals: 0
    icon: mdi:cup-water
    lambda: |-
      float x = id(solar_water_level).state;
      if ( x >2.43 ) {return 0;}
      else if (x > 2.3 ){return 25;}
      else if (x > 2.0 ){return 50;}
      else if (x > 1.7 ){return 75;}
      else {return 100;}

                               
登录/注册后可看大图

esp32C3主控,使用的是这种4芯水位水温传感器(内部就是电阻分压)采集ADC

水位:我就是采集不同的电压,然后划分不同阶段的水位(0% 25% 50%......100%),这个方法简单粗暴,但是精度不好,采集的电压会飘来飘去,在临界值就会在(例如50%  和   75%)一直跳变,如何做到像太阳能面板那样稳定???
水温:adc采集电压----->resistance----->ntc --->最后得到温度(这部分代码是抄网上的,像套娃一样,得到的温度还不准)

评分

参与人数 2金钱 +26 收起 理由
sorrypqa + 16 大神666!
隔壁的王叔叔 + 10 厉害了word楼主!

查看全部评分

回复

使用道具 举报

1

主题

15

帖子

122

积分

注册会员

Rank: 2

积分
122
金钱
107
HASS币
0
发表于 2023-12-7 08:50:20 | 显示全部楼层
如果外面传感器电阻有个100K左右的,最好加一个运放跟随一下电压,然后就是设置一个回差电压,比如1V是判断点,那么就是下降时低于1.9为一档,上升时高于2.1为二挡。这样就不会来回跳了,回差的范围可以自己设定一下。还有就是可以软件滤波一下。平均值滤波什么的
回复

使用道具 举报

23

主题

243

帖子

2319

积分

金牌会员

Rank: 6Rank: 6

积分
2319
金钱
2076
HASS币
0
发表于 2023-12-7 09:55:38 | 显示全部楼层
水温用ds1802比较好,精度高
回复

使用道具 举报

9

主题

53

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
金钱
227
HASS币
0
 楼主| 发表于 2023-12-7 10:34:33 | 显示全部楼层
Dwyer 发表于 2023-12-7 08:50
如果外面传感器电阻有个100K左右的,最好加一个运放跟随一下电压,然后就是设置一个回差电压,比如1V是判断 ...
filters:
      - sliding_window_moving_average: # 滤波
          window_size: 30
          send_every: 15

软件上是有使用到滤波的,但是效果甚微,感觉还是硬件上的问题
你提到的这个硬件修改方法,有电路图吗?方便分享一下吗
回复

使用道具 举报

9

主题

53

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
金钱
227
HASS币
0
 楼主| 发表于 2023-12-7 14:31:09 | 显示全部楼层
bhc1365 发表于 2023-12-7 09:55
水温用ds1802比较好,精度高

我之前也想过ds1802,但是这个只能测水温,水位还要额外的传感器
而且ds1802的很多线材泡在100度的水里,会污染水质
回复

使用道具 举报

23

主题

243

帖子

2319

积分

金牌会员

Rank: 6Rank: 6

积分
2319
金钱
2076
HASS币
0
发表于 2023-12-9 20:25:37 | 显示全部楼层
996054544 发表于 2023-12-7 14:31
我之前也想过ds1802,但是这个只能测水温,水位还要额外的传感器
而且ds1802的很多线材泡在100度的水里,会 ...

可以用6mm不锈钢管做外套,,我就是这样做的,效果很好
回复

使用道具 举报

1

主题

94

帖子

1031

积分

金牌会员

Rank: 6Rank: 6

积分
1031
金钱
937
HASS币
0
发表于 2023-12-9 21:04:51 | 显示全部楼层
不知道你电路是怎么设计的,我后来上加了个滤波电容,就稳定很多了,不过他这个水量的AD值也不是线性的,50%,75%,100%都还好,相差很大,25%-50%这个区间的AD值相差是比较小的,比较难区分
回复

使用道具 举报

9

主题

53

帖子

280

积分

中级会员

Rank: 3Rank: 3

积分
280
金钱
227
HASS币
0
 楼主| 发表于 2023-12-11 15:12:27 | 显示全部楼层
shane000 发表于 2023-12-9 21:04
不知道你电路是怎么设计的,我后来上加了个滤波电容,就稳定很多了,不过他这个水量的AD值也不是线性的,50 ...

这就是我的电路,比较简单
微信图片_20231211150957.jpg
回复

使用道具 举报

1

主题

94

帖子

1031

积分

金牌会员

Rank: 6Rank: 6

积分
1031
金钱
937
HASS币
0
发表于 2023-12-14 07:04:42 | 显示全部楼层
996054544 发表于 2023-12-11 15:12
这就是我的电路,比较简单

我的也是这样,我后来加了滤波电容就好很多了
回复

使用道具 举报

6

主题

217

帖子

1321

积分

金牌会员

Rank: 6Rank: 6

积分
1321
金钱
1104
HASS币
0
发表于 2024-3-18 01:00:07 | 显示全部楼层
直接把传感器接到esp32的针脚上吗?不用额外接电容电阻啥的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 09:33 , Processed in 0.152223 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表