ESP32-EVB i czujnik ciśnienia wody

Trochę podrążyłem temat i… się okazuje, że płytka ESP32-EVB jest bardzo podatna na zakłócenia impulsowe przy wykorzystaniu przekaźników do sterowania silnikami czy ogólnie obciążeniem indukcyjnym - zawiesza się układ LAN8720 odpowiedzialny za obsługę Ethernetu.

Co ciekawsze producent wprowadził już poprawki przed wersją K1 (tzn.wersje K i K1 mają poprawkę - zmieniony kondensator C18 z 10uF na 1nF)

Więc zdecydowanie należy oddalić obwód wykonawczy od PCB, być może pomogłoby zaekranowanie części niskonapięciowej na płytce czy montaż w metalowej obudowie UWAGA z zachowaniem właściwej izolacji od obwodów pod napięciem sieciowym, ponieważ ekran powinien być podłączony do masy części niskonapięciowej.

PS
@RobinI30
Też w pierwszej chwili pomyślałem o klejeniu się przekaźnika, aż poszukałem datasheeta,

ale inne objawy wskazywały na problem z Ethernetem

1 polubienie

Właśnie przełączyłem płytkę na Wifi i tego problemu nie ma, wszystko ładnie działa.
Przewody obwodu wykonawczego mam maksymalnie oddalone ale przez LAN to nie wiele pomaga.

Zgłoś problem do producenta, możliwe, że doprowadzi to do dalszego udoskonalenia konstrukcji, ewentualnie będziesz mógł zwrócić sprzęt do sprzedawcy.
Moim zdaniem zaekranowanie części płytki odpowiedzialnej za Ethernet powinno pomóc, ale amatorsko to jest niemal niemożliwe, a przynajmniej trudne do realizacji…

Pozostaje jeszcze kwestia doprowadzania przewodów tak by obwody sterujące obciążeniami nie indukowały zakłóceń ani w kablu Ethernet, ani w żadnym z kabli niskonapięciowych. (czyli zdecydowanie muszą być odpowiednio oddalone i nie prowadzone równolegle)

Zgłoszę to do producenta, co do prowadzenia kabli to po wyjęciu płytki z puszki rozdzieliłem jak tylko się dało wszystkie przewody i nic to nie dało. Myślę że przekaźniki też by trzeba odizolować, bo zrobiłem też taki test że podałem napięcie na przewody wykonawcze dałem je blisko płytki ale odłączyłem od przekaźników i problemów nie było.

Nie myślałem o klejeniu remanencyjnym ale raczej o minimalnym podsterowaniu tranzystora. Dla przekaźnika 5V Minimum DropOutVoltage < 0.5V.
Patrząc na schemat - przy wyjściu w stanie wysokiej impedacji R1 wisi w powietrzu. Jestem uczulony na takie stany i dodałem 2 + 2 :slight_smile:
Gdybym miał to stole to dałoby się pomierzyć , a tak cały eksperyment trzeba robić w głowie - czyli w próżni :laughing:

Nie wiem czy tu jakieś czary pomogą - wystarczy niewłaściwe ułożenie elementów lub ścieżek.
Ja w ostateczności wylutował bym przekaźniki i odsunął cały obwód AC.

1 polubienie

Sumarycznie cel został osiągnięty, bardzo dziękuje Wam za pomoc.
Pozostaje mi tylko w kotłowni zamontować AP-eka aby zwiększyć jakość sygnału, co prawda nie zrywa połączenia ale szału nie ma.
Kilka dni spędzonych w kotłowni :smile: i temat ogarnięty.

Ale gdzie jest rozwiązanie? Post, który tak oznaczyłeś nie zawiera treści rozwiązania…

Mała łyżka dziegciu :slight_smile:
Rozdzieliłeś pomiar ciśnienia i sterowanie zaworem na dwa osobne modułu ( tak zrozumiałem). Co się stanie gdy przy otwartym zaworze utracisz połączenia?
Gdyby było na jednym można by wprowadzić wewnętrzne zabezpieczenie, a tak chociaż zrób aby zawór nie był otwarty dłużej niż… (?).
Pewnie w kotle puści zawór bezpieczeństwa… ale woda będzie się lała.

1 polubienie

Tak rozbiłem to na dwa różne moduły, jeden do pomiaru ciśnienia drugi do sterowania zaworem i pompą od systemu solarnego (ESP32-EVB).
@szopen masz rację nie ma rozwiązania (już wycofałem).
@RobinI30 myślałem nad tym jak straci połączenie, ale nie bardzo wiem jak temu zaradzić, bo skoro nie będzie połączenia z HA to i tak żadna automatyzacja go nie wyłączy. Chyba że można jakoś ustawić w ESP aby był załączony przekaźnik nie dłużej niż 3 minuty, bo proces napełniania układu trwa ok 2 minuty 15 sekund.

Automatyzacje można mieć już na bazie samego ESP, nie zastanawiałem się jak to ogarnąć, ale choć trudne jest to możliwe (jednak powinieneś mieć wtedy i pomiar i układ wykonawczy w tym samym MCU, bo w innym wypadku takie rozwiązanie traci sens).

Na tyle ile orientuje się w ESPHome to można uruchomić jakiś timer np. strzelam 60sek, po którym wyłączy się przekaźnik. Po nawiązaniu połączenia w następnym cyklu pomiarowym dobije ciśnienie w układzie.
Takich przełączeń nie ma aż tak dużo, że można to robić np. w dwóch cyklach.
Przy poprawnym działaniu nawet tego nie zauważysz.
Takie skrzywienie zawodowe - łatwo jest coś zrobić z założeniem, że wszystko działa - truniej gdy pójdzie coś nie tak…
To jest kocioł za parę złotych i zaczym puści zawór, zbyt wysokie ciśnienie może uszkodzić wymiennik ( nie wiem co tam masz?),

Tylko jak go włączyć?
U mnie jeżeli ciśnienie w układzie przekroczy 2,5 bara to puści zawór bezpieczeństwa od kominka, w kotle jest zawór 3,5 bara.
Natomiast jeżeli ciśnienie będzie mniejsze jak 0,8 bara to kocioł nie odpali.

Włączasz jak dotychczas… pytanie jak wyłączyć po czasie?
Pewnie na forum znajdzie się fachman co będzie wiedział… może coś to podpowie

Delay to żadna sztuka, ale tu trzeba przemyśleć sporo innych kwestii np. zachowanie przy bootowaniu, feedback z działania przekaźnika (ze względu zastosowanie + ryzyko sklejenia styków).
W dodatku dopompowywanie ma być zależne od trybu pracy instalacji.

Gotowca nie znajdzie, jeśli @mario026 będzie w stanie coś sam wykonać to będzie to “druciarstwo”, które same z siebie będzie generować więcej usterek.
Musi określić ryzyka, zastosować absolutne minimum zabezpieczeń i używać pod nadzorem.

@szopen Mi zależy tylko na tym aby przekaźnik nie był dłużej załączony jak 3 min. (jeżeli wszystko będzie działało to tak się nie stanie bo HA go wyłączy).
Jeżeli chodzi o to że ESP w trakcie napełniania zresetowało by się to już się zawór nie załączy co najwyżej będzie zimno w domu bo kocioł się nie załączy z powodu niskiego ciśnienia w układzie.

No i właśnie trzeba wiele przemyśleć - o ile sam brak działania układu nie jest może krytyczny (zimy to już nie takie jak kiedyś :smiley:), to

  1. sklejenie styków skończy się pompowaniem wody bez końca, ostatecznie zadziała jakiś zawór bezpieczeństwa i woda się gdzieś będzie wylewać (sprawdzałeś w ogóle czy te zawory działają?)
  2. w przypadku problemu z komunikacją/zawieszeniem się MCU itd. HA nic nie będzie w stanie zrobić, doświadczam tego w miarę systematycznie w ESP działającym na skraju zasięgu (tyle, że to mało istotny czujnik a nie urządzenie o znaczeniu potencjalnie krytycznym)

Widziałem w życiu już tyle źle zaprojektowanych urządzeń, że zwracam uwagę na takie “pierdoły”.

Oczywiście nie wszystkie sytuacje muszą się zdarzyć, ale zanik zasilania czy utrata komunikacji nie jest niczym szczególnym i się zdarza (pewne kwestie ESPHome ma rozwiązane systemowo - np. przy utracie komunikacji API urządzenie się samo restartuje przy standardowych ustawieniach co 15 minut, ale to też trzeba wziąć pod uwagę przy projektowaniu).

A podgląd na to na jakie można trafić pułapki to już masz :smiley:

Wprawdzie w ESPHome można sobie dziubać projekt po malutku systematycznie go ulepszając, ale musisz się liczyć z koniecznością “postawienia na głowie” wstępnego pomysłu (więc może być taka sytuacja, że praktycznie cały YAML będzie do przebudowy od zera).

Zamontowałem Ap-eka blisko kotłowni i jeśli chodzi o zasięg to znacznie się poprawił
Zrzut ekranu 2024-07-04 215220
Jeśli chodzi o zasilanie w domu to strategiczne urządzenia np. kominek, kocioł, solary, internet, dyski sieciowe, HA, zawory (między innymi odcinający całkowity dopływ wody w domu), stacja uzdatniania wody mam podłączone pod ups-a.
Zanik napięcia z sieci elektryczny do 10h nie jest problemem.
Wiem że zawsze może się coś wydarzyć w stylu sklejenia styków przekaźnika, ale z drugiej strony jeżeli będzie duży pobór wody to HA zamknie zawór główny. do tego dostanę informację z HA i stacji uzdatniania wody.
Co do zaworów bezpieczeństwa, to są 3 dwa z nich otwierają się jeżeli ciśnienie przekroczy 2,5 bara (sprawdzone) trzeci jest w kotle i ten otwiera się jak ciśnienie przekroczy 3,5 bara (sprawdzone)
edit.
Elektrozawór którym steruje ESP załączy się tylko i wyłącznie jeżeli zostanie wyłączony kominek i ciśnienie w układzie c.o. będzie mniejsze niż 0,5 bara.

Skoro nie ma strachu to do dzieła.

Możesz tworzyć automatyzacje i/lub skrypty

https://esphome.io/components/script.html

tu jest na przykład świetny przykład wykorzystania skryptu, który wywołuje sam siebie, przeanalizuj go sobie (bo to w ogóle ciekawa konstrukcja również sprzętowo)

@szopen dziękuję. Dzisiaj jadę nad nasze polskie morze jak wrócę to będę kombinował
edit.
skleciłem coś takiego,

script:
  - id: moj_script_1
    then:
      - switch.turn_on: moj_script
      - delay: 5s
      - switch.turn_off: moj_script

# Przekaźniki
switch:
  - platform: gpio
    pin: GPIO32
    restore_mode: ALWAYS_OFF
    name: "Elektrozawór Napełniający c.o." 
    id: moj_script
  - platform: gpio
    pin: GPIO33
    restore_mode: ALWAYS_OFF
    name: "Pompa P2 Solary"

ale coś nie działa tz. nie wyłącza po 5 s