Witam, miałem nie osłonięty BME280 na dworze, po roku przestał raportować (złapał pewnie wilgoci) Wymieniłem go na BME680 zmieniłem Yamla w esphome na:
I niestety nie mam pomiarów z niego, pytanie czy muszą być również rezystory podciągające jak w BME280 ?
Czy po prostu trafił mi się uszkodzony BME680 ?
Generalnie rezystory powinny być, sprawdź czy kupiony moduł ma je wlutowane.
Może stary przestał raportować z powodu uszkodzenia ESP - brałeś to pod uwagę?
Podaj pełną konfigurację, schemat podłączenia i typy modułów.
Wrócę do domu to sprawdzę rezystory, w razie czego ma jeszcze kilka 4,7 kOhma
Pod to ESP mam podłączone jeszcze ds18b20 i działają ok
Poniżej cały Yaml
To tak w kwestii uszkodzenia - nie musi się zjarać cały MCU, bywają przypadki uszkodzenia pojedynczych GPIO.
ALE…
Ja tu widzę błąd w konfiguracji - zdefiniowałeś I2C tak jakbyś dysponował więcej niż jedną szyną
więc ja nigdzie nie widzę takiej konstrukcji wskazującej, że integracja BME680 ma szukać sprzętu na szynie A (zastanawiam się jakim cudem to działało z BME280, masz gdzieś zachowanego starego YAMLa sprzed przeróbki?)
Pomijając ten fakt, nie musisz zgadywać adresu czujnika - zdefiniowałeś skanowanie szyny, więc w logu powinieneś mieć wylistowane wszystkie znalezione urządzenia (ich adresy).
A tak w ogóle zaglądałeś do dokumentacji?
typowa płytka BME680 ma od groma pinów (konkretniej 4 oprócz zasilania i masy), a to ze względu na fakt, że ma do wyboru 2 różne interfejsy I2C albo SPI. Nie mam jej w ręce by prześledzić jak jest fabrycznie skonfigurowana.
ESPHome wspiera tylko konfigurację I2C, więc te piny trzeba połączyć zgodnie z dokumentacją by przełączyć sensor z SPI do I2C i zdefiniować adres (rozdział 6 w linku powyżej).
Dodatkowo czy zasilana jest z 5V czy 3.3V, większość dla I2C dopuszcza oba… itd.
Trzeba znać model modułu… i jak to podłączył - raczej będzie to błąd podłączenia.
Czy możesz po prostu wklejać te logi (chociaż istotne fragmenty chronologicznie) a nie podawać ich swoją interpretację…
Mam od ręką RPi Pico W, ale nie mam teraz czasu i warunków na lutowanie, żeby podłączyć cokolwiek I2C, tu masz przykład logu ze zdefiniowanych 2 szyn bez podpiętych urządzeń, to log oczywiście ze skanowania, jakbym miał jakiś komponent wykorzystujący czujnik, którego nie ma to by były też błędy z jego integracji gdzieś dalej
[13:32:51][C][i2c.arduino:053]: I2C Bus:
[13:32:51][C][i2c.arduino:054]: SDA Pin: GPIO4
[13:32:51][C][i2c.arduino:055]: SCL Pin: GPIO5
[13:32:51][C][i2c.arduino:056]: Frequency: 50000 Hz
[13:32:51][C][i2c.arduino:065]: Recovery: failed, SDA is held low on the bus
[13:32:51][I][i2c.arduino:069]: Results from i2c bus scan:
[13:32:51][I][i2c.arduino:071]: Found no i2c devices!
[13:32:51][C][i2c.arduino:053]: I2C Bus:
[13:32:51][C][i2c.arduino:054]: SDA Pin: GPIO26
[13:32:51][C][i2c.arduino:055]: SCL Pin: GPIO27
[13:32:51][C][i2c.arduino:056]: Frequency: 50000 Hz
[13:32:51][C][i2c.arduino:065]: Recovery: failed, SDA is held low on the bus
[13:32:51][I][i2c.arduino:069]: Results from i2c bus scan:
[13:32:51][I][i2c.arduino:071]: Found no i2c devices!
No spoko, a podłączyłeś gdzieś wszystkie 4 piny (oprócz zasilania i masy).
Być może konkretna płytka/moduł z tym sensorem ma jakieś pull-down’y i/lub pull-up’y (tzn. ma je raczej na 100% tylko pozostaje pytanie jak skonfigurowane).
A jak jest skonstruowany ten moduł - to jest model dedykowany do zasilania 3,3V (bez stabilizatora LDO) czy 5V (ze stabilizatorem w torze zasilania)?
Ale masz sprzęt w ręce, a ja nie, więc możesz przeanalizować jego konstrukcję…
Moim zdaniem na SDO i CS (w dokumentacji Boscha opisany jako CSB) masz pullupy - ale opieram się tylko na oglądaniu zdjęcia, na którym w sumie niewiele widać…
1 i 2 to rezystory 10k
oprócz tego, że po swojej lewej prowadzą do wyprowadzeń modułu, to są one moim zdaniem bezpośrednio wpięte do wejść MCU sensora - świadczą o tym przelotki (via) 3 i 4 (de facto nie wiem dokąd prowadzą, ale logika nakazuje ich podpięcie do pinów SDO i CSB sensora)
po ich prawej widać wspólną ścieżkę prowadzącą do przelotki 5
zgaduję, że prowadzi ona do VDD, czyli do wyjścia regulatora LDO 6
ALE
Tak naprawdę nie wiem czy 6 to regulator napięcia ani jaki to model, ale sugerując się tym podpiąłbym płytkę do 5V+, zanim to zrobisz to może napisz jakie faktycznie są tam elementy, również 8, bo że 7 to drabinka rezystorowa 10k to widać…
Edit…
kurza noga (cała analiza ze zdjęcia psu w d…) - wystarczyło pogooglować schematy płytek i mam to:
Jak widać ten moduł jest zaprojektowany do zasilania 5V i komunikacji na tym poziomie.
Być może będzie się zachowywał normalnie przy zasilaniu 3.3V ale nie wiem tego…
Natomiast w ofercie sklepu Kamami ktoś na lenia przekleił parametry samego sensora BME680 prosto z jego specyfikacji (czytałeś ten plik z dokumentacją który linkowałęm wyżej?).
Według tego schematu na oshwlab to jest moduł dedykowany do MCU Arduino i innych pracujących z zasilaniem i logiką 5V, jak się zachowa po podpięciu do ESP
nie mam bladego pojęcia…
Tzn. nie powinieneś go zasilać z 5V łącząc z ESP z powodu konwertera poziomów zasilanego tym samym napięciem co stabilizator… więc ja bym sugerował użycie… drugiego konwertera poziomów przy ESP
Zasadniczo magistrala I2C jest zasilana z pullupów, więc zależy gdzie są podpięte.
ale nie wiem czy ten konwerter poziomów będzie działał gdy damy pullupy do 3.3V
Zwizualizuj sobie co gdzie jest podpięte…
przecież na tym fragmenciku masz piny BME680
on MUSI mieć zasilanie 3.3V bo przy 5V to dym wypuszcza, więc jest przystosowany do logiki 3.3V
napięcie 3.3V na całej tej płytce bierze się stąd (w szczególności jeśli zasilasz ją z 5V, bo przy niższym napięciu to raczej nie masz tam 3.3V tylko powiedzmy jakieś 2.7V)