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

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

[硬件DIY] Modbus激光测距模块接入HA,实现油罐液位检测。

[复制链接]

5

主题

94

帖子

823

积分

高级会员

Rank: 4

积分
823
金钱
729
HASS币
0
发表于 2024-4-13 10:43:21 | 显示全部楼层 |阅读模式
公司里面有两个重油罐,里面的油料需要加温到90度左右,并且带有轻微的腐蚀性。工作过程中需要时不时检查油料液位,这个工作挺繁琐的。于是就想着怎么搞个免接触的液位传感器。翻了大量的资料发现有ESPHome挂vlx5311的能检测到4米范围,弄了一个刚开始还挺正常的直到有一天注油的时候把传感器淹了。看来这个方案还是有点问题,必须把传感器提高到离开油罐的位置才是安全的,由于检测孔直径只有10厘米左右的,检测角度小必须采用检测角度小的传感器,所以超声波那些就排除了。后来在淘宝上逛的时候看到激光测距模块检测角度只有1.4度,6m检测距离光斑扩散直径才5厘米左右,这个太合适了!在海鲜市场淘了两个modbus协议的激光测距模块,再淘了个modbus rtu转tcp的网关,就这样硬件就搞定了。下面贴出congfig.yaml的配置

modbus:
  - name: "temper"
    type: tcp
    host: 192.168.0.121
    port: 8899
    sensors:
      - name: dist1
        slave: 23
        address: 1
        input_type: holding
        scan_interval: 10
        unit_of_measurement: "mm"
      - name: dist2
        slave: 22
        address: 1
        input_type: holding
        scan_interval: 30
        unit_of_measurement: "mm"


其中slave是两个激光测距仪modbus的地址。这两个数值是传感器到油罐液面的距离,还要想办法转化为油罐里面剩余数量。两个油罐是卧式平头圆柱罐,查了网上怎么计算体积的公式然后再做了两个template传感器。这种传感器在HA的配置页面里的“设备与服务”选项下可以添加,选择“配置”里的“”设备与服务“再选择“辅助元素”里面的“添加辅助元素”按钮,在里面就有“Template”选项选择这个后跳出“Template a sensor”就可以添加了,其中最重要的是状态模版的内容,顺便贴出如下:
1:油罐里面油料液位高度xg_hight

{% if (1.5 - states('sensor.dist1')|float /1000)<0 %}
  {{ 0 }}
{% else %}
  {{ (1.5 - states('sensor.dist1')|float /1000) }}
{% endif %}

这个数据中的1.5是指传感器到罐底距离多少米,这个要根据实际量量一下再进行修改。
2:油罐里面油料体积

{{ 7.95*(asin(states('sensor.xg_hight')|float -1)+(states('sensor.xg_hight')|float -1)**2*sqrt(1-(states('sensor.xg_hight')|float -1)**2)+1.5708) | float | round(2) }}


其中7.95是油罐长度,xg_hight是第一个template传感器。油罐半径是1米,这个计算公式是卧式油罐计算公式根据半径1米简化得到的,如果半径不同则需进行相应的调整。
这样就能根据激光测距传感器测的距离直接得到油罐里面油料的液位高度及体积的数据了。
上面连个template传感器只是一个油罐的数据,另外油罐进行相应的操作也就有了数据了。


评分

参与人数 3金钱 +33 收起 理由
qian + 5 感谢楼主分享!
sorrypqa + 16 高手,这是高手!
隔壁的王叔叔 + 12 感谢楼主分享!

查看全部评分

回复

使用道具 举报

7

主题

1072

帖子

3361

积分

论坛元老

Rank: 8Rank: 8

积分
3361
金钱
2289
HASS币
0
发表于 2024-4-13 11:00:10 | 显示全部楼层
很棒,解决实际问题
回复

使用道具 举报

32

主题

2005

帖子

5103

积分

论坛元老

Rank: 8Rank: 8

积分
5103
金钱
3098
HASS币
50
QQ
发表于 2024-4-14 13:37:16 | 显示全部楼层
看前边的时候正想说激光测距,往后看可看到了。
给大佬点赞。
我不生产技术,我只是技术的搬运工。
回复

使用道具 举报

3

主题

295

帖子

2876

积分

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2581
HASS币
0
发表于 2024-4-14 15:09:29 | 显示全部楼层
感谢分享,请问是哪一款激光测距传感器?麻烦给个链接或者关键词
回复

使用道具 举报

5

主题

94

帖子

823

积分

高级会员

Rank: 4

积分
823
金钱
729
HASS币
0
 楼主| 发表于 2024-4-15 20:31:36 | 显示全部楼层
本帖最后由 iceman7803 于 2024-4-15 20:42 编辑
iamhyde 发表于 2024-4-14 15:09
感谢分享,请问是哪一款激光测距传感器?麻烦给个链接或者关键词

关键词:瑞兴。记得看modbus协议的。modbus rtu转tcp关键词:汉枫。其实modbus智能仪表还是有很多的,而且接入HA也是非常方便。我就在工厂里面利用modbus智能仪表把沥青罐的温度检测,锅炉报警控制,空压机控制等接入到HA,因为是工业仪表,稳定性极好。全年运行都没问题!老家里也是用的modubs把院子大门,院子花草浇水这些都接入到HA的!另外还给朋友工厂做了一个32台注塑机每天注塑数据统计,也是全年运行不停,非常稳定!看看有没有兴趣的,我再开贴说下。
回复

使用道具 举报

1

主题

99

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
金钱
191
HASS币
0
发表于 2024-4-15 21:02:51 | 显示全部楼层
插眼,学习一波
回复

使用道具 举报

0

主题

12

帖子

206

积分

中级会员

Rank: 3Rank: 3

积分
206
金钱
194
HASS币
0
QQ
发表于 3 天前 | 显示全部楼层
iceman7803 发表于 2024-4-15 20:31
关键词:瑞兴。记得看modbus协议的。modbus rtu转tcp关键词:汉枫。其实modbus智能仪表还是有很多的,而且 ...

你好,你HA用是最版本吗?可以分享下多些代码吗,我也打算把家里面东西通过485接入HA。谢谢
回复

使用道具 举报

5

主题

94

帖子

823

积分

高级会员

Rank: 4

积分
823
金钱
729
HASS币
0
 楼主| 发表于 昨天 19:27 | 显示全部楼层
HA版本时2023.11.3的。我用的是rtu转tcp的网关。configuration.yaml里面的配置其实一楼已经写的很清楚了。你要根据你485的接入方式来写配置文件。有什么问题具体提出来讨论。
回复

使用道具 举报

0

主题

80

帖子

617

积分

高级会员

Rank: 4

积分
617
金钱
537
HASS币
0
发表于 昨天 21:40 | 显示全部楼层
iceman7803 发表于 2024-4-15 20:31
关键词:瑞兴。记得看modbus协议的。modbus rtu转tcp关键词:汉枫。其实modbus智能仪表还是有很多的,而且 ...

多介绍一下请大家跟着学习一下。
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-2 19:11 , Processed in 0.161682 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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