logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ESP32 zawiesza się przy odczycie z czujnika BME280 5V

ademba 06 Maj 2025 13:45 1206 5
REKLAMA
  • #1 21540946
    ademba
    Poziom 2  
    Posty: 38
    Ocena: 2
    Mam ESP32 i służy on jako odbiornik, który odbiera polecenie z nadajnika (panel napisany w HTML z przyciskami). Przyciski zapalają lub gaszą diody podczepione do ESP32. Podpiąłem też czujnik temperatury BME280 (2 przewody zasilanie, 2 przewody komunikacyjne).

    BME280 jest to wersja 5 V, nie mam innego na 3,3 V, ale niby działa podłączony do pinu zasilania na 3,3 V.

    Jednak po dłuższym używaniu ESP32, czujnika i sterowaniu diodami poprzez panel, ESP32 jakby się zawiesza. Na początku ustawiłem odbieranie danych z czujnika na ESP32 co sekundę, potem co 5 sekund, teraz co minutę. W przypadku sprawdzania danych z czujnika co minutę ten problem jakby zawieszania jest niezauważalny, ale po dłuższym czasie testowania sterowania i odczytu coś mi nie pasuje w zachowaniu ESP32. Może musiałbym dłużej testować, aby lepiej zauważyć niestabilną pracę.

    Chciałem dodać czujnik temperatury do panelu oraz dodatkowo czujnik pomiaru napięcia INA219, ale czujnik temperatury, jak i czujnik pomiaru napięcia, wykorzystują magistralę I2C do komunikacji i teraz za bardzo nie wiem, czy to dobre rozwiązanie.

    Moduł pomiaru prądu i napięcia INA219 z wyprowadzeniami i kostką zaciskową. Moduł czujnika BME/BMP280 na fioletowej płytce PCB z czterema oznaczonymi pinami i osobnym rzędem pinów goldpin.

    Napięcie dobrze byłoby, aby było badane praktycznie co sekundę, ewentualnie co kilka, bo ten moduł ma być podczepiony pod akumulator, więc tam potrzebne są informacje, jakie napięcie będzie np. podczas załączania jakiegoś silniczka, więc dobrze byłoby, aby na żywo cały czas świeże były te wyniki.

    Zastanawiam się jednak, czy to uda się zrealizować. Samo podczepienie czujnika temperatury, gdzie jest badana temperatura (czujnik mierzy temperaturę, ciśnienie oraz wilgotność), sprawia już problemy, ale nie jestem pewny, czy problemem jest za słabe napięcie, więc ten czujnik zamula ESP32, czy częstość spływania wyników zapętla ESP32.

    Może ktoś miał do czynienia z ESP32 i z takimi czujnikami i zaobserwował jakieś dziwne zachowania i wie, czemu tak się dzieje lub jak temu zaradzić. Próbowałem optymalizować prosty program, który działa na ESP32 do sterowania diodami, jak i odczytu wyników z czujnika, ale wcześniej czy później, kiedy czujnik temperatury działa, to zawieszanie ESP32 się pojawia, więc nie wiem, czy szukać rozwiązania, czy odłożyć te dodatki, a skupić się tylko na sterowaniu, aby było możliwe, bo prosty czujnik już rozwala wszystko.

    Może ktoś coś doradzi w tym temacie.
  • REKLAMA
  • #2 21540993
    xury
    Specjalista automatyka domowa
    Posty: 7078
    Pomógł: 878
    Ocena: 1491
    U mnie ten czujnik już 4 lata działa bez ani jednego problemu. Bez pokazania programu ciężko coś powiedzieć Najlepiej do ESP załaduj Tasmota ustaw czujnik i testuj.
    .
  • REKLAMA
  • #3 21541508
    ademba
    Poziom 2  
    Posty: 38
    Ocena: 2
    Nie mam teraz komputera, na którym mam ten program, ale tam nic szczególnego: funkcja do zapalania kilku diod i funkcja do sprawdzania czujnika. Nawet to obrabiałem narzędziami IA, aby wychwyciły błędy, ale nic to nie daje.

    Obstawiam, że ESP32 się zapętla, kiedy musi odbierać dane od nadajnika i w dodatku obsługiwać czujnik.

    Tasmota to raczej nie, bo ja muszę mieć program prosty na ile się da, aby sterował później przekaźnikami, więc to jest chyba lepsze rozwiązanie — swoje rozwiązanie. Teraz testuję na diodach działanie (prototypuję), więc dodatkowe jakieś rozwiązania tylko będą komplikować cały system.

    Musiałbym zamówić wersję czujnika 3,3 V, przetestować też inny, który komunikuje się w inny sposób i zobaczyć, jaki byłby efekt.

    A Ty oprócz czujnika co masz jeszcze podłączone i jakie operacje wykonuje ESP32? Bo u mnie, jak wspomniałem, musi się uruchomić jako Access Point, do którego może się podłączyć np. tablet, na którym jest prosty panel. Z panelu wysyłam komendy, np. włącz diodę 1, diodę 2 (komunikacja poprzez webserver), panel pobiera też wynik z czujnika.
    Przy takim prostym projekcie powinno to śmigać bez zająknięcia, a ja widzę już problemy, więc jak z tego zbudować coś sensownego? Może to wina tego czujnika, może jest wadliwy, może napięcie nieodpowiednie do jego prawidłowej pracy. Nie wiem.
  • REKLAMA
  • #4 21541879
    xury
    Specjalista automatyka domowa
    Posty: 7078
    Pomógł: 878
    Ocena: 1491
    Miałem na myśli testowanie czy czujnik na Tasmocie też będzie miał problemy.

    Czy masz rezystory pullup podciągające data i clk?

    Jeśli dodasz kolejne moduły do magistrali I2C to pamiętaj, że rezystory podciągające mają być tylko jedne.
  • REKLAMA
  • #5 21542062
    ademba
    Poziom 2  
    Posty: 38
    Ocena: 2
    sam czujnik działa, chodzi tylko o to, że jak zaczynam klikać przyciskami, zapalam, gaszę diody, to po jakimś czasie zaczyna odbiornik reagować niestabilnie na polecenia.

    Co do rezystorów, to nie mam ustawionych programowo, ale rzuciła mi się w oczy informacja, że ten czujnik ma wewnętrzne swoje rezystory i chyba coś na tej płytce jest, ale musiałbym to dokładniej sprawdzić.

    Kupię jakieś inne jeszcze czujniki i potestuję, może ten jest wadliwy albo to zasilanie ma wpływ na działanie. No coś jest nie tak, bo prosty program, jeden czujnik i ESP32 dostaje zadyszki. Ewentualnie na razie zbuduję wersję bez czujników, aby testować działanie całego systemu, bo im więcej rzeczy, to w przypadku problemów ciężko zgadnąć, co tworzy problem.
  • #6 21542530
    Konto nie istnieje
    Poziom 1  
REKLAMA