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

[Rozwiązano] Jak zapobiec fałszywym impulsom od deszczomierza z AliExpress?

szmiit 08 Lut 2024 22:15 1020 7
REKLAMA
  • #1 20952201
    szmiit
    Poziom 10  
    Posty: 44
    Ocena: 3
    Potrzebuję zliczać impulsy deszczomierza, który kupiłem ostatnio na AliExpressie. Ma on wyprowadzony kabel z dwoma przewodami i zwiera je na kilkadziesiąt ms, gdy szalka w jego wnętrzu napełni się wodą i przechyli na drugą stronę. Każdy taki impuls oznacza pewien stały poziom deszczu w mm, dlatego chcę je zliczać.

    Umieściłem deszczomierz na dachu i przedłużyłem jego kabel do ok. 6 metrów, łącząc go pośrodku jego długości i zalepiając rurką termokurczliwą z klejem wewnątrz. Przewody podłączyłem do płytki NodeMCU z ESP8266, która znajduje się wewnątrz budynku – jeden do GND, drugi do GPIO14. Wejście to ustawiłem w tryb pullup, aby puls był zliczany za każdym razem po zwarciu go do masy.

    Wszystko działa, gdy zaczyna się deszcz. Jednak po dłuższej chwili opadów (kilkadziesiąt minut, może ponad godzinę), układ zaczyna generować te pulsy jak szalony. Zauważyłem, że gdy przetnę kabel i zostawię go tak na deszczu (bo już podejrzewałem dostanie się wody pod termokurcz i chciałem poprawić klejenie), po chwili efekt ten znów zaczyna występować bardzo wyraźnie. Wykluczam więc raczej fałszywe generowanie pulsów przez deszczomierz (chyba że on sam ma gdzieś słabą izolację). W każdym razie obudowany jest tak, że do PCP, którą ma w środku, woda nie ma prawa się dostać.

    Chciałbym poradzić się, jak podejść do tematu. Czy dobrze domniemywam, że jakimś cudem (nie znam się na tyle), jakiś mikro prąd jest w stanie przedostać się gdzieś przez izolację i powodować fałszywe uziemianie (czy jak to nazwać), które generuje mi te pulsy?

    Alternatywa, którą testuję teraz, to przełączenie wejścia w tryb pulldown i generowanie pulsu dodatniego. Na razie weryfikuję, czy to się sprawdzi, ale chciałbym Was zapytać, czy moje podejrzenie, dla tej pierwotnej konfiguracji, jest słuszne. To samo ma miejsce na innych GPIO, które testowałem, również na płytce z ESP32.

    Dzięki!
  • REKLAMA
  • Pomocny post
    #2 20952348
    jarekgol
    Poziom 40  
    Posty: 5147
    Pomógł: 642
    Ocena: 1137
    Dodaj opornik podciągający, to co daje procesor jest słabe. Pomyśl o drganiu zestyków (debouncing), dodaj filtr typu RC oraz filtracje programową.
    Ile prądu wytrzymuje twój deszczomierz?
  • REKLAMA
  • #3 20953527
    szmiit
    Poziom 10  
    Posty: 44
    Ocena: 3
    Dzięki za odpowiedź. Nie mam niestety specyfikacji, bo to chiński sprzęt :P. Tam jest jakiś kontaktron i tyle wiem o tym. Debouncing próbowałem na początku, ale nie ma jak odróżnić czasowo faktycznego impulsu od tego fałszywego, spowodowanego prawdopodobnie wodą.

    Przez noc teraz działał z tym podejściem pulldown + dodatni impuls. Nie wariował, a całą noc padało. Własnego rezystora podciągającego nie próbowałem jeszcze, podobnie filtra RC.

    Jestem ciekaw, o co może chodzić. Tzn. chciałbym zrozumieć to zjawisko przy założeniu, że cały kabel jest szczelny, bo tak mi się wydaje.
  • REKLAMA
  • Pomocny post
    #4 20954393
    jarekgol
    Poziom 40  
    Posty: 5147
    Pomógł: 642
    Ocena: 1137
    Ja obstawiam drgania zestyków w pierwszej kolejności, w drugiej że kabel działa jak antena i być może coś się włącza w okolicy i zakłóca. A im mniejszy "twój" prąd płynie w przewodzie tym łatwiej przebić się zakłóceniom, stąd propozycja dodatkowego opornika. Masz oscyloskop?
    szmiit napisał:
    i zwiera je na kilkadziesiąt ms, gdy szalka w jego wnętrzu napełni się wodą

    jak oszacowałeś że dobry sygnał to kilkadziesiąt ms, zrób filtr żeby nie liczył nic poniżej kilku ms :) nawet AVR z wolnym na dzisiejsze czasy zegarem 16MHz, ma cykl 62ns oczywiście nie próbkuje wejścia w każdym cyklu, ale to nadal jest bardzo dużo w ciągu kilku ms.
    Kolejną opcją którą możesz sprawdzić jest posłanie na dach 4 żyłowego przewodu (skrętki) z zasilaniem i tuż przy urządzeniu zamontowanie bufora lub "nadajnika linii" a przy procku obiornik, coś jak się do rs485/422 używa, tanie łatwo dostępne układy.
  • #5 20957077
    szmiit
    Poziom 10  
    Posty: 44
    Ocena: 3
    Dziękuję Wam za odpowiedzi. Zależało mi na tym, żeby zrozumieć to zjawisko. Za mało siedzę w elektronice i różne rzeczy mnie potem zaskakują. Nawet jak coś z pozoru nie może nie działać i niemal dałbym sobie za to rękę odciąć, to właśnie potem takie rzeczy wychodzą :P.

    Na razie pozostałem przy ESP8266 i wprowadziłem zewnętrznie rezystor pulldown 47 kΩ. Od dwóch dni działa to poprawnie mimo deszczu – jeśli tak pozostanie, to to tak zostawię, żeby już nie tracić czasu na inne kombinacje, ale dziękuję za wszystkie sugestie. Tak, jak pisałem – różne rzeczy są dla mnie nowe, więc nawet jeśli teraz tych sugestii nie wprowadzę w życie, to może innym razem się przydadzą ;).

    Co do debouncingu, nie był IMO możliwy, bo te fejkowe impulsy były czasowo nie do odróżnienia od prawdziwych niestety.

    Pozdrawiam!
  • Pomocny post
    #6 20957873
    dktr
    Poziom 26  
    Posty: 937
    Pomógł: 45
    Ocena: 729
    Dodaj optoizolację bo zaraz się i tak to GPIO uwali, albo od burzy albo od innej elektrostatyki.
  • REKLAMA
  • #7 20958909
    szmiit
    Poziom 10  
    Posty: 44
    Ocena: 3
    Dzięki, nie znałem tego, fajne
  • #8 20958915
    szmiit
    Poziom 10  
    Posty: 44
    Ocena: 3
    Zamykając wątek, rozwiązałem ostatecznie problem przez wprowadzenie zewnętrznego rezystora pulldown 47 kΩ (do ESP8266, bo w ESP32 byłby zbędny wg mojej wiedzy), a GPIO reaguje teraz na impulsy dodatnie, nie na masę. Od kilku dni działa bezbłędnie.

Podsumowanie tematu

✨ Użytkownik zainstalował deszczomierz z AliExpress, który generuje fałszywe impulsy po dłuższym czasie opadów. Problemy te mogą być spowodowane drganiami zestyków lub zakłóceniami w kablu. W odpowiedzi na te trudności, zasugerowano dodanie rezystora podciągającego, filtrów RC oraz optoizolacji. Użytkownik wprowadził zewnętrzny rezystor pulldown 47 kΩ, co poprawiło działanie systemu, eliminując fałszywe impulsy. Po kilku dniach testów system działa stabilnie.
Wygenerowane przez model językowy.
REKLAMA