Spisu treści:
Wideo: Stacja pogodowa z Arduino, BME280 i wyświetlaczem do obserwacji trendu w ciągu ostatnich 1-2 dni: 3 kroki (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
Cześć!
Tutaj na instruktażach zostały już wprowadzone stacje pogodowe. Pokazują aktualne ciśnienie powietrza, temperaturę i wilgotność. Brakowało im do tej pory prezentacji kursu w ciągu ostatnich 1-2 dni. Ten proces miałby tę zaletę, że można nie tylko graficznie odczytać aktualne wartości, ale także na pierwszy rzut oka zobaczyć, jak zmieniły się w ciągu ostatnich 1-2 dni. W rezultacie rozpoznaje się na przykład możliwą zmianę pogody, ponieważ ciśnienie powietrza bardzo się zmienia. Jednak rozpoznaje się również ogólne zależności między mierzonymi wielkościami.
Na przykład wilgotność spada wraz ze wzrostem temperatury powietrza. Dzieje się tak, ponieważ ciepłe powietrze może wchłonąć więcej wilgoci niż zimne powietrze. Jeśli wilgotność względna wynosi około 60% przy 20 ° C, to przy 25 ° C powietrze może wchłonąć więcej wilgoci w wartościach bezwzględnych. Dlatego wilgotność względna nie jest już 60%, ale na przykład tylko 50% mniej.
Widać też ładnie, o której porze dnia należy spodziewać się najwyższych lub najniższych temperatur. Albo że wilgotność gwałtownie wzrasta, gdy pada deszcz. Idealny dla meteorologa hobbystów. Byłbym bardzo szczęśliwy, gdybyś mógł zamieścić swoje doświadczenia w komentarzach.
Krok 1: Części
Do tej stacji pogodowej potrzebujesz tylko 5 części:
* Arduino mega: eBay arduino mega
* Czujnik pogody BME280: eBay BME280
* Wyświetlacz 320x480 pikseli dla Arduino Mega: wyświetlacz ebay 320x480
* Zasilanie + 9 V: zasilacz ebay
* Kabel elektryczny
Całkowite koszty to tylko mniej niż 25 dolarów.
Krok 2: Kod Arduino
Obwód jest bardzo prosty. Wystarczy podłączyć czujnik do arduino mega w ten sposób:
Vin +5V
GND GND
SDA pin 20
SCL pin 21
Wyświetlacz wpina się tylko w listwę złączy w arduino mega.
Oto linki do bibliotek arduino, których będziesz potrzebować:
Biblioteka BME280:
wspólna biblioteka czujników:
Sercem tej stacji pogodowej jest, jak powiedziałem, graficzna reprezentacja danych pogodowych. W tej chwili wartości są aktualizowane co 6 minut, a wykresy są przesuwane o 1 piksel w lewo. W ten sposób można zarejestrować ostatnie 1,5 dnia. Oczywiście w każdej chwili można to zmienić. Dopiero wtedy należy zmienić wartość 360000 ms (= 6 minut) i oczywiście oś czasu w godzinach. Oto linie, które musisz zmienić:
time_neu = mili();
if(time_neu < time_alt) // aby uniknąć problemów po przepełnieniu millis
{
czas_następny = 0 + 360000;
}
if(time_neu > time_next && time_next >= 360000) // nowy pomiar po 6 minutach
{
Zdecydowałem się zachować niezmienione skale temperatury, ciśnienia i wilgotności powietrza, ponieważ pozwala to szybko ocenić z biegiem czasu, czy ciśnienie powietrza jest wysokie, średnie czy niskie, na podstawie lokalizacji bieżących odczytów. Gdybym ciągle zmieniał skalę, nie rozpoznałbym tego na pierwszy rzut oka. Oś czasu znajduje się na pozycji y = 290 pikseli. Znaczniki na osiach Y są oddalone od siebie o 45 pikseli. Jeśli chcesz wyświetlić ciśnienie powietrza od 940 mbar do 1000 mbar w krokach co 10 mbar, wykonaj następujące czynności:
Najpierw stwórz ogólne równanie y = k * x + d. Teraz używasz tych 2 par wartości (x = 940, y = 290) i (x = 950, y = 245). Daje to 2 równania z dwiema niewiadomymi k i d: 290 = k * 940 + d i 245 = k * 950 + d. Odejmując oba równania, otrzymujemy: 290 - 245 = k * 940 - k * 950 + d - d. Nieznane d znika w ten sposób i otrzymujemy dla k = -45/10 = -4,5. Ta wartość k jest umieszczona w jednym z dwóch początkowych równań: 290 = -4,5 * 940 + d. W ten sposób otrzymuje się wartość d, a konkretnie d = 4520.
Jeśli chcesz, aby ciśnienie powietrza reprezentowało na przykład tylko 955 mbar do 985 mbar, umieść pary wartości (955, 290) i (960, 245) w równaniu linii prostej. Następnie otrzymujemy dla k = -9 i d = 8885. Podobnie oblicza się równania linii prostej dla temperatury i wilgotności powietrza. W programie pojawiają się te 3 równania:
dla (i = 0; ja <= 348; ja ++)
{
jeśli (wilgotność ! = -66)
{
mójGLCD.setColor (255, 0, 0);
//myGLCD.drawPixel(81 + i, -4,5 * temperatura + 200);
myGLCD.drawLine (81 + i, -4,5 * temperatura + 200,81 + i + 1, -4,5 * temperatura [i + 1] + 200);
mójGLCD.setColor (0, 255, 0);
//myGLCD.drawPixel(81 + i, -4,5 * wilgotność + 380);
myGLCD.drawLine (81 + i, -4,5 * wilgotność + 380,81 + i + 1, -4,5 * wilgotność [i + 1] + 380);
mójGLCD.setColor (0, 0, 255);
//myGLCD.drawPixel(81 + i, -4,5 * ciśnienie + 4520);
myGLCD.drawLine (81 + i, -9,0 * ciśnienie + 8885, 81 + i + 1, -9,0 * ciśnienie [i + 1] + 8885);
}
}
Krok 3: Wyniki
Jedno słowo do filmu: Aby było widoczne rozszerzenie wykresu, skróciłem kroki czasowe do 1 sekundy. Dlatego wyświetlacz mocno migocze. W rzeczywistości kroki czasowe wynoszą 6 minut. Więc nie widać migotania…
Byłbym zadowolony, gdyby któryś z meteorologów-hobbystów spróbował majstrować przy mojej stacji pogodowej. Porównanie z oficjalnymi stacjami pomiarowymi (np. Uniwersytet Graz/austria) pokazuje użyteczność krzywych pomiarowych.
Co więcej, byłbym szczęśliwy, gdybyś mógł głosować na mnie w konkursie czujników i na innych moich uczniów w konkursie naukowym w klasie:
- https://www.instructables.com/id/DIY-LED-fotometa…
- www.instructables.com/id/DIY-Wind-Tunnel-a…
- www.instructables.com/id/Simple-Autorange-…
Wielkie dzięki za to.
Jeśli jesteś zainteresowany innymi projektami z fizyki, oto mój kanał na YouTube:
więcej projektów z fizyki:
W tym sensie Eureka…
Zalecana:
Stacja pogodowa NaTaLia: stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: 8 kroków (ze zdjęciami)
Stacja pogodowa NaTaLia: Stacja pogodowa zasilana energią słoneczną Arduino Wykonana we właściwy sposób: po roku udanej pracy w 2 różnych lokalizacjach dzielę się planami projektu stacji pogodowej zasilanej energią słoneczną i wyjaśniam, jak ewoluował w system, który może naprawdę przetrwać przez długi czas okresy z energii słonecznej. Jeśli obserwujesz
Stacja pogodowa DIY i stacja czujników WiFi: 7 kroków (ze zdjęciami)
DIY Stacja pogodowa i stacja z czujnikami WiFi: W tym projekcie pokażę Ci, jak stworzyć stację pogodową wraz ze stacją czujników WiFi. Stacja czujnikowa mierzy lokalne dane dotyczące temperatury i wilgotności i przesyła je przez Wi-Fi do stacji pogodowej. Stacja pogodowa wyświetla następnie t
Pokojowa stacja pogodowa przy użyciu Arduino i BME280: 4 kroki
Pokojowa stacja pogodowa za pomocą Arduino i BME280: Wcześniej udostępniałem prostą stację pogodową, która wyświetlała temperaturę i wilgotność w okolicy. Problem polegał na tym, że aktualizacja zajęła trochę czasu, a dane nie były dokładne. W tym samouczku stworzymy monitor pogody wewnętrznej
DIY Stacja pogodowa z wyświetlaczem Nextion i Arduino: 11 kroków
DIY Stacja pogodowa z wyświetlaczem Nextion i Arduino: W tym samouczku użyjemy wyświetlacza Nextion, modułu czasu rtc1307, Arduino UNO i Visuino do wyświetlania aktualnego czasu, temperatury i wilgotności. Obejrzyj film demonstracyjny
Stacja pogodowa z dużym wyświetlaczem ST7920: 4 kroki
Stacja pogodowa z dużym wyświetlaczem ST7920: Drodzy przyjaciele, witamy w innym Instruktażowym! W tym samouczku przyjrzymy się po raz pierwszy temu dużemu wyświetlaczowi LCD i zbudujemy z niego monitor temperatury i wilgotności. Zawsze chciałem znaleźć wyświetlacz podobny do disp