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

Czujnik wilgotności gleby i nie tylko

.:KoSik:. 15 Kwi 2020 09:43 5313 24
REKLAMA
  • Witam,

    chciałbym zaprezentować Wam czujnik wilgotności mojej konstrukcji, a właściwie to bardziej sposób jego wykonania.
    Czujnik jest częścią większego systemu. Zbudowany na STM32F103, posiada transcevier NRF24L01 w wersji nano (mini) do komunikacji z jednostką centralną. Dodatkowo ma jeszcze fotorezystor więc mierzy ilość światła i kilka elementów dyskretnych.
    To mój pierwszy projekt gdzie musiałem liczyć każdy mA, bo bateria CR2032 jaka zasila ten układ ma tylko 220mAh. Z obliczeń wynika, że powinna działać ok 2 lat, przy wysłaniu danych co 20min przy prądzie spoczynkowym 3,2uA i 35mA w trakcie pracy. Niestety życie weryfikuje teorię i przy pobraniu większego prądu z baterii, napięcie na niej gwałtownie spada. Gdy spadnie poniżej 1.9V NRF24L01 wyłącza się i nie ma mowy o dalszej pracy.

    Prąd w trakcie pracy urządzenia jest nieco zbyt duży, bo nie powinien przekraczać 0.1 pojemności baterii czyli w tym wypadku 22mA ale tego już nie udało mi się przeskoczyć. Myślę, że nie skróci to znacznie życia baterii.
    Nie wiem ile uda się wyciągnąć ale myślę, że jeśli wytrzyma choćby pół roku to będzie satysfakcjonującym wynikiem, biorąc pod uwagę, że uC nie jest z serii energooszczędnej.

    Przejdźmy do najważniejszego elementu czyli samego czujnika wilgotności. Jak koledzy sugerowali w temacie o automatycznej konewce sondy pomiarowe mierzące przewodność gleby dość szybko korodują. Gdy korodują, fałszują wyniki i z czasem całkowicie przestają działać. Można oczywiście użyć węglowych czy platynowych ale to już większe koszty i problem z dostępnością.
    Sugerując się rozwiązaniem czujnika chirp! podpierając notą czujnika pojemnościowego od Microchip zaprojektowałem własny, prosty jak drut czujnik.
    Całość to jeden rezystor i nadruk na laminacie pokryty lakierem! Choć kawałek folii aluminiowej między dwoma kawałkami taśmy klejącej działa równie dobrze.

    Zasada działania jest prosta. Ten nadruk to jak dwie okładziny kondensatora, a zbliżenie różnych materiałów zmienia pojemność tego kondensatora. Możemy w ten sposób wykrywać zarówno zbliżenie palca (wtedy tylko jedna okładzina - bez GND), wilgotność gleby czy poziom wody. Pomiar zaczynamy od ustawienia pinu OUT w stan wysoki - ładujemy kondensator. Po kilku milisekundach (zależnie od wielkości okładzin) przełączamy stan pinu OUT na niski i odliczamy ile czasu zajmie rozładowanie naszego "kondensatora" kontrolując stan pinu IN. Wartość rezystora R1 dobierałem doświadczalnie. Im szybszy uC tym ta wartość może być mniejsza. U mnie 470kΩ jest wystarczające przy zegarze 64MHz. Na próbę można zaczynać od 2MΩ przy wolniejszych zegarach.

    Czujnik wilgotności gleby i nie tylko

    Dużym plusem takiego rozwiązania jest nieznaczna zmiana wyników pomiarów spowodowana zmianą napięcia zasilania, przy rozładowującej się baterii co jest dużym ułatwieniem przy urządzeniach zasilanych bateryjnie.

    Czujniki tego typu możemy stosować np do kontrolowania poziomu wody jako kawałek folii naklejony na zewnętrzną część plastikowego zbiornika, jak również jako przyciski pojemnościowe.

    Dorzucę jeszcze funkcję odczytującą:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    i może komuś się przyda funkcja zwracająca wartość 0-100 przy podaniu wartości maksymalnej i minimalnej:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Czujnik wilgotności gleby i nie tylko Czujnik wilgotności gleby i nie tylko Czujnik wilgotności gleby i nie tylko

    Fajne? Ranking DIY
    O autorze
    .:KoSik:.
    Poziom 18  
    Offline 
    .:KoSik:. napisał 622 postów o ocenie 308, pomógł 19 razy. Mieszka w mieście Frankfurt nad Menem. Jest z nami od 2006 roku.
  • REKLAMA
  • #2 18621036
    Alek-01
    Poziom 11  
    Posty: 10
    Ocena: 1
    Kolega wie jaką dokładność ma ten czujnik wilgotności gleby? Czy po jakimś czasie kalibracja nie rozjeżdża się? Oryginalne słyszałem od ogrodnika, że po jakimś czasie powinno się je kalibrować na nowo, ponieważ wyniki zaczyna zakłamywać . To może być spowodowane jak kolega pisał, że elektrody czujnika korodują.
    Pozdrawiam.
  • REKLAMA
  • #3 18621062
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 691
    .:KoSik:. napisał:
    tym wypadku 22mA ale tego już nie udało mi się przeskoczyć. Myślę, że nie skróci to znacznie życia baterii.

    Duży pobór prądu z tego typu baterii skraca jej żywotność nieadekwatnie do pobranej energii. Zwróć też uwagę, jak znacząco się zmienia napięcie baterii w funkcji temperatury. Spada ono również sukcesywnie w czasie pracy.
    Czy metoda pomiarowa jest wrażliwa na wartość napięcia zasilania ?
  • #4 18621305
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #5 18621361
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    Alek-01 napisał:
    Kolega wie jaką dokładność ma ten czujnik wilgotności gleby? Czy po jakimś czasie kalibracja nie rozjeżdża się?


    Nie wiem jaką może mieć dokładność. Nie jestem ogrodnikiem, a i hodowanie zwykłych kwiatków to dla mnie nie lada wyzwanie więc nie będę się wypowiadał. Rozdzielczość na szczęście można zmienić, dobierając rezystor. Kalibracja właściwie nie ma prawa się rozjechać ale będę testował. W czujniku chirp! nie było takiego problemu więc tutaj też nie powinien występować.

    Alek-01 napisał:
    To może być spowodowane jak kolega pisał, że elektrody czujnika korodują.

    Te nie korodują, bo nie mają kontaktu z glebą i wodą. Są lakierowane. Zaraz dopiszę, bo gdzieś mi uciekło.

    TvWidget napisał:
    Duży pobór prądu z tego typu baterii skraca jej żywotność nieadekwatnie do pobranej energii.

    Tak właśnie wyczytałem, teraz testuję jak bardzo :wink:

    TvWidget napisał:
    Zwróć też uwagę, jak znacząco się zmienia napięcie baterii w funkcji temperatury

    Właśnie o dziwo u mnie wcale nie tak bardzo. Między -3°C, a 25°C napięcie baterii zmienia się o ok 0.1V.

    TvWidget napisał:
    Czy metoda pomiarowa jest wrażliwa na wartość napięcia zasilania ?

    Tak jak napisałem wyżej, zmiany w pomiarach są niewielkie. Można oczywiście korygować programowo ale dla domowych warunków raczej nie ma sensu. Dużo większy problem miałem przy zastosowaniu gotowego czujnika.

    spec220 napisał:
    Zawsze można naładować kondensator niewielkim prądem, a dopiero wykonać pomiar z energii tego kondensatora.

    Rozglądałem się za takim rozwiązaniem ale właściwie nie znalazłem nic konkretnego. Jedni piszą, że większy kondensator filtrujący na wejściu wystarczy dla zniwelowania udaru prądowego w takich aplikacjach, inni że nie ale z kolei problemem jest upływność prądu. Można to oczywiście wszystko mierzyć i obliczać ale dla mnie to trochę za dużo więc wybrałem kierunek doświadczalny.
  • #6 18621377
    TvWidget
    Poziom 38  
    Posty: 4391
    Pomógł: 471
    Ocena: 691
    Proponuję aby zamiast kondensatora o bardzo dużej pojemności zastosować ogniwo litowe w rozmiarze 1/2AA. Ma napięcie 3.6V w praktyce nie zmieniające się, szeroki zakres temperatur pracy i znacznie większą wydajność prądową.
  • #7 18621485
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    TvWidget napisał:
    Proponuję aby zamiast kondensatora o bardzo dużej pojemności zastosować ogniwo litowe


    Przecież ta bateria ma 2.5 cm długości. Tutaj chodzi o to żeby urządzenie było jak najmniejsze. Gdyby nie to mógłbym przecież zastosować nawet dwa paluszki AAA.
  • #8 18621522
    Slawek K.
    Poziom 35  
    Posty: 3020
    Pomógł: 259
    Ocena: 1301
    Cześć,

    Czy polakierowane ścieżki w tym przypadku działają ? testowałeś to w praktyce (w glebie) czy to na razie model teoretyczny ?

    Pozdr
  • #9 18621526
    Konto nie istnieje
    Poziom 1  
  • #10 18621548
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    Slawek K. napisał:
    Czy polakierowane ścieżki w tym przypadku działają ?

    Działają.

    spec220 napisał:
    Przy odpowiednio wysokiej częstotliwości zapewne działają...

    Co masz na myśli?
  • REKLAMA
  • #11 18621936
    Konto nie istnieje
    Poziom 1  
  • #12 18621955
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    spec220 napisał:
    To są czujniki pojemnościowe, a lakier także stanowi jego część dielektryczną

    i?

    Nie rozumiem co chcesz przekazać
  • #13 18621963
    Konto nie istnieje
    Poziom 1  
  • #14 18621993
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    spec220 napisał:
    Nie Tobie tylko koledze Slawek, który pytał


    Myślę, że zarówno ja jak i kolega Slawek niewiele możemy zrozumieć z Twoich zdawkowych odpowiedzi.

    Rozumiem, że chodziło Ci o to, że mikropocesor musi pracować z odpowiednie dużą częstotliwością aby wykonać pomiar tak małej pojemności. Napisałem u góry jak wygląda to u mnie i myślę, że 16MHz z odpowiednio dużym opornikiem i trochę większą powierzchnią czujnika bez problemu poradzi sobie z takim zadaniem.
  • #15 18622074
    Slawek K.
    Poziom 35  
    Posty: 3020
    Pomógł: 259
    Ocena: 1301
    .:KoSik:. napisał:
    spec220 napisał:
    Nie Tobie tylko koledze Slawek, który pytał


    Myślę, że zarówno ja jak i kolega Slawek niewiele możemy zrozumieć z Twoich zdawkowych odpowiedzi.

    Rozumiem, że chodziło Ci o to, że mikropocesor musi pracować z odpowiednie dużą częstotliwością aby wykonać pomiar tak małej pojemności. Napisałem u góry jak wygląda to u mnie i myślę, że 16MHz z odpowiednio dużym opornikiem i trochę większą powierzchnią czujnika bez problemu poradzi sobie z takim zadaniem.

    Dziękuję za odpowiedź ;)

    Pozdr
  • #16 18623465
    ex-or
    Poziom 28  
    Posty: 784
    Pomógł: 147
    Ocena: 151
    .:KoSik:. napisał:
    35mA w trakcie pracy

    Uważam, że spokojnie można zejść do ½, a nawet do 1/3 tej wartości. Nasuwa się pytanie: po co pędzić procka z tak dużą częstotliwością? Mam wątpliwości czy to jest faktycznie potrzebne, ale nie chce mi się w tej chwili liczyć stałych czasowych więc załóżmy że pomiar tyle wymaga. Ale można to zrobić znacznie oszczędniej. Likwidacja 5ms opóźnienia busy-wait jest oczywista - w tym czasie procek powinien spać. Druga sprawa: pętla pomiarowa może (powinna...a właściwie musi) być zrobiona sprzętowo. Ustawiamy przerwanie na pinie, odpalamy timer, rdzeń kładziemy spać. Przerwanie od pinu budzi rdzeń, stopuje timer, pomierzona wartość jest w odpowiednim rejestrze timera. Pomiar przez większość czasu zużywa 3mA zamiast 30. Można to pchnąć jeszcze dalej: koniec pomiaru nie budzi procka tylko za pomocą DMA pcha pomiar od razu do nadajnika.
  • #17 18623573
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    ex-or napisał:
    Uważam, że spokojnie można zejść do ½, a nawet do 1/3 tej wartości.

    Sam NRF potrzebuje do 13,5mA więc powodzenia.

    ex-or napisał:
    Nasuwa się pytanie: po co pędzić procka z tak dużą częstotliwością? Mam wątpliwości czy to jest faktycznie potrzebne, ale nie chce mi się w tej chwili liczyć stałych czasowych więc załóżmy że pomiar tyle wymaga.

    Może i nie wymaga ale żeby utrzymać odpowiednią rozdzielczość potrzebowałem wyższej. Zresztą nie zawsze zmniejszenie częstotliwości pracy oszczędza baterię.

    ex-or napisał:
    Likwidacja 5ms opóźnienia busy-wait jest oczywista

    otóż nie. Chyba, że masz na myśli uśpienie

    ex-or napisał:
    Ale można to zrobić znacznie oszczędniej.

    Na pewno można. To moje hobby. Nie jestem profesjonalnym programistą.

    ex-or napisał:
    Druga sprawa: pętla pomiarowa może (powinna...a właściwie musi) być zrobiona sprzętowo.

    Dlaczego musi skoro teraz działa? Usypianie procesora na 50 czy 150 cykli nie wiele tu chyba pomoże.

    ex-or napisał:
    Pomiar przez większość czasu zużywa 3mA zamiast 30

    Procesor podczas pracy nie zużywa 30mA. To całkowity prąd pobierany przez układ z włączonymi wszystkimi potrzebnymi mi peryferiami i w trybie ciągłego nadawania.
  • #18 18623792
    ex-or
    Poziom 28  
    Posty: 784
    Pomógł: 147
    Ocena: 151
    .:KoSik:. napisał:
    Sam NRF potrzebuje do 13,5mA więc powodzenia.

    Gdzieś tam w internetach widziałem 11mA ale może faktycznie jest to 13.5. Nie wiem. To nieistotne. Istotne jest że można zbić maksymalny prąd znacznie niżej. Nie wiem dlaczego założyłem, że Ci na tym zależy. Uznajmy tedy, że mojego posta nie było.
  • #19 18625558
    _Arecki_
    Poziom 15  
    Posty: 247
    Pomógł: 1
    Ocena: 110
    .:KoSik:. napisał:
    Z obliczeń wynika, że powinna działać ok 2 lat, przy wysłaniu danych co 20min przy prądzie spoczynkowym 3,2uA i 35mA w trakcie pracy.

    W przypadku pomiaru gleby taka częstość pomiaru wydaje mi się wysoka. Spokojnie możesz mierzyć kilka razy rzadziej i wydłużyć czas życia baterii. W przypadku kwiatków to przecież nic by im się nie stało nawet gdybyś mierzył raz na dobę.
  • #20 18626299
    figa_miga
    Poziom 19  
    Posty: 585
    Pomógł: 4
    Ocena: 27
    Lepiej wykorzystać kondensator ADC jako pompa ładująca "elektrode testową".
    1. Wystaw stan 0 na pinie do którego podłączona jest elektroda aby ją rozładować.
    2. Cyklicznie przełączaj wejście ADC pomiędzy jakieś stałe napiecie (np zasilania), a badaną elektrode.
    3. Po kilku cyklach zmierz napięcie na elektrodzie.

    Ta metoda ma wiele zalet. Np nie musisz się martwić o stabilność pomiaru czasu rozładowania.
  • #21 18626357
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    _Arecki_ napisał:
    W przypadku pomiaru gleby taka częstość pomiaru wydaje mi się wysoka

    Oczywiście można zmniejszyć częstotliwość pomiarów ale mi pasuje taka. Można zaobserwować np jak wzrasta wilgotność gleby wieczorem.

    figa_miga napisał:
    Lepiej wykorzystać kondensator ADC jako pompa ładująca "elektrode testową".

    Niestety nie bardzo rozumiem o co chodzi :not: Jakie korzyści niesie Twoje rozwiązanie?
  • #22 18626428
    figa_miga
    Poziom 19  
    Posty: 585
    Pomógł: 4
    Ocena: 27
    Robisz wszystko na jednym pinie procka, nie interesuje cię stabilność zegara (jeśli jest np z wewnętrznego RC).
  • #23 18626803
    dasej
    Poziom 32  
    Posty: 1905
    Pomógł: 165
    Ocena: 265
    Witam.

    Bateria dlatego Ci nie wytrzymuje gdyż nie powinieneś z niej szarpnąć więcej niż 10%.
    Saft dla swoich baterii 1200mAh zaleca dopuszczalny prąd 100mA po czym odpoczynek minimum 1 minuta.

    Może daj większą baterię np CR2477, 24.0x7.7 mm, 3 V 1000 mAh
    Zastosowanie kondensator 1000uF lub nawet 2200uF ochroni baterię, nie będzie narażona na duże uderzenia prądowe.
    Co do upływności, jak kondensator będzie dobrej firmy to nie będzie miało to dużego znaczącego przy poborze prądu 3,2uA.
  • #24 18626960
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    figa_miga napisał:
    Robisz wszystko na jednym pinie procka, nie interesuje cię stabilność zegara

    Przykro mi ale nadal niewiele rozumiem. Podałeś chyba całkiem inną metodę pomiarową. Nie mierzę tu napięcia a czas do rozładowania elektrody. Kiedyś, jeszcze na AVR próbowałem różnych metod pomiarowych dla przycisków pojemnościowych i tylko ta od microchip przynosiła oczekiwane rezultaty.

    figa_miga napisał:
    nie interesuje cię stabilność zegara

    to może być u mnie problemem i nie sprawdzałem jak pomiar waha się względem temperatury. Podejrzewam, że nie aż tyle żeby mi to przeszkadzało

    dasej napisał:
    Bateria dlatego Ci nie wytrzymuje

    Nigdzie nie napisałem, że nie wytrzymuje
  • #25 18972617
    .:KoSik:.
    Poziom 18  
    Posty: 622
    Pomógł: 19
    Ocena: 308
    Mala aktualizacja.
    Pierwsze dwie sztuki czujnikow dzialaja nieprzerwanie juz od 7 miesiecy na baterii Varta i utrzymuja napiecie powyzej 3V. Taki wynik jest dla mnie satysfakcjonujacy.

Podsumowanie tematu

✨ Czujnik wilgotności gleby zaprezentowany przez autora oparty jest na mikrokontrolerze STM32F103 i wykorzystuje transceiver NRF24L01 do komunikacji. Autor zwraca uwagę na problem z zasilaniem, ponieważ bateria CR2032 o pojemności 220mAh nie wystarcza na długi czas pracy przy dużym poborze prądu. Uczestnicy dyskusji poruszają kwestie kalibracji czujnika, wpływu temperatury na napięcie baterii oraz proponują alternatywne rozwiązania, takie jak zastosowanie ogniwa litowego 1/2AA lub kondensatorów do stabilizacji zasilania. Wskazano również na metody pomiarowe, które mogą poprawić efektywność energetyczną urządzenia. Autor potwierdził, że czujniki działają nieprzerwanie przez 7 miesięcy na baterii Varta, co uznaje za satysfakcjonujący wynik.
Wygenerowane przez model językowy.
REKLAMA