Schemat podłączenia anemometru zrób to sam. Domowy anemometr do pomiaru prędkości wiatru. Oprogramowanie komputerowe

Anemometr to urządzenie służące do pomiaru prędkości wiatru. Klasyczny anemometr kubkowy jest przyrządem czysto mechanicznym, zdolnym do pomiaru prędkości wiatru w zakresie od 2 do 20 m/s. Anemometr po prostu zlicza liczbę obrotów wirnika. Aby określić prędkość wiatru, należy zmierzyć liczbę obrotów w określonym czasie, na przykład 30 s, a następnie obliczyć liczbę działek, które przechodzi igła anemometru w ciągu 1 s. Następnie, aby określić prędkość wiatru, należy skorzystać z wykresu.

Najłatwiej jest zaprojektować jego analog w oparciu o silnik elektryczny małej mocy, na przykład DM-03-3AM 3 91, który działa jako generator. Czterołopatkowy wirnik anemometru został wzięty w stanie gotowym, zakupiony na Aliexpress za około 1 dolara.

Średnica wirnika wynosi 10 cm, a wysokość 6 cm.

Silnik elektryczny umieszczony jest w obudowie wykonanej ze zbiornika do spawania na zimno, w którego pokrywie wycięty jest otwór na wał silnika elektrycznego i przewody wychodzące z silnika.

Mostek diodowy VD1 zamontowany na diodach Schottky'ego 1N5817 jest podłączony do silnika elektrycznego. Na wyjściu mostka diodowego podłączony jest kondensator elektrolityczny C1 1000 uF x 16 V.

Schemat podłączenia anemometru

Diody Schottky'ego wybiera się ze względu na to, że prędkość obrotowa wirnika w normalnych warunkach (jeśli nie ma huraganu) nie jest zbyt duża. Przy prędkości wiatru około 6 m/s na wyjściu urządzenia pojawia się napięcie około 0,5 V. W takich warunkach racjonalne jest minimalizowanie strat na wszystkich elementach obwodu. Z tego samego powodu jako przewody łączące stosuje się przewody o zbyt dużym przekroju.

Do zacisków prostownika można podłączyć dowolny woltomierz prądu stałego 2 V. Multimetr spełnia swoją rolę znakomicie. Chociaż zastosowanie osobnego urządzenia wskazującego pozwala na bezpośrednią kalibrację skali w zakresie prędkości wiatru.

Ponieważ urządzenie miało pracować na ulicy, mostek diodowy został wypełniony żywica epoksydowa. Jak się okazało, kondensator został uznany za zbyt pojemny, aby urządzenie nie było w stanie wykryć gwałtownych spadków napięcia, a co za tym idzie, podmuchów wiatru. Recenzja: Denev.

DIY miernik prędkości wiatru

Do jednego projektu pojawiło się zadanie polegające na złożeniu anemometru tak, aby możliwe było pobieranie danych na komputer poprzez interfejs USB. W artykule skupimy się bardziej na samym anemometrze niż na systemie przetwarzania danych z niego:

1. Komponenty

Tak więc do wytworzenia produktu potrzebne były następujące komponenty:
Mysz kulkowa Mitsumi - 1 szt.
Piłeczki do ping-ponga - 2 szt.
Kawałek pleksi o odpowiedniej wielkości
Drut miedziany o przekroju 2,5 mm2 - 3 cm
Długopis - 1 szt.
Cukierki Chupa Chups - 1 szt.
Klips do kabla - 1 szt.
Beczka mosiężna pusta 1 szt.

2. Wykonanie wirnika

Do mosiężnej beczki przylutowano 3 kawałki drutu miedzianego o długości 1 cm każdy pod kątem 120 stopni. W otwór lufy wlutowałem podstawkę od chińskiego odtwarzacza z gwintem na końcu.

Rurkę od cukierka przecięłam na 3 części o długości około 2 cm.

Przeciąłem 2 kulki na pół i za pomocą małych śrubek od tego samego odtwarzacza oraz kleju styropianowego (z pistoletu do klejenia) przymocowałem połówki kulek do tubek lizaków.

Rurki z połówkami kuli położyłem na przylutowanych kawałkach drutu i przymocowałem wszystko na wierzchu za pomocą kleju.

3. Produkcja części głównej

Elementem nośnym anemometru jest metalowy pręt wykonany z długopisu. W dolnej części pręta (w miejscu włożenia korka) włożyłem dysk z myszką (enkoderem). W konstrukcji samej myszy dolna część enkodera opierała się o korpus myszy, tworząc łożysko punktowe, był smar, więc enkoder obracał się łatwo. Ale konieczne było przymocowanie górnej części pręta, w tym celu wziąłem odpowiedni kawałek plastiku z otworem dokładnie o średnicy pręta (taki kawałek został wycięty z systemu przedłużenia wózka CD-ROMa). Pozostało rozwiązać problem tak aby pręt enkodera nie wypadł z łożyska punktowego, dlatego wlutowałem kilka kropli lutowia na pręt bezpośrednio przed elementem ustalającym. W ten sposób pręt obracał się swobodnie w konstrukcji ustalającej, ale nie wypadał z łożyska.

Powód wyboru układu enkodera jest następujący: wszystkie artykuły w Internecie dotyczące domowych anemometrów opisywały ich produkcję w oparciu o silnik prądu stałego z odtwarzacza, płyty CD-ROM lub innego produktu. Problemem takich urządzeń jest po pierwsze ich kalibracja i mała dokładność przy małych prędkościach wiatru, a po drugie nieliniowa charakterystyka prędkości wiatru względem napięcia wyjściowego, tj. aby przesłać informacje do komputera, pojawiają się pewne problemy, należy obliczyć prawo zmiany napięcia lub prądu na podstawie prędkości wiatru. Podczas korzystania z enkodera nie ma takiego problemu, ponieważ zależność jest liniowa. Dokładność jest najwyższa, ponieważ enkoder daje około 50 impulsów na obrót osi anemometru, ale nieco bardziej skomplikowany jest obwód przetwornika, w którym znajduje się mikrokontroler zliczający liczbę impulsów na sekundę na jednym z portów i wyjść tę wartość do portu USB.

4. Testowanie i kalibracja

Do kalibracji wykorzystano anemometr laboratoryjny.


Wykonując własnoręcznie bardzo proste urządzenie i korzystając z tej aplikacji, otrzymasz prawdziwy anemometr do pomiaru prędkości wiatru lub przepływu powietrza w system wentylacji. Możesz wybrać konstrukcję anemometru, która najlepiej odpowiada Twoim wymaganiom.

Wyznaczanie prędkości wiatru opiera się na pomiarze prędkości obrotowej magnesu za pomocą magnetometru telefonu. Dla każdej konstrukcji anemometru określana jest zależność prędkości obrotowej od prędkości przepływu powietrza. Zależności te można edytować.

Zaproponowane projekty można ulepszyć lub stworzyć własne i skalibrować.

Aby wybrać jednostki (m/s, km/h, ft/s, mph, węzły, Bft, Hz (obroty na sekundę), RPM (obroty na minutę)) lub wartość średnią („Avg1” to ostatnia wartość, „Avg3 " i "Avg7" - wartość średnia) naciśnij wyświetlacz siedmiosegmentowy.

Nie zaniedbuj etui na telefon.

Anemometr „zewnętrzny”.




Jeśli chcesz zmierzyć prędkość wiatru na na dworze, to ten typ najlepiej się do tego nadaje. Na zmiany nie ma wpływu kierunek wiatru (anemometr łopatkowy), a wirnik nie zostanie zdmuchnięty przez silny podmuch wiatru (anemometr „Sensitive”).

Dane techniczne:
Zakres pomiarowy od 0,5 m/s do 15 m/s.
Dokładność 0,5 m/s.


Aby zrobić anemometr, należy wyciąć kwadrat o wymiarach 7,6 x 7,6 cm z aluminiowej puszki.








Na powstałym arkuszu musisz dokonać znaczników.




Wykonuj nacięcia nożyczkami w miejscach śladów.




Przymocuj bardzo ostrożnie pożądany kształt. Jeśli wirnik nie przyjmie od razu pożądanego kształtu, można go wyrównać po wykonaniu otworu w środku.










Wszystkie ostre rogi należy obciąć. Należy to zrobić, aby odcięty róg nie dostał się komuś do oka.




Wirnik przykręcony jest do trzonka długopisu. Wewnętrzna średnica pręta może się znacznie różnić. Dlatego ciężko napisać jaki rozmiar śruby będzie pasował. Na zdjęciu zastosowano śrubę o rozmiarze gwintu 2x6 mm. Łeb śruby musi być płaski (wpuszczony), ponieważ magnes musi dobrze na nim leżeć. Preferowany jest rowek śruby Pozidriv (PZ). taka szczelina jest potrzebna w innej konstrukcji anemometru.




Zamiast śrubki można zastosować bardzo małe śrubki, gwoździe, a nawet przykleić wirnik i magnes guma do żucia(guma powinna wyschnąć). Jeśli goździk jest trochę mniejszy niż to konieczne, wykonaj na nim nacięcia.








Teraz musisz zrobić mały krzyż z kwadratu o boku 1,2 cm (1/2 cala) z małym wcięciem pośrodku. Możesz użyć mniejszego kwadratu, np. jeśli wewnętrzna średnica rączki jest mniejsza.




Krzyżyk ostrożnie wkłada się w uchwyt i dociska do końca.






Anemometr jest prawie gotowy. Po dmuchaniu powinien łatwo się obracać. PRĘT POWINIEN DOTYKAĆ TYLKO KRZYŻA PIŁKĄ (być może w tym celu będziesz musiał nieco zmniejszyć krzyż). ABY TO WIDZIĆ, DŁUGOPIS MUSI BYĆ PRZEZROCZYSTY.


Teraz musisz upewnić się, że pręt nie zwisa z uchwytu. W tym celu odcinamy górę korka warstwa po warstwie, do wielkości otworu, w którym pręt może się swobodnie obracać.






Pozostaje przymocować magnes i anemometr gotowy. używany Magnes neodymowy rozmiar 4x4x4 mm (większy magnes neodymowy nie jest dobrze wyśrodkowany na łbie śruby i będzie musiał zostać przyklejony). Bieguny magnesu muszą być skierowane promieniowo. Kolejny magnes pomoże Ci znaleźć bieguny sześcianu. Jeżeli posiadasz marker, koniecznie oznacz go magnesem.




Aby wirnik nie wyleciał z uchwytu przy silnym podmuchu wiatru, można nawinąć kilka warstw taśmy klejącej do średnicy korka, która nie wchodzi w otwór. Nie można nawijać zbyt wielu warstw, aby podczas obracania nie było dotykania rączki.




Do wykonania anemometru można zastosować inne typy uchwytów (np. „Bic Cristal”).


Aby wyjąć zatyczkę należy przyłożyć ostrze noża w sposób pokazany na zdjęciu i popchnąć.


W przypadku tego pióra należy użyć mniejszego krzyża wykonanego z kwadratu o boku 3/8 cala (9 mm).










Rozmiar użytej śruby to 2,5 x 6 mm (nr 3) (lub gwóźdź kolczasty 1,8 mm).


Jeśli nie możesz kupić małego magnesu neodymowego, możesz użyć magnesów tablicowych.








Magnesy elastyczne są bardzo słabe i nie można ich używać.


Zależność częstotliwości obrotów od prędkości wiatru:
2 Hz - 1,5 m/s
4 Hz - 2,7 m/s
6 Hz - 3,8 m/s

„Czuły” anemometr


Dane techniczne:
Zakres pomiarowy od 0,5 m/s do 3,5 m/s.
Dokładność 0,5 m/s.
Interwał aktualizacji 2-5 sek.


Wytnij prostokąt o wymiarach 7,6 x 5,1 cm (3 x 2 cale).






Zaznacz trzy prostokąty o szerokości 1 cala (2,53 cm).






















Bardzo ważne jest użycie śruby Pozidriv (PZ). Ponieważ w takim gnieździe igła nie dotyka ścian bocznych. Długość śruby powinna być jak najkrótsza, tak aby magnes znajdował się jak najniżej. Na zdjęciu użyto śruby 2x6mm.


Po dokręceniu śruby „skrzydełka” są ostrożnie rozchylane, a wirnikom nadawany jest pożądany kształt.










Aby magnes dobrze trzymał się śruby, należy dokręcić kolejną nakrętkę. Ale nie przekręcaj tego.




Dzięki zamocowaniu magnesu neodymowego (4x4x4 mm) środek ciężkości wirnika podnosi się i staje się on niestabilny na iglicy. Aby obniżyć środek ciężkości należy przykleić obciążniki od WEWNĄTRZ „skrzydełek” (stosuje się podkładki pod śrubę 4 mm).


Wirnik może kręcić się nie tylko na szydle, ale także na BARDZO DOBRZE naostrzonych ołówkach lub na igle do szycia przyczepionej do ołówka. Na igle do szycia wirnik kręci się najlepiej, ale ta opcja wymaga dużej ostrożności i NIE JEST ODPOWIEDNIA DLA DZIECI.




Zależność częstotliwości obrotów od prędkości wiatru (na ołówku automatycznym 0,5 mm):
1,5 Hz - 1,4 m/s
4 Hz - 2,85 m/s
6 Hz - 3,4 m/s

anemometr łopatkowy


Przeznaczony do pomiaru natężenia przepływu powietrza w instalacjach wentylacyjnych.

Dane techniczne:
Zakres pomiarowy od 1,75 m/s do 3,0 m/s.
Dokładność 0,2 m/s.
Interwał aktualizacji 2-5 sek.

Ten anemometr składa się z wentylatora z łożyskami tocznymi. Można wybrać wentylator o dowolnej wielkości, należy jednak pamiętać, że im mniejszy rozmiar wentylatora, tym niższa czułość anemometru. Wykorzystuje wentylator 80x80x25mm.


Aby wentylator mógł się swobodnie obracać, należy wyciągnąć z niego magnes pierścieniowy.




Podczas zdejmowania pierścienia ustalającego należy go trzymać ręką, aby nie odleciał i nie zgubił się.






Aby wyciągnąć magnes pierścieniowy, należy podłożyć pod niego płaski śrubokręt i lekko obrócić śrubokręt. Powinno to nieco wypchnąć magnes. Powtarzając tę ​​czynność, należy RÓWNIEŻ podnieść cały magnes.




Gdy magnes podniesie się do pozycji, w której nie można go już podnieść śrubokrętem, należy użyć śruby (4x30(>30) mm).









Teraz wentylator chodzi. A jeśli nie założysz pierścienia ustalającego, wentylator będzie łatwiej się obracał, ale wirnik może wypaść.

Zależność prędkości obrotowej od natężenia przepływu powietrza:
4 Hz - 1,85 m/s
6 Hz - 2,3 m/s
8 Hz - 2,55 m/s
12 Hz - 2,7 m/s
18 Hz - 2,8 m/s

Jeśli coś nie jest jasne, koniecznie napisz e-mail.

Do produkcji urządzenia mierzącego prędkość przepływu powietrza potrzebne będą improwizowane środki. Na przykład połówki plastikowych pisanek można wykorzystać jako ostrza anemometru. Będziesz także potrzebował kompaktowego silnika bezszczotkowego z magnesami trwałymi. Najważniejsze jest to, że opór łożysk na wale silnika jest minimalny. Wymóg ten wynika z faktu, że wiatr może być bardzo słaby, a wtedy wał silnika po prostu się nie obraca. Aby stworzyć anemometr, wystarczy silnik ze starego dysku twardego.

Główną trudnością w montażu anemometru jest wykonanie wyważonego wirnika. Silnik będzie musiał zostać zainstalowany na masywnej podstawie, a na jego wirniku należy umieścić gruby plastikowy dysk. Następnie z plastikowych jajek należy ostrożnie wyciąć trzy identyczne półkule. Mocuje się je na dysku za pomocą kołków lub stalowych prętów. W takim przypadku dysk należy najpierw podzielić na sektory po 120 stopni.

Równoważenie zaleca się przeprowadzać w pomieszczeniu, w którym nie ma żadnych ruchów wiatru. Oś anemometru musi znajdować się w pozycji poziomej. Regulacja ciężaru zwykle odbywa się za pomocą pilników igłowych. Chodzi o to, że rotor zatrzymuje się w dowolnej pozycji, a nie w tej samej.

Kalibracja przyrządu

Domowe urządzenie musi zostać skalibrowane. Najlepszym sposobem kalibracji jest skorzystanie z samochodu. Ale potrzebny jest jakiś maszt, żeby nie dostał się w strefę zanieczyszczonego powietrza wytwarzanego przez samochód. W przeciwnym razie odczyty będą bardzo zniekształcone.

Kalibrację należy przeprowadzać wyłącznie w spokojny dzień. Wtedy proces nie będzie opóźniony. Jeśli wieje wiatr, będziesz musiał długo jechać drogą i obliczyć średnie wartości prędkości wiatru. Należy pamiętać, że prędkościomierz jest mierzony w km/h, a prędkość wiatru w m/s. Stosunek między nimi wynosi 3,6. Oznacza to, że odczyty prędkościomierza będą musiały zostać podzielone przez tę liczbę.

Niektórzy ludzie korzystają z dyktafonu podczas procesu kalibracji. Możesz po prostu dyktować odczyty prędkościomierza i anemometru urządzeniu elektronicznemu. W tym miejscu możesz stworzyć nową skalę dla swojego domowego anemometru. Tylko przy pomocy odpowiednio skalibrowanego urządzenia można uzyskać wiarygodne dane o sytuacji wiatrowej na wymaganym obszarze.

Stacja pogodowa zbudowana jest na mikrokontrolerze Picaxe firmy Revolution Education Ltd i składa się z dwóch głównych części: jednostka zewnętrzna, który wysyła dane co 2 sekundy, korzystając z nadajnika pracującego na częstotliwości 433 MHz. Oraz jednostkę wewnętrzną, która wyświetla odebrane dane na wyświetlaczu LCD 20 x 4, a także ciśnienie atmosferyczne mierzone lokalnie w jednostce wewnętrznej.

Starałem się, aby projekt był jak najbardziej prosty i funkcjonalny. Urządzenie komunikuje się z komputerem poprzez port COM. Obecnie na komputerze na bieżąco budowane są wykresy z uzyskanych wartości, a wartości wyświetlane są także na konwencjonalnych wskaźnikach. Wykresy i odczyty czujników są dostępne na wbudowanym serwerze internetowym, wszystkie dane są zapisywane i tak dalej. Możesz przeglądać dane za dowolny okres czasu.

Budowa stacji pogodowej trwała kilka miesięcy, od projektu do ukończenia, i ogólnie jestem bardzo zadowolony z wyniku. Szczególnie cieszę się, że udało mi się zbudować wszystko od podstaw przy użyciu zwykłych narzędzi. Całkowicie mi to odpowiada, ale nie ma ograniczeń co do perfekcji, a szczególnie dotyczy to interfejsu graficznego. Nie podejmowałem żadnych prób komercjalizacji stacji pogodowej, ale jeśli myślisz o zbudowaniu stacji pogodowej dla siebie, to jest to dobry wybór.

Czujniki zewnętrzne

Czujniki służą do pomiaru temperatury, wilgotności, opadów, kierunku i prędkości wiatru. Czujniki to połączenie urządzeń mechanicznych i elektronicznych.

Czujnik temperatury i wilgotności względnej

Pomiar temperatury jest prawdopodobnie najłatwiejszy. W tym celu wykorzystuje się czujnik DS18B20. Do pomiaru wilgotności użyto miernika HIH-3610, generując napięcie od 0,8 do 3,9 V przy wilgotności od 0% do 100%

Zainstalowałem oba czujniki na małym płytka drukowana. Tablica montowana jest wewnątrz domowej roboty obudowy zabezpieczającej przed deszczem i innymi czynnikami zewnętrznymi.

Poniżej przedstawiono uproszczony kod każdego z czujników. Bardziej precyzyjny kod odczytujący wartości z dokładnością do jednego miejsca po przecinku pokazano na stronie Petera Andersona. Jego kod wykorzystywany jest w ostatecznej wersji stacji pogodowej.

Czujnik temperatury zapewnia dokładność ± 0,5°C. Czujnik wilgotności zapewnia dokładność do ± 2%, więc nie ma większego znaczenia, ile miejsc po przecinku jest dostępnych!

Przykład wykresu z oprogramowania działającego na komputerze PC.

Temperatura

Główny: readtemp B.6, b1 ; wczytaj wartość do b1, jeśli b1 > 127, to neg; test na wynik negatywny sertxd (#b1, cr, lf) ; przesyłanie wartości do zacisku PE pauza 5000 goto main neg: b1 = b1 - 128 ; dostosuj wartość ujemną sertxt("-"); transmituj symbol ujemny sertxt (#b1, cr, lf) ; przesłać wartość do zacisku PE, pauza 5000, przejdź do głównego

Wilgotność

Główne: readadc B.7,b1 ; odczytaj wartość wilgotności b1 = b1 - 41 * 100 / 157 ; zmień na %RH sertxd (#b1, "%", cr, lf) pauza 5000 ; poczekaj 5 sekund, przejdź do głównego

Obliczanie czujnika wilgotności

Obliczenia zaczerpnięte z dokumentacji czujnika Honeywell HIH-3610. Wykres przedstawia krzywą standardową w temperaturze 0°C.

Napięcie z czujnika mierzone jest na wejściu ADC (B.7) mikrokontrolera Picaxe 18M2. W powyższym kodzie wartość reprezentowana jako liczba od 0 do 255 (tj. 256 wartości) jest przechowywana w zmiennej b1.

Nasz obwód zasilany jest napięciem 5 V, zatem każdy stopień ADC wynosi:
5/256 = 0,0195 V.

Wykres przedstawia początkową wartość ADC 0,8 V:
0.8 / 0.0195 = 41

Biorąc wartości z wykresu, nachylenie wykresu (biorąc pod uwagę przesunięcie) wynosi w przybliżeniu:
Napięcie wyjściowe / % RH lub
(2,65 - 0,8) / 60 = 0,0308 V w % RH
(W dokumentacji 0.0306)

Obliczmy liczbę kroków ADC dla 1% wilgotności:
(V na % RH) / (krok ADC)
0.0308 / 0.0195 = 1.57

%RH = wartość ADC - przesunięcie ADC / (kroki ADC w %RH), lub
%RH = wartość ADC - 41 / 1,57

Ostateczny wzór obliczeniowy dla mikrokontrolera będzie wyglądał następująco: %RH = wartość ADC - 41 * 100/157

Obudowa ochronna

Zacznij od przecięcia każdego panelu na dwie części. Deski z jednej strony będą solidnie przymocowane po obu stronach, a na drugiej części tylko z jednej strony. Nie wyrzucaj tych części – są używane.

Dołącz dwa do całych części drewniane pręty 20mm x 20mm od góry i od dołu i przykręć do nich pozostałe elementy.

Jeden z kawałków wytnij na wymiar jedną całą stroną i przyklej wewnątrz jedna ze stron. Upewnij się, że deski są sklejone tak, aby utworzyły razem kształt „^”. Zrób to ze wszystkich stron.

Miernik prędkości i kierunku wiatru

Mechaniczny

Czujniki prędkości i kierunku wiatru stanowią połączenie elementów mechanicznych i elektronicznych. Część mechaniczna jest identyczna w przypadku obu czujników.

Wkładka ze sklejki o grubości 12 mm (warstwa morska) jest umieszczana pomiędzy rurą PCV a krążkiem ze stali nierdzewnej na górnym końcu rury. Łożysko jest przyklejone do tarczy ze stali nierdzewnej i utrzymywane na miejscu za pomocą płytki ze stali nierdzewnej.

Gdy wszystko jest już w pełni zmontowane i skonfigurowane, odsłonięte obszary są uszczelniane uszczelką w celu zapewnienia wodoszczelności.

Pozostałe trzy otwory na zdjęciu są przeznaczone na ostrza. Ostrza o długości 80 mm dają promień skrętu 95 mm. Miseczki o średnicy 50 mm. Do tego użyłem przyciętych butelek wody kolońskiej, które mają prawie kulisty kształt. Nie jestem pewien co do ich niezawodności, więc sprawiłem, że można je łatwo wymienić.

Część elektroniczna

Elektronika czujnika prędkości wiatru składa się wyłącznie z przełącznika tranzystorowego, fotodiody i dwóch rezystorów. Montowane są na małej, okrągłej płytce PCB o średnicy 32mm. Montuje się je swobodnie w rurze, dzięki czemu wilgoć, jeśli dostanie się do środka, spływa bez dotykania elektroniki.

Anemometr jest jednym z trzech czujników wymagających kalibracji (pozostałe dwa to licznik opadów i czujnik ciśnienia barometrycznego)

Fotodioda dostarcza dwa impulsy na obrót. W prostym systemie „szeregowym”, do którego dążyłem (wszystkie czujniki są odpytywane po kolei), musi istnieć kompromis pomiędzy czasem spędzonym na odpytywaniu każdego czujnika (w tym przypadku zliczaniem impulsów) a reakcją systemu jako całość. W idealnym przypadku pełny cykl odpytywania wszystkich czujników nie powinien trwać dłużej niż 2-3 sekundy.

Na zdjęciu powyżej sprawdzenie czujnika za pomocą silnika z regulowaną prędkością.

; Polecenia specyficzne dla wyświetlacza LCD pokazane na niebiesko hsersetup B9600_4, %10000 ; Użyj pinu LCD 1, bez hserin hserout 0, (13): pauza 100; Zainicjuj LCD hserout 0, (13): pauza 100 hserout 0, (13): pauza 100 przerwa 500 hserout 0, („ac1”, 13) ; Wyczyść pauzę wyświetlania 50 hserout 0, („acc”, 13) hserout 0, („ac81”, 13, „adcount: „, 13) ; Wydrukuj nagłówki pauza 10 hserout 0, („ac95”, 13, „adpulsin: „, 13) ; Wydrukuj nagłówki pauza 10 do count C.2, 1000, w0 ; Policz impulsy (dwa na obrót) w1 = 0 dla b8 = 1 do 2 ; Zmierz długość impulsu dwukrotnie impuls C.2, 1, w2 ; na obrót i... w1 = w1 + w2 następnie w1 = w1 / 2 ; ...oblicz średni hserout 0, („ac89”, 13, „ad”, #w0, „ „, 13) ;Wydrukuj wartość licznika hserout 0, („ac9d”, 13, „ad”, #w1, „ ", 13) ;Drukuj wartość długości impulsu w pętli pauzy 100

Chciałem skalibrować go w czasie jazdy, ale nie było na to czasu. Mieszkam na stosunkowo płaskim terenie, kilka kilometrów dalej od lotniska, więc skalibrowałem czujnik, porównując odczyty prędkości wiatru z odczytami z lotniska.

Gdybyśmy mieli sprawność 100% i łopaty wirowałyby z prędkością wiatru, to:
Promień wirnika = 3,75 cala
Średnica wirnika = 7,5 cala = 0,625 stopy
Obwód wirnika = 1,9642 stopy

1 stopa/min = 0,0113636 m/h,
1,9642 ft/min = 1 obr./min = 0,02232 m/h
1 m/h = 1 / 0,02232 obr

1 m/h = 44,8 obr./min
? m/h = obr / 44,8
= (obr/min * 60) / 44,8

Ponieważ na obrót są dwa impulsy
? m/h = (impulsy na sekundę * 30) / 44,8
= (impulsy na sekundę) / 448

Czujnik kierunku wiatru – część mechaniczna

W czujniku kierunku wiatru zamiast płytki aluminiowej zastosowano magnes, a zamiast modułu optoelektronicznego zastosowano specjalny chip AS5040 (enkoder magnetyczny).

Zdjęcie poniżej przedstawia magnes 5mm zamontowany na końcu centralnej śruby. Bardzo ważne jest wyrównanie magnesu z chipem. Magnes powinien być dokładnie wyśrodkowany, około 1 mm nad chipem. Gdy wszystko zostanie dokładnie dopasowane, czujnik będzie działał prawidłowo.

Czujnik kierunku wiatru - część elektroniczna

Istnieją różne schematy pomiaru kierunku wiatru. Zasadniczo składają się z 8 kontaktronów rozmieszczonych co 45 stopni w odstępach obracającego się magnesu lub potencjometru, który można całkowicie obrócić.

Obie metody mają swoje zalety i wady. Główną zaletą jest to, że oba rozwiązania są łatwe w implementacji. Wadą jest to, że ulegają zużyciu – szczególnie potencjometry. Alternatywą dla kontaktronów byłoby użycie czujnika Halla do radzenia sobie ze zużyciem mechanicznym, ale nadal są one ograniczone do 8 różnych pozycji... Idealnie byłoby spróbować czegoś innego i ostatecznie zdecydowałem się na obrotowy magnetyczny czujnik IC. Choć jest to urządzenie do montażu powierzchniowego (czego staram się unikać), ma szereg zalet, które czynią go atrakcyjnym w użyciu!

Ma kilka różnych formatów wyjściowych, z których dwa są najbardziej odpowiednie dla naszych celów. Najlepszą dokładność osiąga się dzięki interfejsowi SSI. AS5040 dostarcza impulsy od 1 µs przy 0° do 1024 µs przy 359,6°

Kontrola kalibracji czujnika kierunku wiatru:

Wykonaj readadc10 B.3, w0 ;Odczytaj z pauzy łożyska magnetycznego AS5040 100 w0 = w0 * 64 / 182 ; Konwertuj na debugowanie 0–360 (stopni); Wyświetlanie w pętli okna debugowania Prog/Edit

Miernik opadów

W miarę możliwości deszczomierz wykonałem z tworzywa sztucznego i stali nierdzewnej, podstawa wykonana jest z aluminium o grubości 3 mm dla zapewnienia sztywności.

W deszczomierzu znajdują się dwa wiadra. Każde wiadro mieści do 6 ml wody, zanim przesunie się środek ciężkości, co powoduje nalanie wody do wiadra i zasygnalizowanie czujnika. Po przewróceniu wiadra aluminiowa flaga przechodzi przez czujnik optyczny, który wysyła sygnał do elektroniki jednostki zewnętrznej.

Na razie zostawiłem go z przezroczystymi ścianami (bo fajnie jest patrzeć, jak to działa!). Podejrzewam jednak, że należy go pomalować na biało, aby latem odbijał ciepło i zapobiegał parowaniu. Nie mogłem znaleźć małego lejka, więc musiałem zrobić własny. Zwróć uwagę na drut wewnątrz lejka i na środku rynny. Pomoże to zatrzymać napięcie powierzchniowe wody w lejku i ułatwi kapanie wody. Bez drutu deszcz miałby tendencję do „wirowania”, a jego trajektoria byłaby nieprzewidywalna.

Zbliżenie optosensorów:

Elektroniczna część deszczomierza

Ze względu na losowy charakter czujnika, logicznym podejściem wydawało się przerwanie programowe w MCU jednostki zewnętrznej. Niestety, niektóre instrukcje programu wyłączają mechanizm przerwań podczas ich wykonywania. istnieje ryzyko, że sygnał nie dotrze donikąd. Z tych powodów deszczomierz posiada własny mikrokontroler 08M Picaxe.

Użycie oddzielnego chipa pozwala na utworzenie 1-godzinnego opóźnienia z wystarczającą dokładnością, aby zliczyć kubły na godzinę.

Kalibrowanie

Picaxe 18m2 odbiera aktualną ilość wiader na godzinę i wyświetla ją na wyświetlaczu oraz komputerze.

Jako punkt wyjścia wykorzystuję następujące dane:
Średnica lejka 120mm i powierzchnia pojemnika 11.311mm2
1 mm deszczu = 11,311 mm3 lub 11,3 ml.
Każde wiadro ma pojemność 5,65 ml. Zatem 2 wiadra 2 x 5,65 = 11,3 ml (lub 1 mm) opadów. Jedno wiadro = 0,5 mm opadów.

Dla porównania kupiłem tani deszczomierz.

Powyższy obwód i obwód Picaxe 08M wykorzystują ten sam układ PCB dla czujnika. Urządzenie zasilane jest akumulatorem 12V 7Ah poprzez stabilizator 7805.
Użyłem zestawu RF Connect do komunikacji bezprzewodowej 433 MHz. Zestaw zawiera parę specjalnie zaprogramowanych kontrolerów PIC. Zestaw modułów bezprzewodowych podczas testów okazał się całkiem niezawodny.

Na PP zainstalowano 08M Picaxe i 18m2. Każdy z nich posiada własne złącze programujące. Do każdego czujnika - za wyjątkiem temperatury i wilgotności - dedykowane są osobne złącza, każde z własnym +5V.

Należy pamiętać, że rysunek narysowałem w programie Paintshop Pro, więc nie mogę zagwarantować dokładności rozmieszczenia pinów.

urządzenie wewnętrzne

Jednostka wewnętrzna wykorzystuje Picaxe o powierzchni 18 m2, czujnik ciśnienia i wyświetlacz LCD. Jest też regulator napięcia 5V.

Ciśnieniomierz

Po kilku nieudanych próbach zdecydowałem się na MPX4115A. Choć inne czujniki mają nieco większy zakres pomiarowy, to jednak dostęp do nich jest utrudniony. Poza tym inne czujniki zwykle działają na napięciu 3,3 V i wymagają dodatkowego regulatora. MPX4115A zapewnia napięcie analogowe od 3,79 V do 4,25 V proporcjonalne do ciśnienia. Chociaż jest to prawie wystarczająca rozdzielczość do wykrycia zmiany ciśnienia o 1 mbar, po dyskusji na forum dodałem przetwornik ADC MCP3422. Może działać w trybie 16-bitowym (lub wyższym) w porównaniu do trybu 10-bitowego Picaxe. MCP3422 można podłączyć (jak w naszym obwodzie) w trybie różnicowym z wejściem analogowym z czujnika. Główną zaletą jest to, że umożliwia to korektę sygnału wyjściowego czujnika, co ułatwia kompensację błędów MPX4115A i zapewnia łatwy sposób kalibracji czujnika.

MPC3422 ma właściwie dwa wejścia różnicowe, ale ponieważ jedno nie jest używane, doszło do zwarcia. Wyjście z MCP3422 ma interfejs I2C i jest podłączane do pinów SDA i SCL na 18m2 Picaxe - odpowiednio piny B.1 i B.4. Z mojego punktu widzenia jedyną wadą stosowania MCP3422 jest to, że jest to małe urządzenie do montażu powierzchniowego, ale ja przylutowałem je do adaptera. Oprócz interfejsu I2C, MCP3422 18m2 po prostu przetwarza przychodzące dane z odbiornika bezprzewodowego 433 MHz, wyświetla dane na wyświetlaczu i przesyła je do komputera. Aby uniknąć błędów jednostki wewnętrznej, gdy komputer nie działa, komputer nie reaguje. urządzenie wewnętrzne przekazuje dane i idzie dalej. Przesyła dane w odstępach około 2 sekund, dzięki czemu utrata danych zostanie szybko zrekompensowana następnym razem. Nieużywane porty na 18m2 wykorzystałem do podłączenia przycisku na przednim panelu. Przełącznik S1 (wejście C.5) służy do włączania podświetlenia LCD. Przełącznik S2 (wejście C.0) resetuje wartość ciśnienia (mbar) na wyświetlaczu LCD. Przełącznik S3 (wejście C.1) przełącza opady wyświetlane na wyświetlaczu LCD pomiędzy sumą z poprzedniej godziny a aktualną. Aby przyciski zadziałały, należy je przytrzymać dłużej niż 1 sekundę.

Montaż jednostki wewnętrznej

Podobnie jak w przypadku płytki drukowanej jednostki zewnętrznej, układ narysowałem ręcznie w programie Paintshop Pro, więc mogą występować błędy w odległościach.

Płytka jest nieco większa niż jest to konieczne, aby zmieścić się w szczelinach aluminiowej obudowy.
Celowo umieściłem złącze programujące lekko „do wewnątrz” od krawędzi płytki, aby nie dotykało obudowy. Wycięcie pod wyświetlacz LCD jest wiercone i przycinane na dokładne wymiary.

Na zdjęciu widać wszystko już zamontowane w obudowie.

Piny na płytce utrudniają montaż jej w obudowie, więc musiałem je wylutować i wlutować wyświetlacz do płytki za pomocą przewodów.

Jednostka zewnętrzna - kod Picaxe

; ================================================= = =============== ; Główny kod 18M2 dla jednostki zewnętrznej (nadajnika) stacji pogodowej Picaxe ; Procedury dotyczące wilgotności i temperatury z dokładnością dziesiętną, ; prawa autorskie, Peter H. Anderson, Baltimore, MD, styczeń, „04 ; ; ================================ = ============================== #Picaxe 18M2 Symbol HValue = w0 Symbol HighWord = w1 Symbol LowWord = w2 Symbol RH10 = w3 Symbol HQuotient = b0 Symbol HFract = b1 Symbol X = b0 Symbol aDig = b1 Symbol TFactor = b2 Symbol Tc = b3 Symbol SignBit = b4 Symbol TValue = w4 Symbol TQuotient = b10 Symbol TFract = b11 Symbol TempC_100 = w6 Symbol MagDir = w7 Symbol MagDirLo = b14 Symbol MagDirHi = b15 Symbol WindSpeed ​​= w8 Symbol WindSpeedLo = b16 Symbol WindSpeedHi = b17 Symbol ThisHour = b18 Symbol LastHour = b19 Symbol RainRequest = b20 Symbol sprzętowy HumidRaw = B.7 Symbol TempRaw = B.6 Symbol DirRaw = B. 3 Symbol Prędkość = B.0 do ;Odczyt wilgotności ReadADC10 HumidRaw, HValue ;Pobierz wilgotność (HValue) HighWord = 1613 ** HValue ;oblicz RH LowWord = 1613 * HValue RH10 = LowWord / 1024 LowWord = Highword * 64 RH10 = RH10 + LowWord RH10 = RH10 - 258 pauza 100 ;Odczytaj temperaturę Readtemp12 TempRaw, TValue ; Uzyskaj temperaturę SignBit = TValue / 256 / 128 jeśli SignBit = 0, to dodatnia; To jest ujemne, więc TValue = TValue ^ $ffff + 1 ; weź dwójkę dodatnią: TempC_100 = TValue * 6 ; TC = wartość * 0,0625 TValue = TValue * 25 / 100 TempC_100 = TempC_100 + TValue TQuotient = TempC_100 / 100 TFract = TempC_100 % 100 / 10 X = TQuotient / 10 ; Oblicz współczynnik korekcji temperatury dla wilgotności, jeśli SignBit = 0 to SignBit = " " else SignBit = "-" endif jeśli SignBit = "-" to X = 4 - X else X = X + 4 endif GoSub TempCorrection ;kompensacja RH HQuotient = RH10 / 10 ;obliczenie ilorazu RH i... HFract = RH10 % 10 ;...miejsce dziesiętne.if HQuotient > 99 to ;Przekroczenie zakresu HQuotient = 99 HFract = 9 endif jeśli HQuotient > 127 następnie ; Poniżej zakresu HQuotient = 0 HFract = 0 endif ; Odczytaj enkoder magnetyczny AS540 dla kierunku wiatru readadc10 DirRaw, MagDir ; Odczytaj z pauzy łożyska magnetycznego AS5040 100 ; Odczytaj obroty z licznika prędkości wiatru Prędkość, 1000, Prędkość wiatru ; Co 30 cykl ( około 1 minuty), poproś o dane miernika deszczu od 08M, łącznie z RainRequest, jeśli RainRequest >= 30, to wysoki C.1 serin , C.0, N2400, („r”), LastHour, ThisHour ; Niskie liczniki opadów C.1 RainRequest = 0 endif ; Wysyłanie danych do jednostki wewnętrznej w blokach 8-bajtowych; Pierwsza grupa nie wymaga kalibracji, więc obliczenia są wykonywane tutaj w pierwszej kolejności. ; Druga grupa będzie wymagała „poprawek” – łatwiej to zrobić w pomieszczeniu. serout C.2, N2400, ("t", SignBit, TQuotient, TFract, HQuotient, HFract, "A", "B") pauza 100 serout C.2, N2400, ("m", MagDirHi, MagDirLo, WindSpeedHi, WindSpeedLo, LastHour, ThisHour, „C”) pętla TempCorrection: Lookup X, (87, 89, 91, 93, 95, 97, 99, 101, 103, 106, 108, 110, 113, 116, 119, 122, 126 ), TFactor " -40 -30 -20 -10 0 10 20 30 40 50 60 70 80 90 100 110 120 jeśli TFactor< 100 then aDig = TFactor / 10 RH10 = RH10 * aDig / 10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 else TFactor = TFactor % 100 aDig = TFactor / 10 RH10 = RH10 * aDig / 10 + RH10 TFactor = TFactor % 10 aDig = TFactor RH10 = RH10 * aDig / 100 + RH10 endif return

Używana pamięć = 295 bajtów z 2048

Licznik opadów - kod 08M

#picaxe 08M Symbol ThisHour = b2 ; Zapisz aktualny stan licznika w b2 Symbol LastHour = b3 ; Zapisz licznik poprzednich godzin w b3 ;Definicje sprzętu Symbol DataRequest = pin3 Symbol BucketSensor = setint pin4 %00010000, %00010000 ; pin4 to przerwanie pin główny: dla w0 = 1 do 60000 ; Pętla dla 1 godziny przerwy 60 następna LastHour = ThisHour ; Zaktualizuj licznik ostatniej godziny za pomocą ThisHour = 0 ; bieżąca godzina i zresetuj aktualną godzinę, przejdź do głównego; Wykonaj przerwanie o następnej godzinie: setint %00010000, %00010000 ; Przywróć przerwanie, jeśli DataRequest = 1, a następnie; Czy przerwanie pochodziło z 18M2? serout 2, N2400, („r”, Ostatnia godzina, Ta godzina) ; Tak, więc wyślij liczbę poprzednich godzin i aktualną liczbę. wykonaj: pętla podczas DataRequest = 1 ; Poczekaj, aż 18M2 przestanie wysyłać żądanie przed kontynuowaniem endif, jeśli BucketSensor = 1, a następnie ; Czy przerwanie pochodziło z czujnika deszczu? inc ThisHour ; Tak, więc zwiększ liczba końcówek łyżki do: pętla podczas BucketSensor = 1 ; Upewnij się, że flaga wyczyściła czujnik przed kontynuowaniem powrotu endif

Jednostka wewnętrzna - kod Picaxe

;================================================ = ========================== ; Główny program wewnętrzny (odbiornik). ; ; Odbiera dane z jednostki zewnętrznej, wyświetla je na wyświetlaczu LCD i przekazuje je do komputera; Mierzy także ciśnienie barometryczne (dzięki "matherp") ;==================================== = ===================================== #PICAXE 18M2 ; Definicje zmiennych (b2 do b5 są ponownie wykorzystywane w kodzie mBar, gdy staną się dostępne) symbol Iloraz = b2 symbol Fract = b3 symbol SignBit = b4 symbol Wilgotność = b5 symbol HFract = b14 symbol Dir = w5 symbol DirLo = b10 symbol DirHi = b11 symbol Prędkość = w3 symbol SpeedLo = b6 symbol SpeedHi = b7 symbol RainCountThisHour = b12 symbol RainCountLastHour = b13 symbol LCDRainWhole = b21 symbol LCDRainFract = b22 symbol LastOrThis = b23 ; MCP3422 Zmienne ADC symbol mb900 = 17429 ; Odczyt ADC dla 900 Mbar, następnie dodaj 72,288 zliczeń na mbar symbol adj0 = 72 symbol mBarADCValue = w0 symbol adj1 = b4 ; używane do dodawania 1 licznika co 4 mbar symbol adj2 = b5 ; używany do dodawania 1 licznika co 24 mbar symbol mBar = w4 ; Symbol zmiennych porządkowych lastmbar = w8 ; Zapamiętaj poprzedni symbol odczytu mBar RiseFall = b18 ; Wskaźnik wzrostu lub spadku ciśnienia (strzałka w górę lub w dół) symbol aktywny = b19 ; Telltale pokazuje aktywność na ekranie LCD, symbol LCD_Status = b20 ; Czy podświetlenie LCD jest włączone czy wyłączone (0 lub 1)? ; Symbol definicji sprzętu Bezprzewodowy = C.7; Połączenie przychodzące z symbolu bezprzewodowego odbiornika/dekodera Komputer = C.2 ; Wychodzące połączenie szeregowe z komputerem symbol LCD = pinC.5 ; Przycisk na panelu przednim do wygaszenia/odświeżenia symbolu podświetlenia LCD ClearRiseFall = pinC.0 ; Przycisk na panelu przednim do kasowania symbolu wskaźnika wzrostu/spadku ciśnienia LastOrThisSwitch = pinC.1 ; Przycisk na panelu przednim do wyświetlania aktualnej lub poprzedniej godziny opadów Init: hsersetup B9600_4, %10000 ; Użyj pinu LCD 1, bez hserin ; ByVac 20x4 IASI-2 Szeregowy wyświetlacz LCD hi2csetup i2cmaster, %11010000, i2cfast, i2cbyte ; Zainicjuj I2C dla MCP3422 ADC chip.hi2cout (%00011000) ;ustaw MCP3422 na 16-bitową ciągłą konwersję pauza 500 hserout 0, (13): pauza 100 ;Inicjalizacja wyświetlacza LCD hserout 0, (13): pauza 100 hserout 0, (13): pauza 100 pauza 500 hserout 0, („ac50”, 13) hserout 0, („ad”, 32, 32, 32, 32, 49, 42, 36, 32, 13) ; Zdefiniuj znak strzałki w dół (znak 10) hserout 0, (" ac1", 13) ; Wyczyść pauzę wyświetlania 50 hserout 0, („acc”, 13) ; Ukryj kursor hserout 0, („ac81”, 13, „ad”, $df, „C”, 13) ; Wydrukuj nagłówki hserout 0, („ac88”, 13, „admBar”, 13) hserout 0, („ac8e”, 13, „adRH %”, 13) hserout 0, („acd5”, 13, „ad”, „dir” , 13) ; Wydrukuj stopy hserout 0, („acdc”, 13, „ad”, „mph”, 13) ; hserout 0, („ace3”, 13, „ad”, „mm”, 13) lastmbar = 0 ; Zainicjuj zmienne LastOrThis = "c" ;======================================== = ================================ ; Pętla główna ;============================================== = ========================== główne: ; Sprawdź, czy przełącznik na panelu przednim jest wciśnięty. Mechanizm przerwań Picaxe to; prawie trwale wyłączone z powodu dużej liczby poleceń serin i serout; więc posypanie programu „przełącznikami gosub” w celu sprawdzenia stanu przełącznika jest większe; skuteczny, który przeszkadza. przełączniki gosub; Uzyskaj pierwszą grupę wartości z jednostki zewnętrznej za pośrednictwem łącza radiowego 433 MHz. serin Wireless, N2400, („t”), SignBit, iloraz, Fract, wilgotność, HFract, b15, b15; Błyskaj „telltale” na wyświetlaczu LCD, aby wskazać aktywność i pomyślne „serin” z sieci bezprzewodowej. gosub charakterystyczny; Wyświetl pierwszą grupę na wyświetlaczu LCD hserout 0, („acc0”, 13) hserout 0, („ad”, SignBit, #Quotient, „.”, #Fract, „ ”, 13) hserout 0, („acce”, 13) hserout 0, („ad”, #Wilgotność,”.”, #HFract, „ ”, 13) przełączniki gosub ; Wyślij pierwszą grupę do portu COM komputera; Każda grupa posiada identyfikator początkowy, dane i identyfikator końcowy: ; Start = "xS", koniec to "xE" np. początek wiatru to WS, koniec wiatru to WE; Wiele danych oddziela się pojedynczym znakiem spacji. serout Computer, N2400, („TS”, SignBit, #Quotient, „, #Fract, „TE”); Pomiar temperatury Komputer, N2400, („HS”, #Wilgotność, „ ”, #HFract, „HE” ); Wilgotność ; Sprawdzaj przełączniki ponownie i w regularnych odstępach czasu przez cały czas trwania programu. przełączniki gosub; Uzyskaj drugą grupę wartości z łącza radiowego jednostki zewnętrznej. serin Wireless, N2400, („m”), DirHi, DirLo, SpeedHi, SpeedLo, RainCountLastHour, RainCountThisHour, b15 gosub ostrzegawczy Prędkość = Prędkość * 300 / 448 ; Szacowana konwersja z impulsów/s na mph Dir = Dir * 64 / 182 ; Konwertuj 0–1023 na 0–359 stopni; Aby zachować precyzję, miernik deszczu należy skalibrować poprzez regulację ; mechaniczne ograniczniki na łyżce przechylnej tak, że 1 przechyłek to 0,5 mm deszczu. jeśli LastOrThis = "c" to ; Zdecyduj, czy wyświetlać LCDRainWhole z poprzedniej godziny = RainCountThisHour / 2 ; opady czy bieżącą godzinę. LCDRainFract = RainCountThisHour * 5 // 10 innych LCDRainWhole = RainCountLastHour / 2 ; LCDRainFract = RainCountLastHour * 5 // 10 endif ; Wyślij drugą grupę do wyświetlacza LCD hserout 0, („ac95”, 13) hserout 0, („ad”, #Dir, „ ”, 13) hserout 0, („ac9c”, 13) hserout 0, („ad”, # Prędkość, " ", 13) hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) ; Wyślij drugą grupę do komputera. Wyprowadź port COM komputera, N2400, („WS”, #Dir, „, #Speed, „WE”); Komputer pomiaru wiatru, N2400, („RS”, #RainCountLastHour, „, #RainCountThisHour, „RE” ); Przełączniki Rain Gosub; Podziękowania dla „matherp” na forum Picaxe za pętlę kodu mbar: ; Pomiar ciśnienia atmosferycznego za pomocą MPX4115A; Konwersja analogowo-cyfrowa przy użyciu MCP3422; Wyjście MPX do V+, 2. 5 V do V-; ADC w trybie 16-bitowym hi2cin (b1,b0,b2) ; Przeczytaj w odczycie ADC i bajt stanu z MCP3422 adj1 = 0 adj2 = 0 w1 = mb900 mbar = 900 do while mBarADCValue > w1 ; mBarADCValue = w0 = b1:b0 inc mbar w1 = w1 + adj0 inc adj1 jeśli adj1 = 4 to inc adj2 w1 = w1 + 1 adj1 = 0 endif jeśli adj2 = 6 wtedy w1 = w1 + 1 adj2 = 0 endif pętla gosub przełącza gosub wskaźnik; Wyślij ciśnienie do portu COM komputera. Komputer, N2400, („PS:”, #mbar, „PE”); Zainicjuj poprzedni odczyt ciśnienia (lastmbar), jeśli nie został jeszcze ustawiony. if lastmbar = 0 to lastmbar = mbar RiseFall = " " endif ; Wyświetl strzałkę w górę lub strzałkę w dół, jeśli ciśnienie się zmieniło, jeśli mbar > lastmbar, a następnie RiseFall = "^"; ^ lastmbar = mbar endif jeśli mbar< lastmbar then RiseFall = 10 ; Custom LCD character. Down arrow lastmbar = mbar endif hserout 0, ("acc7", 13) hserout 0, ("ad", RiseFall, #mbar, " ",13) gosub telltale goto main ; Check if one of the front panel buttons is pressed. switches: if LCD = 1 then ; LCD Backlight on/off Button is pressed if LCD_Status = 0 then ; Backlight is on so... hserout 0, ("ab0", 13) ; Turn it off LCD_Status = 1 else hserout 0, ("ab1", 13) ; Else turn it on. LCD_Status = 0 endif do: loop while LCD = 1 ; Don"t return while button is pressed endif if ClearRiseFall = 1 then ; Pressure rise/fall button is pressed RiseFall = " " ; Clear indicator and... hserout 0, ("acc7", 13) ; ... update display. hserout 0, ("ad", RiseFall, #mbar, " ",13) do: loop while ClearRiseFall = 1 endif if LastOrThisSwitch = 1 then ; Rain Previous Hour / Last Hour button. if LastOrThis = "c" then LastOrThis = "p" LCDRainWhole = RainCountLastHour / 2 ; Recalculate values and re-display to LCDRainFract = RainCountLastHour * 5 // 10 ; give visual confirmation of button-press else LastorThis = "c" LCDRainWhole = RainCountThisHour / 2 ; LCDRainFract = RainCountThisHour * 5 // 10 endif hserout 0, ("aca1", 13) hserout 0, ("ad", LastOrThis, " ", #LCDRainWhole, ".", #LCDRainFract, " ", 13) do: loop while LastOrThisSwitch = 1 endif return ; Flash "tell-tale" on LCD display to show activity telltale: if active = "*" then active = " " else active = "*" endif hserout 0, ("ac80", 13, "ad", active, 13) return

Używana pamięć = 764 bajty z 2048

Oprogramowanie komputerowe

Oprogramowanie działające na komputerze PC zostało napisane przy użyciu Borland Delphi 7. Jest dość prymitywne w obecnej formie, ale przynajmniej pokazuje połączenie pomiędzy Picaxe a komputerem.

Można wybrać wyświetlanie wykresów w odstępie 1 godziny lub 12 godzin. Wykresy można przewijać w przód i w tył za pomocą myszki. Można je uratować. Aby to zrobić, kliknij je prawym przyciskiem myszy i podaj nazwę i wartość pliku. Można skonfigurować ograniczony zestaw danych APRS, które będą zapisywane raz na minutę w każdej linii pliku APRS.TXT i przechowywane w tym samym folderze co plik Weather.exe. Należy pamiętać, że temperatury podawane są w stopniach Fahrenheita, a opady w 1/100 części na cal.

Lista elementów radiowych

Przeznaczenie Typ Określenie Ilość NotatkaSklepMój notatnik
Czujnik temperatury i wilgotności względnej
czujnik temperatury

DS18B20

1 Do notatnika
Czujnik wilgotnościHIH-36101 Do notatnika
Rezystor

4,7 kOhm

1 Do notatnika
Miernik prędkości i kierunku wiatru
FototranzystorIR1 Do notatnika
Dioda LEDIR1 Do notatnika
Rezystor

220 omów

1 Do notatnika
Rezystor

4,7 kOhm

1 Do notatnika
Enkoder magnetyczny1 Do notatnika
kondensator elektrolityczny10 uF4 Do notatnika
Kondensator100 nF1 Do notatnika
Rezystor

4,7 kOhm

1 Do notatnika
Rezystor

10 kiloomów

1 Do notatnika
Miernik opadów
MK PICAXE

PICAXE-08M

1 Do notatnika
dioda prostownicza

1N4148

2 Do notatnika
Kondensator100 nF1 Do notatnika
Rezystor

4,7 kOhm

1 Do notatnika
Rezystor

10 kiloomów

4 Do notatnika
Rezystor

22 kOhm

1 Do notatnika
Rezystor

220 omów

2 Do notatnika
Dioda LEDIR1
W górę