Skocz do zawartości

ESP po pewnym czasie zwalnia i rozłącza wifi


Masterpc96

Pomocna odpowiedź

Witam zrobiłem sobie sterownik rolet zewnętrznych na esp (opisany w dziale DIY). Esp steruje dwoma przekaźnikami, ma podpięte dwa przyciski oraz wystawia serwer. Mam taki problem że po pewnym czasie, teraz to się zdarzyło po 23h, esp zaczęło się jakby zacinać rozłączyło się od wifi, tym samym serwer nie działa oraz jak ma załączyć przekaźnik na 17 sekund to załącza go np na 25 sekund. Wklejam kod na pastebin 
https://pastebin.com/9xwx99dE

Wymieniłem również esp na inne i efekt dalej ten sam 😕 

Link do komentarza
Share on other sites

Poprawię kod jak będę mil dostęp do komputera 😉

Zasilnie 3.3 filtruje kondensatorem elektrolitycznym 470uF i 100 nF ceramicznym w odległości 20mm od esp. Mogę dać kondensator 1000uF bo akurat mi przyszedł wczoraj. Aczkolwiek wątpię by to była wina zasilania 😕 Czytałem ze podobno esp ma problemy ze stabilnością i można wykorzystać Watchdoga do przywracani stanu po restarcie.

Link do komentarza
Share on other sites

WDT jest uruchomiony w ESP stale, wystarczy gdziekolwiek wstawić pętle while(1) by wywołać reset. Można to po prostu zrobić zapobiegawczo co jakiś czas.  Miałem kiedyś serwerek WWW zrobiony na bazie stringów to potrafił się wywalać i co kilkanaście minut - zapewne fragmentacja pamięci, wycieki, stos itp. atrakcje. Możesz sobie przerobić na stałe tablice char dla tekstów i porównać jak się będzie zachowywał. Stały czas podnoszenia i opadania rolet nie będzie zawsze OK, lepiej mieć kontrolę położenia zasłon czujnikami/krańcówkami.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Muszę chyba zrobić wdt codziennie o godzinie 2 w nocy bo wtedy rolety na pewno będą zaciągnięte i odczyt położeni i czasów po resecie muszę dołożyć, tylko się zastanawiam jak czy robić to na eepromie czy jest jakaś łatwiejsza opcja 🤔 wifi manager jakoś to robi ze eeprom jest czysty a on ma zapisane ostatnie ustawienia sieci 

Link do komentarza
Share on other sites

Twój sposób do resetu jest lepszy, ja w ogóle nie używałem żadnego, po prostu wiem by unikać takich miejsc bo WDT mi wywala program. Trzeba dodawać w takich pętlach delay  lub yield() by temu zapobiec. Gdy mi się restartował/zawieszał to po prostu znalazłem sposób by nie tracić pamięci - stała tablica globalna char i na jej bazie budowanie komunikatów. Do resetu jeszcze ESP.restart(). Masz dużo dynamicznych stringów, poczytaj jak sprawdzić heap, może filmik pomoże:

Bo co Ci da stały restart, jeśli przyjdą goście, będziesz chciał kilka razy podnieść/opuścić zasłony i nazbiera w pamięci śmieci jak przez tydzień, po czym zacznie sobie żyć swoim życiem.

Sposobów na serwer jest kilka, niestety takie podawanie wybranych stringów do HTML też powodowało u mnie zawieszenia i to czasami po kilku godzinach, czasami minutach, próbowałem zrobić stronę z odczytem 4 czujników i 4 przyciskami (w sumie to dużo bardziej rozbudowaną, do tego to obciąłem) i wywalała się losowo. Stanęło na websocket, ale są też inne, np. zainstaluj bibliotekę jak na filmie https://github.com/me-no-dev/ESPAsyncWebServer, serwera na bazie tej biblioteki też nie udało mi się zajeździć. Pliki html wgrywa się na spiffs ESP, w przykładzie pokazane jest właściwie wszystko co potrzebne - konfigurator, OTA, wykresy.

  • Lubię! 2
Link do komentarza
Share on other sites

Dzięki bardzo za pomoc. Projekt trochę przebudowałem bo już nie mam strony konfiguracyjnej na ESP (będzie na malince) i komunikacja po przez http. Dodatkowo podpinam to wszystko pod aplikację home od Apple. Wywalam całe mqtt z esp i stronę konfiguracyjną. Dodałem zapamiętywanie danych i restart w momencie jak rozłączy mi się z wifi. Wtedy zapisuję stan na spiffs i przy uruchomieniu odtwarzam stan. Na pewno zainstaluję bibliotekę od Ciebie bo jak masz sprawdzoną to po co mam sam testować 😉 

Link do komentarza
Share on other sites

(edytowany)

Czy ja wiem czy będzie to częsty zapis 🤔. Teraz jednp esp mi działa od 7 dni bez crashu. 

Ograniczyłem serwer do 5ciu zpytań
1. Aktualny procent zamknięcia 
2. Aktualny stan sterownika (0, 1 lub 2)
3. Wysłanie wartości na jaką trzeba zamknąć roletę
4. Ustawienie czasów zamykania i otwierania
5. Dane diagnostyczne tj. czas pracy sterownika czas podnoszenia, czas zamykania

jutro przelutuję jeszcze pin w sterowniku by przycisk nie był podpięty pod gpio16 tylko pod gpio14 wgram kod podepnę do Home od Apple i lecim z testami 😄 

Edytowano przez Masterpc96
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.