Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Pod koniec lutego zobaczyłem ten post na stronie Raspberry Pi.
www.raspberrypi.org/school-weather-station-…
Stworzyli stacje pogodowe Raspberry Pi dla szkół. Całkowicie chciałem! Ale w tym czasie (i wierzę, że nadal piszę to) nie są one publicznie dostępne (musisz należeć do wybranej grupy testerów). Cóż, chciałem kontynuować i nie miałem ochoty wydawać setek dolarów na istniejący system 3rd party.
Tak więc, jak dobry użytkownik instruktażowy, postanowiłem stworzyć własny !!!
Zrobiłem trochę badań i znalazłem kilka dobrych systemów komercyjnych, na których mógłbym oprzeć swój. Znalazłem kilka dobrych instrukcji, które pomogą w niektórych koncepcjach Sensor lub Raspberry PI. Znalazłem nawet tę stronę, która była brudna, musieli zerwać istniejący system Maplin:
www.philpot.me/weatherinsider.html
Szybko do przodu o miesiąc i mam podstawowy system pracy. Jest to kompletny system pogodowy Raspberry Pi z podstawowym sprzętem Raspberry Pi, kamerą i kilkoma różnymi czujnikami analogowymi i cyfrowymi do wykonywania naszych pomiarów. Nie kupujemy gotowych anemometrów ani mierników deszczu, tworzymy własne! Oto jego funkcje:
- Rejestruje informacje do RRD i CSV, dzięki czemu można je manipulować lub eksportować/importować do innych formatów.
- Korzysta z interfejsu API Weather Underground, aby uzyskać fajne informacje, takie jak historyczne wzloty i dołki, fazy księżyca oraz wschód/zachód słońca.
- Używa kamery Raspberry Pi do robienia zdjęcia raz na minutę (można następnie użyć ich do wykonania timelapse).
- Posiada strony internetowe, które wyświetlają dane dla aktualnych warunków oraz niektóre historyczne (ostatnia godzina, dzień, 7 dni, miesiąc, rok). Motyw strony zmienia się wraz z porą dnia (4 opcje: wschód słońca, zachód słońca, dzień i noc).
Całe oprogramowanie do rejestrowania i wyświetlania informacji znajduje się na Github, zrobiłem nawet kilka śledzenia błędów, prośby o nowe funkcje również tam:
github.com/kmkingsbury/raspberrypi-pogoda…
Ten projekt był dla mnie wspaniałym doświadczeniem edukacyjnym, naprawdę zagłębiłem się w możliwości Raspberry Pi, szczególnie z GPIO, a także trafiłem na pewne problemy w nauce. Mam nadzieję, że czytelniku możesz wyciągnąć wnioski z niektórych moich prób i cierpień.
Krok 1: Materiały
Elektronika:
- 9 kontaktronów (8 dla kierunku wiatru, 1 dla Rain Gauge, opcjonalnie 1 dla prędkości wiatru zamiast czujnika Halla), użyłem tych:
- 1 czujnik Halla (dla prędkości wiatru, zwany anemometrem) -
- Temperatura (https://amzn.to/2RIHf6H)
- Wilgotność (wiele czujników wilgotności jest wyposażonych w czujnik temperatury), użyłem DHT11:
- Ciśnienie (BMP też był w zestawie z czujnikiem temperatury), użyłem BMP180, https://www.adafruit.com/product/1603, ten produkt jest już wycofany z produkcji, ale istnieje odpowiednik z BMP280 (https://amzn.to/2E8nmhi)
- Fotorezystor (https://amzn.to/2seQFwd)
- Chip GPS lub GPS USB (https://amzn.to/36tZZv3).
- 4 silne magnesy (2 na anemometr, 1 na Kierunek, 1 na Deszczomierz), użyłem magnesów ziem rzadkich, gorąco polecam) (https://amzn.to/2LHBoKZ).
- Kilka różnych rezystorów, mam ten pakiet, który z biegiem czasu okazał się niezwykle przydatny:
-
MCP3008 - do konwersji wejść analogowych na cyfrowe dla Raspberry Pi -
Sprzęt komputerowy
- Raspberry Pi - pierwotnie używałem 2 z adapterem bezprzewodowym, teraz dostanę również zestaw 3 B+ z zasilaczem. (https://amzn.to/2P76Mop)
- Kamera Pi
- Solidny zasilacz 5V (okazało się to boleśnie irytujące, w końcu dostałem ten Adafruit, inaczej kamera wyciąga za dużo soku i może/zawiesi Pi, jest tutaj: https://www.adafruit.com/products /501)
Materiały:
- 2 łożyska oporowe (lub łożyska do deskorolki lub rolek też będą działać), mam je na Amazon:
- 2 wodoodporne obudowy (użyłem obudowy elektrycznej z lokalnego sklepu z dużymi pudełkami), nie ma większego znaczenia, wystarczy znaleźć odpowiednią obudowę, która będzie miała wystarczająco dużo miejsca i wszystko ochroni).
- Niektóre rury i zaślepki z PVC (różne rozmiary).
- Uchwyty montażowe z PVC
- Kilka arkuszy cienkiego pleksiglasu (nic wymyślnego).
- plastikowe dystanse
- mini śruby (użyłem śrub i nakrętek #4).
- 2 Plastikowa ozdoba choinkowa - używana do anemometru, swoją kupiłem w lokalnym Hobby Lobby.
- Mały kołek
- Mały kawałek sklejki.
Narzędzia:
- Dremel
- Pistolet na klej
- Lutownica
- Multimetr
- Wiertarka
Krok 2: Główna obudowa - Pi, GPS, kamera, światło
Główna obudowa mieści PI, kamerę, GPS i czujnik światła. Został zaprojektowany tak, aby był wodoodporny, ponieważ mieści wszystkie krytyczne elementy, pomiary są pobierane ze zdalnej obudowy, a ta jest zaprojektowana tak, aby była odsłonięta/otwarta na działanie żywiołów.
Kroki:
Wybierz obudowę, ja użyłem puszki elektrycznej, równie dobrze sprawdzą się różne skrzynki projektowe i wodoodporne obudowy. Najważniejsze jest to, że ma wystarczająco dużo miejsca, aby pomieścić wszystko.
Moja Załącznik zawiera:
- Raspberry pi (na dystansach) - Potrzebuje chipa WIFI, nie chcę uruchamiać Cat5e na podwórku!
- Kamera (również na dystansach)
- Chip GPS podłączony przez USB (za pomocą kabla sparkfun FTDI: https://www.sparkfun.com/products/9718) - GPS podaje szerokość i długość geograficzną, co jest miłe, ale co ważniejsze, mogę uzyskać dokładny czas z GPS!
- dwa gniazda Ethernet/cat 5 do podłączenia obudowy głównej do drugiej obudowy, w której znajdują się inne czujniki. To był po prostu wygodny sposób na prowadzenie kabli między dwoma skrzynkami, mam około 12 przewodów, a dwa cat5 zapewniają 16 możliwych połączeń, więc mam miejsce na rozszerzenie / zmianę rzeczy.
Z przodu obudowy jest okno, przez które kamera może widzieć. Obudowa z tym oknem chroni aparat, ale miałem problemy z tym, że czerwona dioda na aparacie (gdy robi zdjęcie) odbija się od pleksi i pokazuje się na zdjęciu. Użyłem czarnej taśmy, aby to złagodzić i spróbować zablokować (i inne diody z Pi i GPS), ale to jeszcze nie jest w 100%.
Krok 3: „Obudowa zdalna” dla temperatury, wilgotności i ciśnienia
To tutaj zapisałem czujniki temperatury, wilgotności i ciśnienia, a także „podłączenia” do miernika deszczu, czujników kierunku i prędkości wiatru.
Wszystko jest bardzo proste, piny tutaj łączą się za pomocą kabli Ethernet z wymaganymi pinami na Raspberry Pi.
Próbowałem użyć czujników cyfrowych tam, gdzie mogłem, a następnie do MCP 3008 dodawany jest dowolny analog, który zajmuje do 8 analogów, co było więcej niż wystarczające dla moich potrzeb, ale daje miejsce na poprawę / rozszerzenie.
Ta obudowa jest otwarta na powietrze (musi zapewniać dokładną temperaturę, wilgotność i ciśnienie). Dolne otwory są wysunięte, więc spryskałem niektóre obwody sprayem silikonowej powłoki konformalnej (można go pobrać online lub w miejscu takim jak Fry's Electronics). Miejmy nadzieję, że powinien chronić metal przed wilgocią, chociaż trzeba uważać i nie używać go na niektórych czujnikach.
W górnej części obudowy znajduje się również czujnik prędkości wiatru. To było podrzucenie, mogłem postawić na górze prędkość lub kierunek wiatru, nie widziałem żadnych większych przewag jednego nad drugim. Ogólnie rzecz biorąc, chcesz, aby oba czujniki (kierunek wiatru i prędkość) były wystarczająco wysokie, aby budynki, ogrodzenia, przeszkody nie zakłócały pomiarów.
Krok 4: Deszczomierz
W większości postępowałem zgodnie z instrukcjami, aby uzyskać rzeczywisty wskaźnik:
www.instructables.com/id/Arduino-Weather-St…
Zrobiłem to z pleksi, żeby zobaczyć, co się dzieje i pomyślałem, że będzie fajnie. Ogólnie rzecz biorąc, pleksi działała dobrze, ale w połączeniu z pistoletem do klejenia, gumowym uszczelniaczem i ogólnym cięciem i wierceniem nie wygląda tak nieskazitelnie, nawet z folią ochronną.
Kluczowe punkty:
- Czujnik to prosty kontaktron i magnes potraktowany jak naciśnięcie przycisku w kodzie RaspberryPi, po prostu liczę wiadra w czasie, a później dokonuję konwersji na „cale deszczu”.
- Upewnij się, że jest wystarczająco duży, aby pomieścić wystarczającą ilość wody do przewrócenia, ale nie na tyle, aby potrzebował dużo, aby przewrócić. Podczas pierwszego przejścia każda taca nie była wystarczająco duża, aby mogła się napełnić i zaczęła spływać po krawędzi, zanim się przewróciła.
- Odkryłem również, że resztki wody mogą dodać pewien błąd do pomiaru. Oznacza to, że całkowicie suche wymagało X kropli, aby wypełnić bok i przechylić go, po zmoczeniu wymagało Y kropli (czyli mniej niż X), aby wypełnić i przechylić. Nie jest to duża ilość, ale weszła w życie podczas próby kalibracji i uzyskania dobrego pomiaru „1 obciążenie równa się ile”.
- Zrównoważ to, możesz oszukiwać, dodając klej do kleju do spodnich końców, jeśli jedna strona jest znacznie cięższa od drugiej, ale potrzebujesz jej tak blisko zrównoważenia, jak to tylko możliwe.
- Możesz zobaczyć na zdjęciu, że ustawiam mały zestaw testowy, używając kilku gąbek i drewnianego uchwytu, aby przetestować i odpowiednio wyważyć przed instalacją.
Krok 5: Kierunek wiatru
To był prosty wiatrowskaz. Elektronikę oparłem na systemie Maplin:
www.philpot.me/weatherinsider.html
Kluczowe punkty:
To jest czujnik analogowy. Osiem kontaktronów w połączeniu z różnymi rezystorami dzieli wyjście na kawałki, dzięki czemu mogę określić, w której współrzędnej znajduje się czujnik na podstawie wartości. (Koncepcja jest wyjaśniona w tej instrukcji:
- Po przykręceniu części wiatrowskazu trzeba go skalibrować tak, aby "ten kierunek wskazywał północ".
- Zrobiłem tester z drewna, abym mógł łatwo włączać i wyłączać rezystory, które obejmowały dla mnie pełny zakres wartości, to było bardzo pomocne!
- Użyłem łożyska oporowego, poradziło sobie dobrze, jestem pewien, że zwykłe łożysko do deskorolki lub rolki byłoby równie dobre.
Krok 6: Prędkość wiatru
Ten po raz kolejny zwróciłem się do społeczności Instructable i znalazłem i podążałem za tym instruktażem:
www.instructables.com/id/Data-Logging-Anemo…
Kluczowe punkty:
- Możesz również użyć czujnika Halla lub przełączyć się na czujnik kontaktronowy. Czujnik Halla jest bardziej czujnikiem analogowym, więc jeśli używasz go w sposób cyfrowy, jak naciśnięcie przycisku, musisz upewnić się, że odczyt/napięcie jest wystarczająco wysokie, aby działało jak prawdziwe naciśnięcie przycisku, a nie za mało.
- Wielkość kubka jest kluczowa, podobnie jak długość kija! Początkowo używałem piłek do ping ponga, które były zdecydowanie za małe. Nałożyłem je też na długie kije, które też nie działały. Byłem bardzo sfrustrowany, a potem natknąłem się na to pouczające, Ptorelli wykonał świetną robotę wyjaśniając i pomogło mi, gdy mój oryginalny projekt nie działał tak dobrze.
Krok 7: Oprogramowanie
Oprogramowanie jest napisane w Pythonie do rejestrowania danych z czujników. Użyłem kilku innych bibliotek Git innych firm z Adafruit i innych, aby uzyskać informacje z czujników i GPS. Istnieje również kilka zadań cron, które również pobierają niektóre informacje z interfejsu API. Większość jest wyjaśniona/określona w dokumentacji Git pod adresem docs/install_notes.txt
Oprogramowanie internetowe jest w języku PHP, aby wyświetlać je na stronie internetowej, jednocześnie wykorzystując YAML do plików konfiguracyjnych i oczywiście narzędzie RRD do przechowywania i wykresu danych.
Wykorzystuje API Weather Underground, aby uzyskać niektóre z interesujących danych, których czujniki nie mogą pobrać: rejestruj hi i low, fazę księżyca, czasy zachodu i wschodu słońca, w ich interfejsie API dostępne są również pływy, które moim zdaniem były naprawdę fajne, ale mieszkam w Austin w Teksasie, które jest bardzo daleko od wody.
Wszystko to jest dostępne na Github i jest aktywnie utrzymywane i obecnie używane, ponieważ dalej udoskonalam i kalibruję swój własny system, dzięki czemu możesz również przesyłać prośby o funkcje i raporty o błędach.
Oprogramowanie przechodzi zmianę motywu w zależności od pory dnia, są 4 etapy. Jeśli aktualny czas wynosi + lub - 2 godziny od wschodu lub zachodu słońca, otrzymasz odpowiednio motywy wschodu i zachodu słońca (obecnie tylko inne tło, prawdopodobnie w przyszłości zrobię inne kolory czcionki/obramowania). Podobnie poza tymi zakresami daje motyw dnia lub nocy.
Dziękuję za przeczytanie, jeśli chcesz zobaczyć więcej zdjęć i filmów z moich projektów niż zajrzyj na mój kanał na Instagramie i YouTube.
III nagroda w konkursie „Pu/e Day”