Nie do końca Amatorska Stacja Meteorologiczna – Część 6 – czujniki z maplin

Nie do końca Amatorska Stacja Meteorologiczna – Część 6 – czujniki z maplin

W tej części postaram się opisać czujniki meteorologiczne a dokładniej czujnik opadu, czujnik kierunku oraz czujnik prędkości wiatru są to czujniki składowe anemometrów sygnalizujących. Stacja meteo nie musi tylko mierzyć oraz zapisywać warunków atmosferycznych, może również sterować zewnętrznymi urządzeniami ale o tym w innej części.

Zajmijmy się czujnikiem opadu. Czujnik ten mierzy opad metodą korytkową. Opad zbierany na lejku czyli górnej obudowie czujnika spływa po ściankach poprzez sitko do jego wnętrza gdzie na korytku zbiera się opad. Każde przechylenie korytka powoduje chwilowe zwarcie kontaktronu co jest równe 0,2794 mm / metr kwadratowy opadu. Impulsy opadu zliczam do czasu zapisu do bazy danych. Po zapisie ilości opadu w bazie mysql zeruję licznik opadu. Sumowaniem dobowego opadu zajmuje się funkcja w php po stronie serwera www.
Czujnik składa się z górnej obudowy, podstawy, korytka służącego do pomiaru ilości opadu, posiada małą płytkę pcb z kontaktronem.
opad_01 opad_02

opad_03

Na ostatniej fotografii widzimy w jaki sposób złożony jest czujnik opadu, jego płytka PCB onieśmiela, oznacza to iż gdy czujnik ulegnie uszkodzeniu to mogą uszkodzić się tylko trzy rzeczy:
1. Połączenie płytki z przewodami.
2. Kontaktron.
3. Ścieżki.
Na płytce znajdują się dwie ścieżki i kontaktron oraz dodatkowe dwie sztuki gąbek przyklejonych do płytki aby usztywnić ją w obudowie. Magnes zwiera kontaktron, który położony jest w centralnej części korytka aby każdy przechył zwierał kontaktron.

Dla czujnika opadu w pliku meteo_sensors.h zadeklarowałem następujące zmienne oraz funkcje, jest to podstawowa wersja która umożliwi wam bezproblemowy odczyt z czujników zawierająca fragment opadu. W dalszej części biblioteka będzie kompletowana:

Natomiast w pliku meteo_sensors.c inicjujemy timer oraz prostą funkcję służącą do zliczania impulsów z czujnika opadu:

 

Czujnik prędkości wiatru zbudowany jest z podstawy oraz trzech łopatek. Wiejący wiatr napiera na łopatki obracając nimi. Każdy wygenerowany impuls w ciągu 1 sekundy to 1.492 mph po przeliczeniu 2.4006279999999998 km/h prędkość ta została zaokrąglona do 2.4 km/h. Możemy również obliczyć prędkość w m/s która równa jest 0.6669527583. Analogicznie jak km/h wynik przeliczenia prędkości zaokrąglony został do 0.66 m/s. Do bazy msql na serwerze www zapisuję prędkość wiatru odczytaną w trakcie zapisu oraz prędkość maksymalną która została odczytana pomiędzy zapisami. Pokusić się można o podanie średniej prędkości wiatru jaka była pomiędzy zapisami. Wystarczy zsumować odczytane prędkości wiatru i podzielić tę wartość przez ilość odczytów.

01spd 02spd 03spd 04spd

Zastanawiacie się pewnie jak zdjąć łopatki? Otóż jest to dość proste, chwyćcie podstawę w jedną rękę, łopatki w drugą i delikatnie ciągnijcie. Łopatki zsuną się z łożyska. Jest to ważny element serwisowy, gdyż ona łożysku jest smar. Łożysko powinno się smarować przynajmniej raz do roku aby chronić przed wilgocią. W ten sam sposób zdejmiemy wskaźnik kierunku wiatru.
Zasada działania czujnika prędkości wiatru jest identyczna jak w przypadku opadu deszczu, jednakże funkcja jest trochę inaczej realizowana. Plik nagłówkowy w przypadku obsługi samego czujnika prędkości wiatru wyglądał będzie następująco:

Oczywiście ilu programistów tyle pomysłów ja pokazuję wam drogę wraz z działającą funkcją. Plik programu będzie następujący:

Z powyższych kodów jesteście wstanie skleić jedną bibliotekę do obsługi czujnika opadu oraz prędkości wiatru.

Czujnik kierunku wiatru działa na innej zasadzie niż czujnik opadu oraz prędkości wiatru, mimo iż ich konstrukcja jest bardzo zbliżona. Czujnik ten złożony został z 8 kontaktronów oraz rezystorów użytych jako dzielnik napięcia. Wyposażony jest on dodatkowo w gniazdo RJ-11 aby można było podłączyć czujnik prędkości wiatru i jednym przewodem sprowadzić oba czujniki do płytki głównej stacji meteo.

001
005
004
002
003
Zwróćcie uwagę na ostatnią fotografię w której to widać gdzie założony jest magnes zwierający kontaktrony. Został on wysunięty na sam rant po to aby nie zwierać zbyt dużej ilości kontaktronów.

Czujnik ten podłączamy trochę inaczej do mikrokontrolera gdyż nie będzie on podłączony do wejścia INT0 czy też INT1. Zostanie on podłączony do pinu ADC mikrokontrolera, w moim przypadku jest to ATmega32.

Oczywiście jest to najprostszy przykład, który do własnej prywatnej stacji można wykorzystać z zachowaniem informacji z kąd pochodzi oraz autora jako avrtech.pl jak i linku do mojego bloga. Zaznaczam również, że wartości ADC mogą się różnić np z powodu zastosowanych innych rezystorów lub inaczej ułożonej płytce PCB w obudowie czujnika kierunku wiatru.

Informacje o: majeś

POLECANE POSTY

Komentarze:

  1. Witam,potrzebuję porady mam  stację WS 1080 i działa wszystko ok.Mam natomiast okazję kupić bazę ws 1600.Niby częstotliwość pracy podobna ale czy zaloguje się do istniejących czujników?.Czy ktoś z Państwa ma jakies doświadczenie w tej materii.Pozdrawiam

    1. Witam
      Jako iż nie bawiłem się stacjami WS1080 ani WS1600 nie jestem w stanie pomóc. Baza może i pracuje na tych samych częstotliwościach lub podobnych (a jak podobnych to na pewno się nie da ich połączyć) ale to nie oznacza że czujniki dogadają się z bazą o wyższych możliwościach.

      Może być tak, że czujniki od WS1080 dogadają się ze stacją WS1600 ale nie podadzą wszystkich parametrów, może również być tak, że nie dogadają się i nic nie będzie działało a wszystko to zależy głównie od ramek jakie wysyłają czujniki a jakie w stanie jest odebrać baza.

      Wnioskując po tym, że WS1080 oraz WS1600 jest tego samego producenta to czujniki od WS1080 powinny się dogadać z WS1600 ale powtarzam „powinny” jak już wcześniej wspomniałem wszystko zależy od tego jakie ramki wysyłają czujniki a jakie może odebrać baza.
      Nie mniej sądzę, że około połowy ekranu w WS1600 będzie pusta.

      Polecam napisać maila do sprzedawcy, ewentualnie do producenta, gdyż nie jestem w stanie odpowiedzieć jednoznacznie za producenta tym bardziej, że nie miałem okazji bawić się tymi stacjami.

      Pozdrawiam

  2. Drogi Autorze gdzie można kupić takie czujniki? Najbardziej interesuje mnie ten od prędkości wiatru. Znalazłem na stronie maplina ale nie ma wysyłki do Polski. Da się to dostać u nas?

    1. Witaj no niestety mimo iż Maplin sprzedaje czujniki które mimo wszystko mają napis MADE IN CHINA to tam się ich nie da zakupić. Pozostaje ktoś znajomy w UK, który dokona zakupu i wyśle czujnik do Ciebie.

    2. Zapraszam na forum nettemp.pl albo na stronę forum atnel. Dałem tam ogłoszenia o sprzedaży czujników prędkości i kierunku wiatru. Wysyłka z pl bo czujniki mam w warsztacie.

        1. Przeczytaj pozostałe komentarze. Np w tym z 2017-01-27 o 17:57 podałem linka gdzie można je zakupić w chinach.

    3. Oficjalnie mogę stwierdzić, że od krótkiego czasu czujniki dostępne są również na aliexpress :)
      Cena nie jest mała ale jeżeli komuś chce się czekać to lepsze to niż brak wysyłki w Maplinie do PL

      https://pl.aliexpress.com/

      Jak długo będą dostępne i czy na stałe nie mam pojęcia.

      Pozdrawiam

  3. Super robota… BRAWO!

    Mam takie małe pytanie odnośnie sensora opadów deszczu.

    Z tego co piszesz to „kołyska” przechyli się jak wpadnie do niej 279,4 mililitrów wody-tak, dobrze myślę?

    1. Cieszę się, że komuś się podobają moje wpisy. Aktualnie przygotowuję kolejny lecz na jego potrzeby piszę program od 0 aby pozbyć się wszystkich ewentualnych błędów programowych i pozostałości w kodzie, także mam nadzieję, że wiedza którą staram się przekazać będzie pomocna.

      Co do ilości mililitrów to nigdy nie sprawdzałem tej wartości strzykawką ale dokładnie tak to powinno wyglądać.

  4. Witam.

    Czy podczas korzystania z czujnika prędkości wiatru, oraz ilości opadu nie miałeś problemu z tzw. drganiami styków? Akurat jak ja się bawiłem z tymi czujnikami to właśnie miałem problem taki, że niepoprawnie zliczały impulsy, szczególnie przy małych częstotliwościach przełączeń (zamiast jeden to kilka impulsów).

    Czy zabezpieczyłeś program przed takim zjawiskiem, jak drgania styków?

     

    Jak często pomiary wykonujesz? Tylko przed wysłaniem danych na serwer, czy częściej i potem na serwer wysyłasz dane uśrednione?

    1. Cześć Danielos
      Generalnie nie miałem problemów z drganiami styków gdyż czujniki podłączam do pinów INT0 oraz INT1 po stronie sprzętowej mam dołożone 100nF do GND i piny wewnętrznie podciągnięte do VCC.

      Czujniki są sprawdzane co 1s. Wyniki do domu wysyłane są również co 1 sek (wszystkie) natomiast na stronę www dane wysyłam co 10 minut.

      1. Dzięki za odpowiedź!
        Po Twojej informacji, że nie miałeś problemów z drganiami, sprawdziłem połączenia i program. Okazało się, że skonfigurowałem nie ten pin do którego miałem podpięty czujnik i dlatego działy mi się cuda z odczytem. Po poprawieniu, odczyt się udał.
        Pozdrawiam!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *