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

 找回密码
 立即注册
查看: 1815|回复: 13

[硬件DIY] 使用esp8266mini接入bh1750和sht3xd问题,请教

[复制链接]

1

主题

7

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
65
HASS币
0
发表于 2022-10-19 15:17:10 | 显示全部楼层 |阅读模式
请教下,使用esp8266mini接入bh1750和sht3xd后,烧录esphome程序,代码如下:


captive_portal:

i2c:
  - id: bus_a
    sda: D6
    scl: D5
    scan: True
  - id: bus_b
    sda: D3
    scl: D2
    scan: True



sensor:
  - platform: bh1750
    i2c_id: bus_a
    name: "OutDoor Illuminance"
    address: 0x5C
    update_interval: 30s

  - platform: sht3xd
    i2c_id: bus_b
    address: 0x44
    temperature:
      name: "OutDoor Temperature"
      id: "outDoor_temperature"
    humidity:
      name: "OutDoor Humidity"
      id: "outDoor_humidity"
    update_interval: 40s



一直在报 [14:59:58][E][bh1750.sensor:121]: Communication with BH1750 failed! 这个错误,之前没用 sht3xd 而是是用dht11,走的不是i2c,是没有问题的。请问下是因为esp8266mini不支持2个i2c的原因么,还是代码上有问题,谢谢各位
IMG_8566.JPG
回复

使用道具 举报

4

主题

193

帖子

2619

积分

金牌会员

Rank: 6Rank: 6

积分
2619
金钱
2426
HASS币
0
发表于 2022-10-19 21:03:41 | 显示全部楼层
8266只有一个I2C
回复

使用道具 举报

2

主题

123

帖子

1685

积分

金牌会员

Rank: 6Rank: 6

积分
1685
金钱
1562
HASS币
0
发表于 2022-10-19 22:54:33 | 显示全部楼层
两个i2c设备,要指定地址,bh1750好像是ox23?看看手册吧
回复

使用道具 举报

17

主题

765

帖子

5318

积分

论坛元老

Rank: 8Rank: 8

积分
5318
金钱
4548
HASS币
0
发表于 2022-10-19 23:08:24 | 显示全部楼层
bh1750默认是0x23,地址改下试试。
不记得esp8266有几个i2c了,不过i2c可以接多个设备,接一个上就行
回复

使用道具 举报

4

主题

159

帖子

1080

积分

论坛技术达人

积分
1080
金钱
906
HASS币
60
发表于 2022-10-20 08:26:09 | 显示全部楼层
设置地址,两个i2c设备在一个总线上地址不能一样
回复

使用道具 举报

13

主题

228

帖子

1586

积分

金牌会员

Rank: 6Rank: 6

积分
1586
金钱
1358
HASS币
10
发表于 2022-10-20 15:51:54 | 显示全部楼层
esp8266支持1个i2c,esp32支持2个i2c。

bh1750(gy30/gy302)出现通讯失败这个我不能说有经验,踩坑无数比较合适……


首先需要检查接线或者焊接需否松动或者虚焊,建议检测电压芯片3.3v、模块5v;


然后查看对应代码,bh1750默认是0x23,esp8266默认sda是gpio4、scl是gpio5(不建议用d);


因为esp8266只支持1个i2c,所以不需要区分a和b,只需要确保光照和温湿度的地址不一样就可以了。


我没有用sht3系列,用的是aht21(应该大同小异),aht21数据手册有对应地址,但esphome示例没要求,目前正常使用。


代码参考:
i2c:
  sda: GPIO4
  scl: GPIO5
  scan: true
  id: bus_a

sensor:
  - platform: aht10
    temperature:
      name: "test temperature"
      id: test_wendu
    humidity:
      name: "test humidity"
      id: test_shidu
    update_interval: 10s

  - platform: bh1750
    name: "test illuminance"
    address: 0x23
    update_interval: 10s


回复

使用道具 举报

1

主题

7

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
65
HASS币
0
 楼主| 发表于 2022-10-21 20:06:23 | 显示全部楼层

非常感谢您的回答。没有办法只好用2个试试了
回复

使用道具 举报

1

主题

7

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
65
HASS币
0
 楼主| 发表于 2022-10-21 20:07:37 | 显示全部楼层
dengxiao 发表于 2022-10-19 22:54
两个i2c设备,要指定地址,bh1750好像是ox23?看看手册吧

非常感谢您的回答。看esphome官网,说有高低一说,都试了下,都不行
回复

使用道具 举报

1

主题

7

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
65
HASS币
0
 楼主| 发表于 2022-10-21 20:08:52 | 显示全部楼层
sirakawa 发表于 2022-10-19 23:08
bh1750默认是0x23,地址改下试试。
不记得esp8266有几个i2c了,不过i2c可以接多个设备,接一个上就行 ...

非常感谢您的回答。没有办法只好用两个8266了~~
回复

使用道具 举报

1

主题

7

帖子

72

积分

注册会员

Rank: 2

积分
72
金钱
65
HASS币
0
 楼主| 发表于 2022-10-21 20:10:22 | 显示全部楼层
RobinVP 发表于 2022-10-20 08:26
设置地址,两个i2c设备在一个总线上地址不能一样

非常感谢您的回答。您指的不同地址是什么呢?我只是在网上看的教程,没有学过专业知识,还望您指教,谢谢
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-12 03:27 , Processed in 0.057322 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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