aht10 + aht10 + esp8266/esp32 = проблемы

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Суть такова хочется получать данные температуры и влажности в двух помещениях но используя один контроллер и используя то что есть в шкафу а именно aht10 и esp и все это приправив esphome
Но вот незадача на aht10 есть перемычка которая меняет адрес i2c но когда aht10 один то все нормально а как только их становится двое то начинаются проблемы
Проблемы вида некорректных данных особо не волную но все же и их хотелось бы избежать а основная проблема что через час или несколько часов шина i2c полностью виснет
В общем есть вопрос может кто с таким сталкивался
 

Вложения

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Сопротивлений на линиях не установлено, расстояния между датчиками стена в полтора кирпича а до первого aht сантиметров 5 ну может 6 итоговая длинна всей линии i2c около 40-50 сантиметров, причем проблемы начались когда я добавил датчик между aht и esp
 

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Будем пробовать, под рукой нет резисторов
А до скольки уменьшить скорость шины? у меня вроде 50 кгц щас
 

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Ну чтож помощники, почитал я чутка про эту шину и понял что в каждом устройстве есть резисторы по 10ком подтянутые от линии к плюсу проверил все что было дома aht10 bme260 ina225 и еще всяких разных, везде присутствует подтяжка к плюсовому контакту
Так вот возникает вопрос зачем добавлять еще сопротивления если они уже есть на каждом устройстве
И остается открытым вопрос по скорости шины до какого значения ее уменьшить
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,301
Москва
Почитал и измерил - совсем разные вещи. Сопротивление ДОЛЖНО быть установлено на линии. Если оно там есть, то доп. не нужно, а если нет ? Далеко не все производители ставят их. А если сопротивлений 2 шт, то это будет же не 10к , а 5, что приемлемо, а если еще меньше , то могут быть уже глюки.
Омметр в руки и измерять.
 

bort707

★★★★★★✩
21 Сен 2020
3,056
910
Если в датчике уже есть подтяжка, значит проблема не в этом. Надо искать что-то другое.
Нарисуйте схему ваших подключений и покажи е код.
 

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Сопротивление на каждом устройстве что я измерял 10ком от каждой линии к плюсу
Схема простая 5в от источника питания поступает в esp и также идет к двум датчикам aht10 и от esp идет линия i2c к двум датчикам первый на расстоянии около 5см второй около 30-40см

YAML:
esphome:
  name: dacha-street

esp8266:
  board: esp01_1m

i2c:
  sda: 04
  scl: 05
  scan: true
  id: bus_a
  frequency: 50kHz

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "+="

ota:
  password: ""

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.89.18
    gateway: 192.168.89.1
    subnet: 255.255.255.0 
    dns1: 8.8.8.8

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Dacha-Street Fallback Hotspot"
    password: ""

mqtt:
  broker: .hopto.org
  username: mqtt
  password:
web_server:
  port: 80
  version: 2 
captive_portal:

sensor:
  - platform: aht10
    temperature:
      name: "dacha_steet Room Temperature"
      id: aht_t
    humidity:
      name: "dacha_steet Room Humidity"
      id: aht_h
    update_interval: 30s
    address: 0x38
  - platform: aht10
    temperature:
      name: "dacha_steet Roof Temperature"
      id: aht_roof_t
    humidity:
      name: "dacha_steet Roof Humidity"
      id: aht_roof_h
    update_interval: 31s
    address: 0x39

    
  - platform: template
    name: "Dew Point dacha street"
    lambda: |-
     return (243.5*(log(id(aht_h).state/100)+((17.67*id(aht_t).state)/(243.5+id(aht_t).state)))/(17.67-log(id(aht_h).state/100)-((17.67*id(aht_t).state)/(243.5+id(aht_t).state))));
    unit_of_measurement: °C
    icon: 'mdi:thermometer-alert'     

text_sensor:
  - platform: version
    name: "ESPHome Version dacha-street"   
button:
  - platform: restart
    name: "dacha street Restart"
 

bort707

★★★★★★✩
21 Сен 2020
3,056
910
А ничего что ЕСП32 имеет логический уровень 3.3в ? А вы I2c к 5в притягиваете? Так можно порты I2с пожечь
 

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Ошибся питание датчиков идет к 3.3в
Синим отмечено куда подключена линия и питание к датчику
5в идет к пину V.USB
 

Вложения

LOG_DOG

✩✩✩✩✩✩✩
25 Авг 2023
7
0
Огромное спасибо всем кто помогал,
Диагноз таков датчики aht10 которые имеют перемычку для смены i2c адреса не могут корректно работать с адресом 0х39, только с адресом 0х38
Всем спасибо!