Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Komercyjnie dostępne stacje pogodowe IoT (Internet of Things) są drogie i nie wszędzie dostępne (jak w RPA). Uderzają nas ekstremalne warunki pogodowe. SA doświadcza najcięższej suszy od dziesięcioleci, ziemia się rozgrzewa, a rolnicy walczą o rentowną produkcję, bez wsparcia technicznego lub finansowego rządu dla rolników komercyjnych.
Wokół jest kilka stacji pogodowych Raspberry Pi, takich jak ta, którą Fundacja Raspberry Pi buduje dla szkół w Wielkiej Brytanii, ale nie jest dostępna dla ogółu społeczeństwa. Istnieje wiele odpowiednich czujników, niektóre analogowe, niektóre cyfrowe, niektóre półprzewodnikowe, niektóre z ruchomymi częściami i bardzo drogie czujniki, takie jak anemometry ultradźwiękowe (prędkość i kierunek wiatru)
Zdecydowałem, że zbudowanie otwartej, sprzętowej Stacji Pogodowej, z częściami ogólnie dostępnymi w RPA, może być bardzo przydatnym projektem i będę się dobrze bawić (i będzie się męczyć z bólem głowy).
Postanowiłem zacząć od deszczomierza półprzewodnikowego (bez ruchomych części). Tradycyjne wiadro wywrotki na tym etapie nie zrobiło na mnie wrażenia (mimo że nigdy nie używałem go do tego czasu). Pomyślałem więc, że deszcz to woda, a woda przewodzi prąd. Istnieje wiele analogowych czujników rezystancyjnych, w których rezystancja zmniejsza się, gdy czujnik wejdzie w kontakt z wodą. Pomyślałem, że to będzie idealne rozwiązanie. Niestety czujniki te cierpią na różnego rodzaju anomalie, takie jak elektroliza i odtlenianie, a odczyty z tych czujników były niewiarygodne. Buduję nawet własne sondy ze stali nierdzewnej i małą płytkę drukowaną z przekaźnikami, aby wytworzyć przemienny prąd stały (stały 5 woltów, ale naprzemiennie bieguny dodatnie i ujemne), aby wyeliminować elektrolizę, ale odczyty nadal były niestabilne.
Mój najnowszy wybór to czujnik ultradźwiękowy. Ten czujnik podłączony do górnej części miernika może mierzyć odległość do poziomu wody. Ku mojemu zdziwieniu te czujniki były bardzo dokładne i bardzo tanie (mniej niż 50 ZAR lub 4 USD)
Krok 1: Potrzebne części (krok 1)
Będziesz potrzebować następujących
1) 1 Raspberry Pi (dowolny model, używam Pi 3)
2) 1 chlebek
3) Niektóre kable rozruchowe
4) Rezystor jednoomowy i dwuomowy (lub 2,2) omowy
5) Stary długi kubek do przechowywania deszczu. Wydrukowałem mój (dostępny egzemplarz)
6) Stara ręczna część do przechwytywania deszczomierza (lub możesz zaprojektować własną i wydrukować)
7) Sprzęt pomiarowy do pomiaru mililitrów lub waga do ważenia wody
8) Czujnik ultradźwiękowy HC-SR04 (Afrykanie z Południowej Afryki mogą je dostać z Communica)
Krok 2: Budowanie obwodu (krok 2)
Znalazłem bardzo przydatny przewodnik, który pomoże mi zbudować obwód i napisać skrypty Pythona dla tego projektu. Ten skrypt oblicza odległości i użyjesz go do obliczenia odległości między czujnikiem zamontowanym na górze zbiornika z miernikiem a poziomem wody
Znajdziesz go tutaj:
www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi
Przestudiuj go, zbuduj swój obwód, podłącz go do swojego pi i baw się z kodem Pythona. Upewnij się, że poprawnie zbudowałeś dzielnik napięcia. Użyłem rezystora 2,2 omów między GPIO 24 a GND.
Krok 3: Zbuduj swój miernik (krok 3)
Możesz wydrukować swój miernik, użyć istniejącego miernika lub kubka. Czujnik HC-SR04 zostanie przymocowany do górnej części głównego zbiornika miernika. Ważne jest, aby przez cały czas pozostawał suchy.
Ważne jest, aby zrozumieć kąt pomiaru czujnika HC-SR04. Nie można go przymocować do górnej części stożka z tradycyjnych mierników deszczu. Zrobię normalny cylindryczny kubek. Upewnij się, że jest wystarczająco szeroki, aby odpowiednia fala dźwiękowa schodziła na dno. Myślę, że wystarczy rura PVC o wymiarach 75 x 300 mm. Aby sprawdzić, czy sygnał przechodzi przez cylinder i prawidłowo się odbija, zmierz odległość od cenzora do dna cylindra za pomocą linijki, porównaj ten pomiar z odległością uzyskaną z czujnika TOF (Time of flight) szacunkowa odległość do dna.
Krok 4: Obliczenia i kalibracja (Krok 4)
Co oznacza 1 milimetr deszczu? Jeden mm deszczu oznacza, że gdybyś miał kostkę o wymiarach 1000 mm X 1000 mm X 1000 mm lub 1 m X 1 m X 1 m, kostka będzie miała głębokość 1 mm wody deszczowej, jeśli zostawisz ją na zewnątrz podczas deszczu. Jeśli opróżnisz ten deszcz do butelki o pojemności 1 litra, napełni butelkę w 100%, a woda również zmierzy 1 kg. Różne mierniki deszczu mają różne obszary zlewni. Jeśli twój obszar zlewiska twojego miernika wynosił 1m x 1m, jest to łatwe.
Ponadto 1 gram wody to konwencjonalny 1 ml
Aby obliczyć opady w mm ze swojego miernika, po zważeniu wody deszczowej możesz wykonać następujące czynności:
W to waga opadów w gramach lub mililitrach
A to Twoja zlewnia w mm
R to Twoje całkowite opady w mm
R = Szer x [(1000 x 1000)/A]
Istnieją dwie możliwości wykorzystania HC-SR04 do oszacowania W (potrzebujesz W do obliczenia R).
Metoda 1: Użyj zwykłej fizyki
Zmierz odległość od HC-SR do dna swojego miernika (robiłeś to również w poprzednim kroku) za pomocą czujnika, korzystając z obliczeń TOF (Time of Flight) w skrypcie Pythona z https://www.modmypi. com/blog/hc-sr04-ultrason-range-sensor-on-the-raspberry-pi Zadzwoń na tę płytę (głębokość cylindra)
Zmierz powierzchnię wewnętrznej strony dna cylindra za pomocą czegokolwiek odpowiedniego w milimetrach kwadratowych. Nazwij to IA.
Teraz wlej 2 ml wody (lub dowolną odpowiednią ilość) do cylindra. Korzystając z naszego czujnika, oszacuj odległość do nowego poziomu wody w mm, Cal this Dist_To_Water).
Głębokość wody (WD) w mm to:
WD=CD - Dist_To_Water (lub głębokość cylindra minus odległość od cenzury do poziomu wody)
Nie, szacunkowa waga wody wynosi
W=WD x IA w ml lub gramach (Pamiętaj, że 1 ml wody waży 1 gram)
Teraz możesz oszacować opady deszczu (R) w mm za pomocą W x [(1000 x 1000)/A], jak wyjaśniono wcześniej.
Metoda 2: Skalibruj swój glukometr za pomocą statystyk
Ponieważ HC-SR04 nie jest doskonały (mogą wystąpić błędy), wydaje się, że jest przynajmniej stały w pomiarach, jeśli twój cylinder jest odpowiedni.
Zbuduj model liniowy z odczytami czujników (lub odległościami czujników) jako zmienną zależną i wagami wtryskiwanej wody jako zmienną zależną.
Krok 5: Oprogramowanie (krok 5)
Oprogramowanie dla tego projektu jest wciąż w fazie rozwoju.
Skrypty Pythona na https://www.modmypi.com/blog/hc-sr04-ultrasonic-range-sensor-on-the-raspberry-pi powinny być użyteczne.
Attach to kilka przydatnych aplikacji Pythona (General Public License) opracowanych przeze mnie.
Planuję później opracować interfejs sieciowy dla kompletnej stacji pogodowej. Załączam kilka moich programów służących do kalibracji miernika i odczytów z czujników
Użyj dołączanego skryptu kalibracji, aby statystycznie skalibrować miernik. Zaimportuj dane w arkuszu kalkulacyjnym do analizy.
Krok 6: Jeszcze do zrobienia (Krok 6)
Zawór elektromagnetyczny jest potrzebny do opróżnienia zbiornika, gdy jest pełny (w pobliżu czujnika)
Kilka pierwszych kropli deszczu nie zawsze jest prawidłowo mierzonych, zwłaszcza jeśli miernik nie jest odpowiednio wypoziomowany. Jestem w trakcie opracowywania miernika disdro, aby prawidłowo rejestrować te krople. Disdro moja przyszłość następna.
Dodaj drugi czujnik ultradźwiękowy, aby zmierzyć wpływ temperatury na TOF. Wkrótce opublikuję aktualizację na ten temat.
Znalazłem następujący zasób, który może pomóc
www.researchgate.net/profile/Zheng_Guilin3/publication/258745832_An_Innovative_Principle_in_Self-Calibration_by_Dual_Ultrasonic_Sensor_and_Application_in_Rain_Gauge/links/540d53e00cf-392f-b2b29a Deszczomierz.pdf