Innholdsfortegnelse:
Video: JAWS: Just Another Weather Station: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Det er ganske enkelt å lage en slik JAWS.
Du får sensorene dine, du kaster dem sammen på tavler, og du begynner å bruke bibliotekene som følger med sensorene.
La oss starte med oppsettet av programmet.
Siden jeg er nederlandsktalende (morsmål) er alle dataene og mye av variablene jeg bruker på nederlandsk. Så nå har du sjansen til å lære et annet språk …
Hva vil vi ha fra JAWS?
Enkelt: vi vil se på en skjerm som viser oss den faktiske tiden, datoen, efemerider (sol opp, sol ned, lengden på dagen og den astronomiske middagen).
Ved siden av det ville det være fint å se innvendig og utvendig temperatur, den relative fuktigheten og duggpunktet, og lufttrykket.
For å gjøre ting enklere bruker jeg centigrader for temperatur og hPa (= mBar) for trykk. Så ingen trenger å beregne tilbake fra Fahrenheit eller pund per kvadratmeter …
For øyeblikket er bare disse dataene tilgjengelige …
I fremtiden vil jeg legge til Lufthastighet, vindretning og nedbør.
Tanken er at jeg skal ha en værhytte utenfor, og alle dataene blir sendt over 2,4 GHz til innendørsanlegget.
Trinn 3: JAWS: Programvare
For å komme til programvaren vår, kan de fleste bli funnet med eksisterende biblioteker.
I JAWS bruker jeg følgende:
- SPI.h: Det originale biblioteket fra Arduino for 4 -tråds protokoll. Den brukes til TFT-skjoldet
- Adafruit_GFX.h og MCUfriend_kbv.h: begge brukt til grafikk og skjerm. Disse gjør det veldig enkelt å skrive tekst, tegne linjer og bokser på TFT-skjermen.
- dht.h: for våre DHT -er: dette biblioteket kan brukes til DHT11 (den blå) og DHT22.
- Wire.h: Arduino -biblioteket for å gjøre seriell kommunikasjon enkel. Den brukes til klokken og SD -kortet.
- SD.h: Igjen en Arduino -original, for å skrive og lese fra SD -kortet.
- TimeLord.h: denne bruker jeg til å holde tid, beregne solnedgang eller soloppgang fra enhver geografisk posisjon. Det satte også klokken for sommertid (sommer eller vinter).
La oss starte med klokken.
Når du leser ut en klokke, trenger du variablene du får fra de forskjellige registerene inne i klokkemodulen. Når vi gjør dem til mer enn bare tall, kan vi bruke følgende linjer:
const int DS1307 = 0x68; const char* days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* måneder = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};
n
Med TimeLord får vi dette som data for mitt sted: (Lokeren, Belgia)
TimeLord Lokeren; sette den opp Lokeren. Position (51.096, 3.99); lengdegrad og breddegrad
Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minutter
Lokeren. DstRules (3, 4, 10, 4, 60); Sommertid fra 3. måned, 4. uke til 10. måned, 4. uke, +60 minutter
int jaar = år +2000;
byte sunRise = {0, 0, 12, månededag, måned, år}; begynne å beregne hver dag fra 00 timer
byte sunSet = {0, 0, 12, månedsdag, måned, år}; samme som ovenfor
byte maan = {0, 0, 12, månededag, måned, år}; samme som ovenfor
flytefase;
Herfra blir beregningene gjort.
phase = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (sunSet);
Lokeren. DST (sunRise);
Lokeren. DST (sunSet);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Dette er et eksempel på hvordan ting blir beregnet i TimeLord. Med dette biblioteket får du (ganske) nøyaktige tider med solnedgang og soloppgang.
På slutten legger jeg hele programmet med denne Instructable. Det er ganske rett frem.
Trinn 4: Mer programvare …
Mer om programvaren …
Vi har tre store deler i programvaren.
1) Vi får noen rådata fra våre forskjellige sensorer: fra klokken, DHT og BMP180. Det er vårt innspill.
2) Vi må oversette dataene til (1 og 0) til noe som er fornuftig. For dette bruker vi våre biblioteker og variabler.
3) Vi ønsker å lese og lagre dataene våre. Det er vår produksjon. For umiddelbar bruk har vi vår LCD-TFT, for senere bruk har vi lagrede data på SD-kortet.
I loop () får vi mange "GOTO's": vi hopper til de forskjellige bibliotekene. Vi henter dataene våre fra en av sensorene, får dataene og lagrer dem i (for det meste) en flytende datavariabel. Vi velger våre variabelnavn med omhu, ikke med x eller y, men med navn som "tempOutside" eller "press" eller lignende. For å gjøre dem mer lesbare. OK, dette gjør det litt tyngre når det gjelder bruk av variabler og mer minnekrevende.
Her kommer trikset: når vi gjør våre variabler synlige på skjermen, er det bare å plassere dem på riktig posisjon.
De to bibliotekene som brukes her, Adafruit_GFX.h og MCUfriend_kbv.h har et fint arbeidssett for å bruke farger, fonter og evnen til å tegne linjer. I første omgang brukte jeg en 12864-skjerm med disse bibliotekene, senere endret jeg det i tft-skjermen. Alt jeg måtte gjøre, er å plassere esker, rektangler og linjer, og sørge for at dataene kom ut på riktig sted. For det kan du bruke setCursor og tft. Write som kommando. Lett gjør det. Farger kan også angis som variabler. Det er mange eksempler på disse bibliotekene hvordan du velger dem.
For å skrive på SD-kortet trenger vi også noen enkle triks.
For eksempel leser vi dataene våre fra klokken som separate timer, minutter og sekunder. Temperaturene er DHT. Temperatur og DHTT. Temperatur, for å skille mellom innendørs eller utendørs.
Når vi vil sette dem på SD -kortet, bruker vi en streng: Vi starter hver sløyfe som en tom streng:
variablestring = ""; Deretter kan vi fylle den med alle våre data:
variablestring = variablestring + timer + ":" + minutter + ":" + sekunder. Dette gir strengen som 12:00:00.
Siden vi skriver den som en TXT-fil (se SD.h på Arduino.cc), legger vi til en fane for de neste variablene, så det er lettere å importere den i Excel.
Så vi kommer til: variablestring = variablestring + "\ t" + DHT.temperatur + "\ t" + DHTT. Temperatur.
Og så videre.
Trinn 5: Noen skjermbilder …
For å være sikker på at vi ikke "overbelaster" datasettet vårt, skrev jeg data bare hvert 10. minutt. Å gi oss 144 oppføringer per dag. Ikke verst, tror jeg.
Og selvfølgelig kan du fortsette å behandle disse dataene: du kan lage gjennomsnitt, du kan se etter maksima og minima, du kan sammenligne med tidligere år …
Møttekontorer lager vanligvis gjennomsnitt av dag og natt, for temperaturer: dagtid starter kl. 08.00 og går til 20.00.
For vind, trykk og nedbør tas gjennomsnittene fra midnatt til midnatt.
Trinn 6: Ferdig?
Ikke egentlig … Som jeg sa, vil jeg endelig få vindhastighets- og vindretningssensoren til å fungere med resten av JAWS.
Den lille konstruksjonen jeg lagde er omtrent 4 meter høy. Meteorologen får vindhastighet fra 10 meter høy. Litt for høyt for meg …
Jeg håper du likte å lese dette!
Adafruit-GFX forklares her:
MCUFRIEND_kbv.h finner du her:
Mer om BMP 120 (samme som BMP085):
Om DHT22:
Anbefalt:
Super Weather Station hengende kurv: 11 trinn (med bilder)
Super Weather Station Hengende kurv: Hei alle sammen! I dette T3chFlicks blogginnlegget viser vi deg hvordan vi lagde en smart hengende kurv. Planter er et friskt og sunt tillegg til ethvert hjem, men kan fort bli slitsomt - spesielt hvis du bare husker å vanne dem når du
Hanging Gear Weather Station: 7 trinn (med bilder)
Hanging Gear Weather Station: I denne instruksen skal jeg vise deg hvordan du bygger din egen værstasjon for hengende utstyr, som er laget av CNC laserskårne MDF-deler. En trinnmotor driver hvert gir, og en Arduino tar temperatur- og fuktighetsmålinger ved hjelp av en DHT
Unikt skrivebord Weather Station Showpiece: 5 trinn (med bilder)
Unikt skrivebord Værstasjon Showpiece: Hei gutter! For dette måneders prosjektet har jeg laget en værstasjon i form av et skrivebord, eller du kan kalle det som et skrivebord. Denne værstasjonen henter data til ESP8266 fra et nettsted som heter openwethermap.org og endrer RGB -fargene i t
Just Line, Just Light! (Type1): 19 trinn
Just Line, Just Light! (Type1): Det er et verk med å uttrykke lys på akrylplater gravert med mønstre av strektegninger. Det uttrykker farger og mønstre av forskjellige lysdioder harmonisk. Dette prosjektet ble utført med motiver fra Arout Meijers " Takk for planetene " fra
Yet Another Weather Station (Y.A.W.S.): 18 trinn (med bilder)
Yet Another Weather Station (Y.A.W.S.): Dette prosjektet er min oppfatning av den alltid populære værstasjonen. Min er basert på en ESP8266, a.96 ” OLED -skjerm og et BME280 -miljøsensorsystem. Værstasjoner ser ut til å være et veldig populært prosjekt. Min skiller seg fra ot