Inhoudsopgave:

Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: 3 stappen (met afbeeldingen)
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: 3 stappen (met afbeeldingen)

Video: Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: 3 stappen (met afbeeldingen)

Video: Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen: 3 stappen (met afbeeldingen)
Video: Arduino Nano, BME280 en SSD1306 OLED-weerstation 2024, Juli-
Anonim
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen
Weerstation met Arduino, BME280 & display voor het zien van de trend in de afgelopen 1-2 dagen

Hallo!

Hier op instructables zijn al weerstations geïntroduceerd. Ze tonen de huidige luchtdruk, temperatuur en vochtigheid. Wat ze tot nu toe misten, was een presentatie van de cursus in de afgelopen 1-2 dagen. Dit proces zou het voordeel hebben dat u niet alleen grafisch de huidige waarden kunt aflezen, maar ook in één oogopslag kunt zien hoe deze de afgelopen 1-2 dagen zijn veranderd. Hierdoor herkent men bijvoorbeeld een mogelijke weersverandering, aangezien de luchtdruk sterk verandert. Men herkent echter ook algemene relaties tussen de gemeten grootheden.

Zo neemt de luchtvochtigheid af als de luchttemperatuur stijgt. Dit komt omdat warme lucht meer vocht kan opnemen dan koude lucht. Als de relatieve vochtigheid ongeveer 60% is bij 20°C, dan zou de lucht bij 25°C in absolute zin meer vocht kunnen opnemen. Daardoor is de relatieve luchtvochtigheid niet meer 60%, maar bijvoorbeeld slechts 50% korting.

Ook kun je mooi zien op welk tijdstip van de dag de hoogste of laagste temperaturen te verwachten zijn. Of dat de luchtvochtigheid sterk stijgt als het regent. Ideaal voor de hobby meteoroloog. Ik zou heel blij zijn als je je ervaringen in de reacties zou kunnen plaatsen.

Stap 1: Onderdelen

Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen
Onderdelen

Voor dit weerstation heb je maar 5 onderdelen nodig:

* Arduino mega: ebay arduino mega

* Weersensor BME280: ebay BME280

* 320x480 pixel display voor de Arduino Mega: ebay 320x480 display

* + 9V voeding: ebay voeding

* Elektrische draad

De totale kosten zijn slechts minder dan $ 25.

Stap 2: De Arduino-code

De Arduino-code
De Arduino-code
De Arduino-code
De Arduino-code
De Arduino-code
De Arduino-code

De schakeling is heel eenvoudig. Je hoeft alleen de sensor op deze manier op de arduino mega aan te sluiten:

Vin +5V

GND GND

SDA-pin 20

SCL-pen 21

Het display wordt alleen in de connectorstrip op de arduino mega gestoken.

Hier zijn de links voor de arduino-bibliotheken die je nodig hebt:

BME280-bibliotheek:

gemeenschappelijke sensorbibliotheek:

Het hart van dit weerstation is, zoals ik al zei, de grafische weergave van de weergegevens. Op dit moment worden de waarden elke 6 minuten geüpdatet en worden de grafieken 1 pixel naar links verschoven. Op deze manier kunnen de laatste 1,5 dag worden opgenomen. Dit kan natuurlijk op elk moment gewijzigd worden. Alleen dan moet de waarde 360000 ms (= 6 minuten) en natuurlijk de tijdas in uren worden gewijzigd. Dit zijn de regels die u moet wijzigen:

time_neu = millis();

if(time_neu <time_alt) // om problemen te voorkomen na de millis-overflow

{

tijd_volgende = 0 + 360000;

}

if(time_neu > time_next && time_next >= 360000) // nieuwe meting na 6 minuten

{

Ik heb besloten om de temperatuur-, luchtdruk- en vochtigheidsschalen ongewijzigd te laten, omdat het je in staat stelt om in de loop van de tijd snel te beoordelen of de luchtdruk hoog, gemiddeld of laag is, op basis van de locatie van de huidige metingen. Als ik de schaal keer op keer zou aanpassen, zou ik dit op het eerste gezicht niet herkennen. De tijdas bevindt zich op de positie y = 290 pixels. De markeringen op de y-assen staan 45 pixels uit elkaar. Als u de luchtdruk van 940 mbar tot 1000 mbar in stappen van 10 mbar wilt weergeven, gaat u als volgt te werk:

Stel eerst de algemene vergelijking y = k * x + d op. Nu gebruik je die 2 waardeparen (x = 940, y = 290) en (x = 950, y = 245). Dit geeft 2 vergelijkingen met de twee onbekenden k en d: 290 = k * 940 + d en 245 = k * 950 + d. Door beide vergelijkingen af te trekken, krijgen we: 290 - 245 = k * 940 - k * 950 + d - d. De onbekende d verdwijnt op deze manier en we krijgen voor k = - 45/10 = -4,5. Deze waarde voor k wordt in een van de twee beginvergelijkingen geplaatst: 290 = -4,5 * 940 + d. Op deze manier verkrijgt men de waarde voor d, namelijk d = 4520.

Als u wilt dat de luchtdruk bijvoorbeeld slechts 955 mbar tot 985 mbar vertegenwoordigt, plaatst u de waardeparen (955, 290) en (960, 245) in de lineaire vergelijking. Dan krijgt men voor k = -9 en d = 8885. Op dezelfde manier berekent men de lineaire vergelijkingen voor de temperatuur en de luchtvochtigheid. Deze 3 vergelijkingen verschijnen hier in het programma:

voor (i = 0; ik <= 348; ik ++)

{

if (vochtigheid ! = -66)

{

mijnGLCD.setColor (255, 0, 0);

//myGLCD.drawPixel (81 + i, -4,5 * temperatuur + 200);

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

mijnGLCD.setColor (0, 255, 0);

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

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

mijnGLCD.setColor (0, 0, 255);

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

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

}

}

Stap 3: De resultaten

Image
Image
De resultaten
De resultaten
De resultaten
De resultaten

Eén woord voor de video: Om de uitzetting van de grafiek zichtbaar te maken heb ik de tijdstappen teruggebracht tot 1 seconde. Daarom flikkert het display sterk. In werkelijkheid zijn de tijdstappen 6 minuten. Je ziet dus geen flikkeringen…

Ik zou blij zijn als de ene of de andere hobby-meteoroloog aan mijn weerstation probeert te sleutelen. Een vergelijking met officiële meetstations (o.a. Universiteit van Graz/oostenrijk) laat de bruikbaarheid van de meetcurves zien.

Verder zou ik blij zijn als je op mij zou kunnen stemmen in de sensorwedstrijd en op mijn andere instructables in de klassikale wetenschapswedstrijd:

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

Hartelijk dank hiervoor.

Als je geïnteresseerd bent in meer natuurkundeprojecten, hier is mijn YouTube-kanaal:

meer natuurkundeprojecten:

In die zin is Eureka …

Aanbevolen: