找回密码
 立即注册
查看: 1570|回复: 11

[技术探讨] M1820Z温度传感器接入esphome

[复制链接]

3

主题

5

回帖

252

积分

中级会员

积分
252
金钱
244
HASS币
0
发表于 2024-7-12 21:18:50 | 显示全部楼层 |阅读模式
本帖最后由 ouyangyiluo 于 2024-7-12 21:20 编辑

刚玩esphome没多久,如果有发现什么问题可以多多指正。


复制官方的dallas_temp修改的,因为协议都差不多,都是单总线协议。

效果图:
效果图.png


使用方法:
1. 首先,需要注释掉esphome中 one_wire的ROM ID CRC校验(47~51行,只保留50行)代码,要不然会一直校验不过,导致设备列表中没有M1820Z。M1820Z的数据手册有说明:
数据手册CRC校验说明.png

2. 导入外部组件,可以参考这个连接
external_components:
  - source:
      type: local
      path: components


3.  后面的流程和dallas_temp差不多

one_wire:
  - platform: gpio
    pin: GPIO18
    id: bus1

sensor:
  - platform: mysentech_m601_m1601_m1820
    one_wire_id: bus1
    name: "M1820Z"
    update_interval: 1s
    repeatability: 2 # 0=低可重复性; 1=中等可重复性; 2=高可重复性; 具体可看M1820Z数据手册;


yaml和外部组件源码:
test-m1820z.rar (4.13 KB, 下载次数: 7)

数据手册: M601 M1601 M1820高精度温度芯片产品手册-敏源202209-2.pdf (1.61 MB, 下载次数: 16)



回复

使用道具 举报

19

主题

263

回帖

2420

积分

论坛DIY达人

积分
2420
金钱
2133
HASS币
20
发表于 2024-7-13 11:07:35 来自手机 | 显示全部楼层
非常感谢楼主的分享。如楼主有时间,把敏源的MC12T电容芯片也做个外部组件,就太完美了
回复

使用道具 举报

3

主题

5

回帖

252

积分

中级会员

积分
252
金钱
244
HASS币
0
 楼主| 发表于 2024-7-13 12:33:46 | 显示全部楼层
polisher 发表于 2024-7-13 11:07
非常感谢楼主的分享。如楼主有时间,把敏源的MC12T电容芯片也做个外部组件,就太完美了 ...

手头没这个芯片,搜了下看没有包邮的。你自己尝试弄过吗?
回复

使用道具 举报

19

主题

263

回帖

2420

积分

论坛DIY达人

积分
2420
金钱
2133
HASS币
20
发表于 2024-7-14 11:52:55 | 显示全部楼层
ouyangyiluo 发表于 2024-7-13 12:33
手头没这个芯片,搜了下看没有包邮的。你自己尝试弄过吗?

没有尝试过。
很想做土壤湿度检测,使用太阳能,通过蓝牙广播进行数据传输,其中湿度检测想使用这个芯片。因为缺少低功耗设备调试和数据标定的仪器仪表,所以一直没感行动起来,不知道您有兴趣没有。
回复

使用道具 举报

3

主题

5

回帖

252

积分

中级会员

积分
252
金钱
244
HASS币
0
 楼主| 发表于 2024-7-14 21:57:26 | 显示全部楼层
polisher 发表于 2024-7-14 11:52
没有尝试过。
很想做土壤湿度检测,使用太阳能,通过蓝牙广播进行数据传输,其中湿度检测想使用这个芯片 ...

简单搜了下资料,可以用烘干称重法测量土壤含水率,功耗的话可以用万用表测个大概。我已经"斥巨资"下单了同系列的MC12G模组,过几天到手后再研究研究。
回复

使用道具 举报

19

主题

263

回帖

2420

积分

论坛DIY达人

积分
2420
金钱
2133
HASS币
20
发表于 2024-7-17 16:39:14 | 显示全部楼层
ouyangyiluo 发表于 2024-7-14 21:57
简单搜了下资料,可以用烘干称重法测量土壤含水率,功耗的话可以用万用表测个大概。我已经"斥巨资"下单了 ...

很期待。已经迫不及待想看看您的元件选择了
回复

使用道具 举报

3

主题

5

回帖

252

积分

中级会员

积分
252
金钱
244
HASS币
0
 楼主| 发表于 2024-8-1 01:38:13 | 显示全部楼层
polisher 发表于 2024-7-14 11:52
没有尝试过。
很想做土壤湿度检测,使用太阳能,通过蓝牙广播进行数据传输,其中湿度检测想使用这个芯片 ...

有现成的方案,你看看适合你不
https://bbs.hassbian.com/forum.p ... 4165&pid=404608
回复

使用道具 举报

3

主题

5

回帖

252

积分

中级会员

积分
252
金钱
244
HASS币
0
 楼主| 发表于 2024-8-1 01:44:57 | 显示全部楼层
polisher 发表于 2024-7-17 16:39
很期待。已经迫不及待想看看您的元件选择了

非专业人员,我买的是已经焊接好的模组(http://www.mysentech.com/filedownload/736906)。
最佳忙,没什么时间搞。目前是能用CH340连接模块测量数据,还没把代码移植到esphome。
回复

使用道具 举报

jjcs 手机认证

51

主题

1918

回帖

7767

积分

论坛元老

积分
7767
金钱
5788
HASS币
40
发表于 2024-8-1 02:04:05 | 显示全部楼层
支持,不过建议可以把外部组件在GitHub提交pr,说不定后续合并到官方
折腾精神永存,感恩感谢论坛每一位愿意分享和帮助过我的大佬,论坛有你更精彩
回复

使用道具 举报

0

主题

7

回帖

86

积分

注册会员

积分
86
金钱
79
HASS币
0
发表于 2025-1-19 18:41:05 | 显示全部楼层
src/esphome/components/mysentech_m601_m1601_m1820/mysentech_m601_m1601_m1820.cpp: In member function 'virtual void esphome::mysentech_m601_m1601_m1820::MysentechTemperatureSensor::setup()':
src/esphome/components/mysentech_m601_m1601_m1820/mysentech_m601_m1601_m1820.cpp:91:14: error: 'to_underlying' is not a member of 'std'
  cfg |= std::to_underlying(this->repeatability_);
              ^~~~~~~~~~~~~
src/esphome/components/mysentech_m601_m1601_m1820/mysentech_m601_m1601_m1820.cpp:94:14: error: 'to_underlying' is not a member of 'std'
  cfg |= std::to_underlying(CfgMps::Single);
              ^~~~~~~~~~~~~
src/esphome/components/mysentech_m601_m1601_m1820/mysentech_m601_m1601_m1820.cpp:97:14: error: 'to_underlying' is not a member of 'std'
  cfg |= std::to_underlying(CfgAlarm:isable);
              ^~~~~~~~~~~~~
*** [.pioenvs/esp32c3ch340-2-1/src/esphome/components/mysentech_m601_m1601_m1820/mysentech_m601_m1601_m1820.cpp.o] Error 1
不知什么问题
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2025-5-4 10:35 , Processed in 0.272432 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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