Cuprins:

Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: 3 pași (cu imagini)
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: 3 pași (cu imagini)

Video: Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: 3 pași (cu imagini)

Video: Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile: 3 pași (cu imagini)
Video: Stație meteo OLED Arduino Nano, BME280 și SSD1306 2024, Noiembrie
Anonim
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile
Stație meteo Cu Arduino, BME280 și afișaj pentru a vedea tendința în ultimele 1-2 zile

Buna!

Aici, pe instructabile, au fost deja introduse stații meteo. Acestea arată presiunea curentă a aerului, temperatura și umiditatea. Ceea ce le-a lipsit până acum a fost o prezentare a cursului în ultimele 1-2 zile. Acest proces ar avea avantajul că nu numai că puteți citi grafic valorile curente, ci și dintr-o privire, puteți vedea cum s-au schimbat în ultimele 1-2 zile. Ca rezultat, se recunoaște, de exemplu, o posibilă schimbare a vremii, deoarece presiunea aerului se schimbă foarte mult. Cu toate acestea, se recunosc și relațiile generale dintre mărimile măsurate.

De exemplu, umiditatea scade atunci când temperatura aerului crește. Acest lucru se datorează faptului că aerul cald poate absorbi mai multă umiditate decât aerul rece. Dacă umiditatea relativă este de aproximativ 60% la 20 ° C, atunci la 25 ° C aerul ar putea absorbi mai multă umiditate în termeni absoluți. Prin urmare, umiditatea relativă nu mai este de 60%, dar, de exemplu, doar cu 50% reducere.

De asemenea, puteți vedea frumos la ce oră a zilei sunt de așteptat cele mai mari sau mai scăzute temperaturi. Sau că umiditatea crește brusc când plouă. Ideal pentru meteorologul hobby. Aș fi foarte fericit dacă ați putea posta experiențele dvs. în comentarii.

Pasul 1: Piese

Părți
Părți
Părți
Părți
Părți
Părți
Părți
Părți

Pentru această stație meteo aveți nevoie doar de 5 părți:

* Arduino mega: ebay arduino mega

* Senzor meteo BME280: ebay BME280

* Afișaj 320x480 pixeli pentru afișajul Arduino Mega: ebay 320x480

* + Sursă de alimentare de 9V: sursă de alimentare ebay

* Cablu electric

Costurile totale sunt doar mai mici de 25 USD.

Pasul 2: Codul Arduino

Codul Arduino
Codul Arduino
Codul Arduino
Codul Arduino
Codul Arduino
Codul Arduino

Circuitul este foarte simplu. Trebuie doar să conectați senzorul la mega arduino în acest fel:

Vin + 5V

GND GND

Pinul SDA 20

Pinul SCL 21

Afișajul este conectat numai la banda de conector de pe arduino mega.

Iată linkurile pentru bibliotecile arduino de care aveți nevoie:

Biblioteca BME280:

bibliotecă senzor comună:

Inima acestei stații meteo este, așa cum am spus, reprezentarea grafică a datelor meteo. În acest moment, valorile sunt actualizate la fiecare 6 minute, iar graficele sunt deplasate cu 1 pixel spre stânga. În acest fel, se pot înregistra ultimele 1,5 zile. Desigur, acest lucru poate fi schimbat în orice moment. Doar atunci trebuie modificate valoarea 360000 ms (= 6 minute) și, bineînțeles, axa timpului în ore. Iată liniile pe care va trebui să le schimbați:

time_neu = millis ();

if (time_neu <time_alt) // pentru a evita problemele după depășirea milisului

{

time_next = 0 + 360000;

}

if (time_neu> time_next && time_next> = 360000) // măsurare nouă după 6 minute

{

Am decis să mențin neschimbate temperaturile, presiunea aerului și scările de umiditate, deoarece vă permite să evaluați rapid, în timp, dacă presiunea aerului este ridicată, medie sau scăzută, pe baza locației citirilor curente. Dacă aș regla scara din nou și din nou, nu aș recunoaște acest lucru la prima vedere. Axa timpului este situată la poziția y = 290 pixeli. Marcajele de pe axele y sunt la 45 de pixeli distanță. Dacă doriți să afișați presiunea aerului de la 940 mbar la 1000 mbar în pași de 10 mbar, procedați după cum urmează:

Mai întâi, setați ecuația generală y = k * x + d. Acum utilizați acele 2 perechi de valori (x = 940, y = 290) și (x = 950, y = 245). Aceasta dă 2 ecuații cu cele două necunoscute k și d: 290 = k * 940 + d și 245 = k * 950 + d. Prin scăderea ambelor ecuații, obținem: 290 - 245 = k * 940 - k * 950 + d - d. Necunoscutul d dispare în acest fel și obținem pentru k = - 45/10 = -4,5. Această valoare pentru k este plasată într-una dintre cele două ecuații inițiale: 290 = -4,5 * 940 + d. În acest fel se obține valoarea pentru d, în mod specific d = 4520.

Dacă doriți presiunea aerului, de exemplu, reprezintă doar 955 mbar la 985 mbar, puneți perechile de valori (955, 290) și (960, 245) în ecuația liniei drepte. Apoi se obține pentru k = -9 și d = 8885. În mod similar, se calculează ecuațiile în linie dreaptă pentru temperatură și umiditatea aerului. Aceste 3 ecuații apar aici în program:

pentru (i = 0; i <= 348; i ++)

{

if (umiditate ! = -66)

{

myGLCD.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);

myGLCD.setColor (0, 255, 0);

//myGLCD.drawPixel(81 + i, -4,5 * umiditate + 380);

myGLCD.drawLine (81 + i, -4,5 * umiditate + 380,81 + i + 1, -4,5 * umiditate [i + 1] + 380);

myGLCD.setColor (0, 0, 255);

//myGLCD.drawPixel(81 + i, -4,5 * presiune + 4520);

myGLCD.drawLine (81 + i, -9,0 * presiune + 8885, 81 + i + 1, -9,0 * presiune [i + 1] + 8885);

}

}

Pasul 3: Rezultatele

Image
Image
Rezultatele
Rezultatele
Rezultatele
Rezultatele

Un cuvânt pentru videoclip: Pentru a face vizibilă extinderea graficului, am redus pașii de timp până la 1 secundă. Prin urmare, ecranul pâlpâie puternic. În realitate, pașii de timp sunt de 6 minute. Deci nu puteți vedea pâlpâire …

M-aș bucura dacă unul sau altul meteorolog hobby încearcă să-mi treacă stația meteo. O comparație cu stațiile oficiale de măsurare (de exemplu Universitatea din Graz / Austria) arată utilitatea curbelor de măsurare.

Mai mult, aș fi fericit dacă ați putea să mă votați la concursul de senzori și la celelalte instructabile ale mele la concursul de știință din clasă:

  • https://www.instructables.com/id/DIY-LED-photomete…
  • www.instructables.com/id/DIY-Wind-Tunnel-a…
  • www.instructables.com/id/Simple-Autorange-…

Mulțumesc mult pentru asta.

Dacă sunteți interesat de mai multe proiecte de fizică, iată canalul meu de pe YouTube:

mai multe proiecte de fizică:

În acest sens, Eureka …

Recomandat: