Witam.
Wiem, że są czujniki zalania, czyli np. gdy woda w zbiorniku się zapełnia (szambo, beczka na deszczówkę) to czujnik daje znać, że jest pełno, a czy możliwe jest zrobienie czegoś takiego by czujnik podawał możliwie dokładnie poziom wody od 1 metra do zera?
Chciałbym coś takiego zrobić w stawie i gdy woda spadnie poniżej pewnego poziomu bym dostawał alarm (to się da zrobić za pomocą w/w czujki zalania) niemniej chciałbym też znać dokładny odczyt ile tej wody ubyło/zostało by mniej więcej przewidzieć kiedy trzeba będzie uzupełnić stan wody.
Tam to widzę dyskusja na 10 wątków a oznaczenia rozwiązania brak no i temat sprzed 4 lat.
Chyba najprościej wyjdzie czujnik odległości od tafli wody do ziemi, ktoś tam coś jeszcze pisał o jakimś na ciśnienie który leży na dnie ale to już chyba dość mocna samoróbka będzie, chyba nie jestem gotowy na takie akcje, póki co może spróbuje z tym czujnikiem odległości jeśli ten czujnik działa na taflę wody.
Będę musiał tylko rozwiązać parę problemów, np. woda jest w ciągłym ruchu, może nie są to fale tsunami jednak ustawiając sprawdzanie co powiedzmy 5min to wskazanie może się dość mocno różnić jak jeden check trafi na płaską taflę wody a drugi na wzburzoną.
Także chyba lepszy by był ten zanurzeniowo-ciśnieniowy ale tego chyba nie ogarnę.
Hej, ja to zrealizowałem za pomocą ESP 8266, mierzę poziom w studni drenarskiej z dokładnością do 2 cm (maksymalny poziom 3 m) można to zrealizować za pomocą czujnika zanurzeniowego ze znanego portalu za ok 150 zł. Są wersje na 1 m/3m/5m Czujnik i kompletny zestaw zasilany 12 V wraz z stepDown napięcia na drugim obrazku.
Aaa zapominałem wspomnieć wersja pętli prądowej + rezystor na którym mierzę napięcie.
Problem polega tylko na tym że te wartości po pierwsze nijak nie pasują do tego jaki jest stan (obecnie czujnik jest na 110cm głębokości) oraz co gorsza wartości te cały czas skaczą pomimo że czujnik leży nieruchomo od -19kPa aż do nawet 100 kPa co widać na obrazku.
Więc pytanie czy coś tu pomąciłem w kalibracji czyli:
const float OffSet = 2.359;
V = analogRead(34) * (5.00 / 1024.0);
P = (V - OffSet) * 250;
Czy jeszcze gdzieś indziej. Ten offset każą ustawiać na 250, no u mnie na 2.359 to i tak jest znacznie za dużo bo powinno być około 11kPa na głębokości 110cm a pokazuje wahnięcia od -19kpa do 100kpa.
Masz woltomierz i oscyloskop? (w szczególności ten drugi się przyda), wygląda na to że masz mocno zaszumiony (zakłócony sygnał), podejrzewam, że masz bardzo długi nieekranowany kabel (zamiast sensora połączonego możliwie najbliżej ESP).
W dodatku pozostałe żyły “wiszą w powietrzu” (sugeruję podać je do masy).
Swoją drogą tak duży rozjazd wskazuje, że albo masz źle zaprojektowany dzielnik rezystorowy (może nie uwzględniłeś jego parametrów w obliczeniach), albo wadliwy czujnik.
Nie musisz pisać własnego kodu - do poczytania te fragmenty dokumentacji
To pewnie będzie głupie pytanie ale: co to jest dzielnik rezystorowy?
Ja nie jestem biegły w tych tematach, to tylko takie hobby do zabawy raczej.
Chodzi o podłączenie rezystorów pullup czy tam pulldown? Na niektórych filmikach widziałem że coś takiego robią ale na innych np. tutaj nie:
Mam podłączone tak jak na tym filmiku.
Dodam tylko że tak, kabel mam bele-jaki, od ethernetu wzięty, brałem co miałem, niemniej na krótko gdy był sam czujnik podłączony też były duże skoki napięcia więc możliwe że to chodzi o ten rezystor.
Mam jakieś rezystory 4.7k oraz 100k jeśli to pomoże.
ps. woltomierz to mam, oscyloscop to już nie bardzo.
Jakim napięciem zasilasz ten czujnik 5V… 3.3V ?
Czy ten czujnik działa prawidłowo przy zasilaniu 3.3V przy katalogowym 5V.
Dla ESP32 wzór moim zdaniem powinien wyglądać
V = analogRead(34) * (3.3 / 4095);
Zasiliłbym z 5V i dzielnik napięcia 1:2 przy pinach ESP. Offset = 0.25
Na filmikach różne rzeczy ludzie robią ale wyjściowo powinno się trzymać danych katalogowych. Następnie sprawdzić wzór -1m słupa wody = 9,79 kPa
No raczej nie ma głupich pytań.
Czujnik ma jakieś-tam napięcie wyjściowe w zależności od mierzonego ciśnienia, zakres tego napięcia znacznie przekracza dopuszczalne wartości dla ESP32, więc musisz to napięcie wyjściowe przetwornika ciśnienia zredukować do wartości dopuszczalnej dla MCU.
Wikipedia twoim przyjacielem
Dzielnik 1:2 uzyskasz stosując dwa rezystory o identycznych wartościach (jeśli dysponujesz tylko 2 rodzajami rezystorów użyłbym 2 lub 4 sztuki 4k7, jeśli masz omomierz warto dobrać je by miały identyczne wartości).
Nie chodzi o to, to inna para kaloszy, pulldown czy pullup to pojęcia ściśle związane z rozwiązaniami typowo cyfrowymi (takie rezystory mają wymuszać cyfrową jedynkę lub zero), a Ty tu chcesz wykorzystać GPIO w trybie analogowym.
To są często wątpliwe przyjemności używania płytek stykowych (breadboard) zamiast jakichkolwiek trwałych połączeń (lutowanie, zaciski śrubowe).
Zamiast płytki stykowej polecam tego rodzaju rozwiązanie do takich eksperymentów jak opisujesz (niezawodność połączeń jest sporo wyższa), dziwne, że w kluczowych polskich czy europejskich sklepach dla hobbystów jest ekstremalnie trudno znaleźć takie niedrogie płytki z zaciskami (sam kupowałem kiedyś na Amazonie, ale dedykowane dla NodeMCU v2).
W dodatku bardzo istotne jest zapewnienie prawidłowego zasilania czujnika (o czym wyżej wspomniał @RobinI30 ) i tu też ta płytka stykowa to takie sobie rozwiązanie.
Wracając do tego filmu - układ jest całkiem poprawny gdy wie co się robi - odczyt zawsze można przeskalować. Moje wątpliwości są co do napięcia zasilania 3.3V - czy układ w ogóle działa i czy charakterystyka wyjściowa będzie liniowa.
Jeśli zasilimy z 5V bez dzielnika też nic się nie wydarzy jeśli ciśnienie nie przekroczy 800kPa. Jednak nie we wszystkich zastosowania, ponieważ jest takie coś jak ciśnienie dynamiczne.
Więc bezkrytyczne kopiowanie innych rozwiązań nie zawsze działa.
Lepiej gdybyś pokazał wykres napięcia mierzonego, bo te błędy ciśnienia mogą wynikać z bzdurnych obliczeń.
Zrób odczyty dla pustego zbiornika, 50cm i 1m.
P.S. rozpatrzyłem problem od strony fizyki i moim zdaniem ten czujnik nie nadaje się do pomiaru ciśnienia w zbiornikach otwartych.
Mierzymy ciśnienie hydrostatyczne (od słupa wody) + ciśnienie atmosferyczne.
1m wody to 9,78kPa atmosferyczne 98 - 140 kPa. W sumie to około 1/10 zakresu pomiarowego.
Po drugie to skoki ciśnienia atmosferycznego mają zbyt duży wpływ na pomiar i Twój wykres może to odzwierciedlać.
Dla mnie stosunek tego co chcemy zmierzyć do zakłóceń ( ciśnienie atmosferyczne) jest zbyt mały. Nie znalazłem info czy ten efekt jakoś kompensuje. Chyba że pomyliłem się w obliczeniach?
No to jeśli tak to chyba na tym trzeba będzie zakończyć dyskusję, może użyję go do jakiegoś obiegu zamkniętego.
Więc o ile kolega @RobinI30 ma rację - znacie jakiś czujnik który będzie działał w takim otwartym zbiorniku?
Nie poddawaj się, doprowadź układ do porządku by zrobić odczyty.
Warto na przyszłość sprawdzić co można z niego wycisnąć mierząc osobno ciśnienie atmosferyczne.
@szopen …nie wiem jak to policzyłeś ale 10m wody to ciśnienie atmosferyczne. Doświadczenie Pascala z beczką… nie wchodząc w ogóle w obliczenia. Więc 1m …?
Przelicz to jeszcze raz
Też mi coś świtało, że 10m, ale może się dostałem do internetu dla płaskoziemców (stamtąd info, że 1MPa=~1m słupa wody…) możliwe, że moje szacowania są całkowicie błędne, bo nie sprawdziłem tego z żadnym wiarygodnym źródłem
A to nie jest tak że ciśnienie atmosferyczne jest w takich czujnikach olewane? Tzn zakłada się że ono zawsze jest !
Trochę mi się nie chce wierzyć, że w rozwiązaniach stosowanych w różnych warunkach “góry” , “morze” taki czujnik trzeba "dostosować "
W tym akurat nie - jeśli to prawda co jest w nagłówku charakterystyki. Wystarczy odpowietrzyć membramę aby z drugiej strony panowało ciśnienie atmosferyczne.
No ale ciśnienie atmosferyczne jest zmienne więc jak może zostać olane? Skąd czujnik ma wiedzieć że skoro atmosferyczne rośnie więc i nacisk wody też jest lekko większy więc i pod wodą ciśnienie też rośnie, tego czujnik nie ogarnie, to nie “AI” jeszcze