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

 找回密码
 立即注册
查看: 5073|回复: 8

[经验分享] 用ESPHOME搞一套超简单的雨量、风速模拟量监测装置(小白...

[复制链接]

2

主题

43

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
金钱
307
HASS币
0
发表于 2022-4-27 20:29:34 | 显示全部楼层 |阅读模式
本帖最后由 shaula 于 2022-4-27 22:14 编辑

家里装了电动的开窗器、电动雨篷,一直想用雨量、风速传感器来自动化。坛子里关于雨量传感器,基本都是用雨水板接一块模数转换小板,然后把小板的DO接到ESP8266或ESP32的引脚,做一个binary_sensor,传入小板的开关量。这样做有个问题,小板上的可变电阻不精确,并且只有开关量,无法实现感知雨量大小。而关于风速传感器,坛子里虽然有,但讲解不多。现将本人经验分享如下:
一、硬件
ESP32或ESP8266一块;雨水板子一块(模数小板没有应该也可以,但我是接了小板的);0-5V两线风速传感器(风杯)一个;INA219电源监控模块一个
二、软件
ESPHOME
三、接线
雨量传感器小板的AO接ESP32的ADC脚(我用GPIO34),DO接ESP32的GPIO引脚(我是接GPIO25)。风速传感器输出正极接INA219的VIN+,负极接VIN-并到ESP32的GND。INA219的SCL、SDA接ESP32的GPIO22、21引脚。雨量传感器小板、INA219上的VCC、GND分别并到ESP32 的3.3V和GND引脚。
四、ESPHOME代码
i2c: #声明I2C引脚位置
  sda: 21
  scl: 22
  scan: true
binary_sensor: #binary sensor这一段是监控小板传入的开关量信号,如果不需要小板的开关量,可以去掉
  - platform: gpio
    name: "water_sensor"
    pin: 
      number: GPIO25
      mode:
        input: true
        pullup: true   
      inverted: True       #如果不定义反转为下拉模式,则开关正好相反
    filters:
      - delayed_on: 100ms
      - delayed_off: 100ms
switch: #跟binary_sensor同一引脚设定为开关,解决下面根据雨量模拟量自动控制binary_sensor开和关的问题,相当于数模双控开关
  - platform: gpio
    pin:
      number: GPIO25
      inverted: True
    name: "relay1"  #雨量开关
    id: switch1
sensor:
  - platform: ina219
    shunt_resistance: 0.1 ohm 
    current:
      name: "windspeed_sensor"
      accuracy_decimals: 1 #默认是3,改为1后HA仪表盘上实体显示为小数点后一位,否则数据会抖动
      filters:
        - offset: 0.00019 # 我这里风杯不转时,读数是-0.00019,所以加了一个常数让它变0
        - lambda: return x * (32.4/0.2) ; #风杯最大风速是32.4米/秒,分母是我测试出来跟实际情况相差不大的值,可能不精确
      unit_of_measurement: "米/秒"
      icon: "mdi:sign-direction"
    max_voltage: 5V
    max_current: 2A #这里的5V是风杯最大电压,电流是乱填的,具体作用我还没搞懂
    update_interval: 1s
  - platform: adc
    pin: GPIO34
    name: "rain_data"
    attenuation: auto #这个不加上,ADC只能读到上限1.1伏
    update_interval: 1s
    filters: #因为模拟值波动较大,所以要加滤波器,配合较短的取样周期(1秒),可以提升稳定和精度
      - sliding_window_moving_average:
          window_size: 15
          send_every: 15
    on_value_range: #这段自动化,电压数值2.0和1.95也是自己摸索出来的,可以根据自身情况修改数值
      - above: 2.0
        then:
          switch.turn_off: switch1
      - below: 1.95
        then:
          switch.turn_on: switch1
声明:本人纯小白一个,搞法律的,啥编程微电子都不懂,靠瞎摸搞出来的,关于HA当中如何优化控制逻辑,有空再分享。大概思路是:因为风速传感器类似脉冲,为了防止突然一阵风就执行关雨篷命令,我用了两个辅助元素,一个计时,一个计数。再用一段自动化,当风速数据变化时触发,风速达到多少值后,计数加1,当在1小时之内,计数超过多少时,执行关雨篷命令,如果超过1小时,则重置计数器。
微信图片_20220427220505.jpg
微信图片_20220427220515.jpg

截图.JPG





评分

参与人数 1金钱 +20 收起 理由
+ 20 感谢楼主分享!

查看全部评分

回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2022-4-27 20:55:46 | 显示全部楼层
楼主可以选插入代码,会显示的更好看一些,也方便复制。
回复

使用道具 举报

54

主题

317

帖子

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1054
HASS币
0
发表于 2022-4-27 20:56:02 来自手机 | 显示全部楼层
没成品图不完美
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2022-4-28 10:03:11 | 显示全部楼层
哈哈 玩 homeassistant 不乏不务正业的律师,不务正业的医生。
Nero
回复

使用道具 举报

22

主题

731

帖子

3810

积分

论坛元老

Rank: 8Rank: 8

积分
3810
金钱
3074
HASS币
20
发表于 2022-4-28 18:02:43 | 显示全部楼层
哈哈,跟我之前玩的差不多,https://bbs.hassbian.com/thread-8390-1-1.html
回复

使用道具 举报

2

主题

43

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
金钱
307
HASS币
0
 楼主| 发表于 2022-4-28 20:47:34 | 显示全部楼层
henry2022 发表于 2022-4-28 14:22
ESP32的ADC输入iO有好几个,测风速是INA219测量输出电压是吧?有点大材小用了,完全可以电阻分压以后输入给 ...

主要是用adc试过有问题,风杯不转也会有电压,知识有限只能再入一块219,而且219按常规接法测总线电压,依然有风杯不转有电压的问题,再思不得其解后,通过将风杯负极接VIN-且并入GND来测负载电流的方式才最终解决问题。
回复

使用道具 举报

2

主题

43

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
金钱
307
HASS币
0
 楼主| 发表于 2022-4-28 20:48:38 | 显示全部楼层
ms2 发表于 2022-4-28 18:02
哈哈,跟我之前玩的差不多,https://bbs.hassbian.com/thread-8390-1-1.html

正是参考了你的贴子,多谢
回复

使用道具 举报

54

主题

317

帖子

1371

积分

金牌会员

Rank: 6Rank: 6

积分
1371
金钱
1054
HASS币
0
发表于 2022-4-28 20:51:36 来自手机 | 显示全部楼层
为什么不用845的风速传感器?
回复

使用道具 举报

10

主题

127

帖子

715

积分

高级会员

Rank: 4

积分
715
金钱
588
HASS币
0
发表于 2024-3-29 22:57:14 | 显示全部楼层
学习一下
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 11:39 , Processed in 0.081341 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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