Potrzebuję czujnik wilgotności i Temperatury

Nie zajrzałeś do wątku, który podlinkowałem wyżej? To po kiego grzyba Ci pomagać?

Linkuję jeszcze raz, bo to lektura obowiązkowa, tym razem przeczytaj cały
https://forum.arturhome.pl/t/esp8266-rozszerzenie-i2c/9695/

PS jesteś botem? (nikt tu wcześniej nie używał angielskiej pisowni).

Nie jestem botem
Obstawiałem ze wystarczy podpiąć i w ESPhome kod i będzie działać (tak jest na filmach na YouTube hahahahaha )

dla mnie to nowość na YouTube się naoglądałem kasę władowałem i chce to wszystko teraz uruchomić
ostatnio miałem tzn. nadal mam problem a problem mam z przewodami wszystkie problemy jakie miałem z programowaniem i użytkowaniem wina przewodów po wymianie wszystkich przewodów mam tylko z jednym ESP8266

dla mnie to nowość

Nie widzę nadziei, wszystko co istotne napisaliśmy pół roku temu… szkoda, że olałeś czytanie odpowiedzi (ze zrozumieniem).

Jeśli chcesz podpiąć więcej niż 2 czujniki z tej rodziny do jednego MCU ESP8266 to potrzebujesz multipleksera I2C - on rozmnoży jedną magistralę na kilka podrzędnych magistral, możesz go kupić w PL np. tam:

albo w ChRL…

Teraz można się tylko powtarzać

Do poczytania (zajebisty bryk, polecam w oryginale, bo tłumaczenie maszynowe zwykle psuje teksty techniczne), to jest też obowiązkowa lektura - gdybyś przeczytał (bo, linkowałem to z pół roku temu), to byś wiedział, że tylu czujników z jednej rodziny nie podłączysz na jednej magistrali, bo im adresów braknie

swoją drogą sam to też pisałem ileś-tam postów wyżej…

@Łukasz435 to nie bot. Bot użył by, choć raz, przecinka. :rofl: :face_with_open_eyes_and_hand_over_mouth:

1 polubienie

Panowie tak jak napisałem coś mi się w głowie uwaliło ze wystarczy tylko kod i na jednym ESP8266 dwa czujniki dlatego nie czytałem tak dokładnie …
Zamówiłem TCA9548A jutro będę miał
Jak powinien wyglądać kod ??? do 4szt BME280

Z dwoma wpiętymi bezpośrednio w główną i jedyną szynę I2C w ESP8266 nie widzę problemu - na jednym zmieniasz adres, a jak to zrobić jest opisane w tym drugim wątku, który linkowałem wyżej. (To w końcu jak? Chcesz podpiąć dwa, czy pięć, bo to robi różnicę! Dwa nie wymagają multipleksera.)
Co ciekawsze tam powinien być też raczej działający kod (oczywiście musisz go zmodyfikować pod siebie), bo jego założyciel przyznał się (wprawdzie mocno mętnie, więc to tylko mój domysł), że pomylił BMP280 z BME280 czy odwrotnie?

Znając twoją niechęć do czytania uprzedzam, TCA9548A ma konfigurowany adres, więc musisz go skonfigurować - piny A0-A2 (można wrzucić 8 takich multiplekserów na główną szynę I2C, co daje łącznie 64 przełączane szyny, więc teoretycznie maksymalnie można wtedy podpiąć 128 BME280 do jednego ESP8266 - nie wiem czy przy takim szaleństwie on nie klęknie :stuck_out_tongue: ), dokumentacja (jako datasheet) jest niemal zawsze załączona do odpowiedniego kawałka dokumentacji ESPHome, link do bryku (mam nadzieję, że już wiesz, iż chodzi po prostu o mocny skrót dokumentacji):

W dokumentacji masz przykład adresowania tego multipleksera

oczywiście musisz to połączyć w głowie z dokumentacją dla BME280

oczywiście konfiguracja (kod) zależy od tego jak to popodpinasz, nie ma jakiegoś uniwersalnego i jedynego słusznego - musisz go dopasować do sprzętu.

Jak widzisz naskrobałem konfigurację dla 4 sensorów podpiętych na 3 magistralach multipleksera oraz dodatkowo 2 podpiętych do głównego I2C = bezpośrednio do ESP
(to celowe, bo na początku tego wątku pisałeś o tym, że chcesz mieć jedną magistralę, ale to niemożliwe przy 5 sensorach z tej rodziny, więc pewnie będziesz chciał zminimalizować ilość magistral - na tych 3 magistralach można upchnąć 6 czujników BME280, ale zrozum że to moje paluszki pisały, więc też się nie chciały narobić - masz przykład uwzględniający co się tylko da = podpięcie po 2 czujniki na magistrali multipleksera, podpięcie bez zmiany adresów na oddzielnych magistralach, czy wpięcie przed i za multiplekserem; resztę kodu doklep sam)

# Example I2C bus 0 
i2c:
  sda: 4 # GPIO tylko przykładowe
  scl: 5 # GPIO tylko przykładowe
  scan: True
  id: i2c0
# Example configuration entry multiplexer TCA9548A on bus i2c0
tca9548a:
  - address: 0x75
    id: multiplex0
    i2c_id: i2c0
    channels:
      - bus_id: multiplex0channel0
        channel: 0
      - bus_id: multiplex0channel1
        channel: 1
      - bus_id: multiplex0channel2
        channel: 2

# Individual BME280 I2C Devices 
sensor:
  - platform: bme280
    i2c_id: multiplex0channel0
    address: 0x76
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_0_0"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_0_0"
    humidity:
      name: "BME280 Humidity_0_0"

  - platform: bme280
    i2c_id: multiplex0channel0
    address: 0x77
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_0_1"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_0_1"
    humidity:
      name: "BME280 Humidity_0_1"

  - platform: bme280
    i2c_id: multiplex0channel1
    address: 0x76
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_1_0"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_1_0"
    humidity:
      name: "BME280 Humidity_1_0"

  - platform: bme280
    i2c_id: multiplex0channel2
    address: 0x76
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_2_0"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_2_0"
    humidity:
      name: "BME280 Humidity_2_0"

  - platform: bme280
    i2c_id: i2c0
    address: 0x76
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_ESP_0"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_ESP_0"
    humidity:
      name: "BME280 Humidity_ESP_0"

  - platform: bme280
    i2c_id: i2c0
    address: 0x77
    update_interval: 60s
    temperature:
      name: "BME280 Temperature_ESP_1"
      oversampling: 16x
    pressure:
      name: "BME280 Pressure_ESP_1"
    humidity:
      name: "BME280 Humidity_ESP_1"

PS Przy konfigurowaniu adresów musisz myśleć o schemacie połączeń (dlatego multiplekser umieściłem pod 0x75, by nie miał adresu w konflikcie z BMxy80 gdybyś chciał podpiąć też czujniki przed multiplekserem, bo przecież może on być umieszczony obok ESP, ale w sumie nie musi, jeśli zapewnisz mu stabilne zasilanie i sensowne połączenie).
Jeśli czytasz jakieś tutoriale (to dotyczy też starych filmików) starsze niż 2 lata, to składnia adresowania multipleksera jest obecnie inna niż była kiedyś.

PPS Ten temat zaczął mnie intrygować, ale wczoraj miałem zbyt duży wqrw, na to, że nie szanujesz naszego czasu i wkładu pracy w daremną pomoc.
Możesz to trochę rozwinąć?

(i zacząć używać przecinków w zdaniach wielokrotnie złożonych albo chociaż dzielić wypowiedź na krótkie osobne zdania - popatrz na to powyżej i się zastanów dlaczego jest to niestrawne dla oczu)

Przypomnę jeszcze to

podzielisz się tym zarysem, czy nadal będziemy podpowiadać “w ciemno”?

Witam :blush: projekt składa się z 3 pomieszczeń docelowo dojdą jeszcze 2 ale to dopiero za parę lat (kasa kasa kasa )

Pomieszczenie Serwerownia

1 liczniki PZM-004T 16 szt

2 czujnik temperatury MAX31865 2 szt. Pokazują mi temperaturę 147.7c ??? odczytuję to jako temperaturę 14,7???

3 czujnik temperatury ds18b20 3szt.

4 czujnik temperatury i wilgotności BME280 3,3V 2 szt

5 licznik dwukierunkowy sdm630

6 PV zrobiłem na PZM-004T

Pomieszczenie kotłownia

1 czujniki temperatury BME280 3,3V 5szt

2 czujnik temperatury DS18B20 12szt

Pomieszczenie strych

1 czujnik temperatury MAX31865 szt2

2 czujnik temperatury i wilgotności BME280 5szt

3 stacja pogody na kominie (w Planach jak uzbieram fundusze)

Do tego mam 2szt czujniki temperatury i wilgotności Tuya 2szt

Gniazdka tuya 3szt

Teraz sobie sparowałem grzejnik olejowy gniazdko TUYA z czujnikiem temperatury TUYA na okres zimowy spowodowane nadmiaru kwh z fotowoltaiki

ten kod nie działa te czujniki co mam BME280 działają na adresie 76

Adres 77 jest błędny

Moim zdaniem zły pomysł.

Moim zdaniem, chory kraj - kto jeszcze nie był… do 21.00 możesz spróbować to zmienić :index_pointing_at_the_viewer:

2 polubienia

a co z tym kodem jest nie tak ???

stacja pogody na kominie ??? komin nie czyny ??? jest bo jest ???

jeśli chodzi o ogrzewanie grzejnikiem olejowym to mam nadmiar 2500kw/h posiadam jeszcze klimatyzator którym tak samo się ogrzewam do grudnia mam w planach grzać się prądem

co z tym kodem próbuję połączyć się przez ESP8266 Nodemcu TCA9548A i 4szt BME280 powyżej kod nie działa zmieniałem adresy z 77 na 76 i nic (adres 77 jest nie poprawny do BME280 )

Przykro mi skoro nic nie zrozumiałeś… to tu chyba nikt cudu nie uczyni.
Poprawny jest zarówno 0x76 jak i 0x77 - to zależy jak jest skonfigurowany czujnik sprzętowo - przez podanie odpowiedniego poziomu na piny decydujące o adresie.
Zrób ładne zdjęcia makro (z obu stron) swoich płytek z czujnikami, to może będzie mi się chciało (nie obiecuję, zdjęcia muszą być naprawdę dobre) na nich narysować gdzie się to konfiguruje.

Nie wyobrażam sobie byś na bazie jednego ESP mógł zbudować urządzenie, które jednocześnie obsłuży i piwnicę i strych - magistrale I2C muszą być możliwie krótkie.

Miejsce na kominie jest jednym z najgorszych jakie można wymyślić na stację pogodową (praktycznie wszystkie wskazania są tam oderwane od rzeczywistości).

Nie wkleiłeś żadnego własnego kodu, to nikt go nie przeanalizuje.
Daj też od razu logi, nikt z chaosu nie będzie się domyślał co masz w głowie, kod ma być kompletny, a logi pokazywać przynajmniej jakieś problemy (warto dodać logi z kompilacji, a nie tylko z nieprawidłowego działania).

1 polubienie





Fotki robiłem podczas podłączanie 3szt BME280 mają wspólne zasilanie 1 szt ma oddzielnie zasilanie

W tym wykonaniu PCB czujnika BMx280 o adresie decyduje pin SDO

SDO_CSB_BMx280_2023-10-16_19-15

na obrazku to pin zaznaczony 1 - za jego pomocą adresujesz BMx280
jeśli podpięty do masy to 0x76
jeśli do zasilania to 0x77
pin CSB z cyferką dwa służy do zmiany trybów I2C/SPI i ma zostać niepodłączony

ale fabrycznie w tym wykonaniu SDO jest ściągnięty pulldownem 10k do masy, gdybyś wrzucił prawdziwe zdjęcia makro swoich płytek to mógłbym je przeanalizować, a tak analiza na podstawie zdjęć z sieci

  1. czerwone kółka pokazują połączenia pinu GND z płaszczyzną masy na spodniej stronie PCB, kólka zielone i niebieskie pokazują przelotki (ang. vias) na drugą stronę PCB, wszystkie kółka wskazują na ścieżki i płaszczyzny połączone razem (czyli z masą)

  2. na wierzchniej stronie widać je słabo - po to te kolorowe kółka, niebieska strzałka wskazuje że rezystor 10k jest podpięty do masy (druga strona rezystora to oczywista oczywistość)

stąd adres 0x76, jeśli chcesz przeadresować taką wersję płytki na 0x77 to podajesz 3,3V (podkradzione z zasilania) na pin SDO

Błędny adres 0x75 zmieniłem na 0x70 ??? z nowym Adresem wszystko działa
BMP280 adresowanie 0x77 działa po podaniu plusa do SDO “1”

Ja pierdzielę, to był przykładowy YAML, ale w nim żaden adres nie jest błędny (= każdy adres w nim podany jest możliwy do uzyskania na danym sprzęcie, tylko trzeba to zrobić), adresy sprzętu musisz sobie skonfigurować samodzielnie - lutuje lub tnie się zworki (pullup lub pulldown) lub przełącza “mysie klawiaturki” (w tych wypasionych wydaniach modułów).

Jak wsiadasz do samochodu i nim jedziesz to jaka prędkość jest prawidłowa 10km/h czy 50km/h?
Oczywiście taka dopasowana do warunków, tu masz to samo - konfiguracja musi być przystająca do warunków.

Może taki bryk (już wiesz co to bryk?)

przykładowo TCA9584A może pracować na dowolnym z 8 adresów z puli (ma dostępne 3 bity do konfiguracji wyboru adresu)

Jest tam (przy tym YAMLu) też komentarz dlaczego trzeba zmienić adres multipleksera jeśli jest wpięty na tej samej szynie co czujniki - bo jest konflikt adresów (przy takich założeniach jak tam opisałem, tylko trzeba czytać, bo zakładałem też że skonfigurujesz czujniki).

1 polubienie