Indholdsfortegnelse:

JAWS: Bare endnu en vejrstation: 6 trin
JAWS: Bare endnu en vejrstation: 6 trin

Video: JAWS: Bare endnu en vejrstation: 6 trin

Video: JAWS: Bare endnu en vejrstation: 6 trin
Video: S1: Ep. #4 - Independent Research / EPIC UFO Sighting w/ Tim Seanor 2024, Juli
Anonim
JAWS: Gør vores ting klar
JAWS: Gør vores ting klar
JAWS: Gør vores ting klar
JAWS: Gør vores ting klar
JAWS: Gør vores ting klar
JAWS: Gør vores ting klar

Det er ganske enkelt at lave sådan en JAWS.

Du får dine sensorer, du smider dem sammen på tavler, og du begynder at bruge de biblioteker, der følger med sensorerne.

Lad os starte med opsætningen af programmet.

Da jeg er hollandsktalende (modersmål) er alle data og mange af de variabler, jeg bruger, på hollandsk. Så nu har du chancen for at lære et andet sprog …

Hvad vil vi have fra JAWS?

Let: vi vil se en skærm, der viser os den faktiske tid, dato, efemerider (sol op, sol ned, dagens længde og den astronomiske middag).

Ved siden af det ville det være rart at se indvendig og udvendig temperatur, den relative luftfugtighed og dugpunkt og lufttrykket.

For at gøre tingene lettere bruger jeg centigrader til temperatur og hPa (= mBar) til tryk. Så ingen behøver at beregne tilbage fra Fahrenheit eller pund pr. Firkantede længder …

På nuværende tidspunkt er kun disse data tilgængelige …

I fremtiden tilføjer jeg lufthastighed, vindretning og nedbør.

Ideen er, at jeg får en vejrhytte udefra, og alle data sendes over 2,4 GHz til indendørsenheden.

Trin 3: JAWS: Software

JAWS: Software
JAWS: Software

For at komme til vores software kan de fleste findes med eksisterende biblioteker.

I JAWS bruger jeg følgende:

  1. SPI.h: Det originale bibliotek fra Arduino til 4 -tråds protokol. Det bruges til TFT-skjoldet
  2. Adafruit_GFX.h og MCUfriend_kbv.h: begge brugt til grafik og skærm. Disse gør det meget let at skrive tekst, tegne linjer og bokse på TFT-skærmen.
  3. dht.h: til vores DHT'er: dette bibliotek kan bruges til DHT11 (den blå) og DHT22.
  4. Wire.h: Arduino -biblioteket for at gøre seriel kommunikation let. Det bruges til uret og SD -kortet.
  5. SD.h: Igen en Arduino -original, til at skrive og læse fra SD -kortet.
  6. TimeLord.h: denne bruger jeg til at holde tid, beregne solnedgang eller solopgang fra enhver geografisk position. Det indstillede også uret til sommertid (sommer eller vintertid).

Lad os starte med uret.

Når du læser et ur ud, har du brug for de variabler, du får fra de forskellige registre inde i urmodulet. Når vi gør dem til mere end bare tal, kan vi bruge 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 mit sted: (Lokeren, Belgien)

TimeLord Lokeren; opsætning af Lokeren. Position (51.096, 3.99); længde- og breddegrad

Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minutter

Lokeren. DstRules (3, 4, 10, 4, 60); DST fra 3. måned, 4. uge til 10. måned, 4. uge, +60 minutter

int jaar = år +2000;

byte sunRise = {0, 0, 12, månedsdag, måned, år}; begynde at 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ånedsdag, måned, år}; samme som ovenfor

flyde fase;

Herfra foretages beregningerne.

fase = 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 eksemplet på, hvordan tingene beregnes i TimeLord. Med dette bibliotek får du (temmelig) præcise tider for solnedgang og solopgang.

Til sidst vil jeg lægge hele programmet med denne Instructable. Det er ret ligetil.

Trin 4: Mere software …

Mere software …
Mere software …
Mere software …
Mere software …

Mere om softwaren …

Vi har tre store dele i softwaren.

1) Vi får nogle rådata fra vores forskellige sensorer: fra vores ur, DHT'er og BMP180. Det er vores input.

2) Vi skal oversætte dataene til (1 og 0) til noget, der giver mening. Til dette bruger vi vores biblioteker og variabler.

3) Vi vil læse og gemme vores data. Det er vores output. For øjeblikkelig brug har vi vores LCD-TFT, til senere brug har vi vores gemte data på vores SD-kort.

I vores loop () får vi mange "GOTO'er": vi hopper til de forskellige biblioteker. Vi får vores data fra en af sensorerne, får dataene og gemmer dem i (for det meste) en flydende datavariabel. Vi vælger vores variabelnavne klogt, ikke med x eller y, men med navne som "tempOutside" eller "pres" eller lignende. For at gøre dem mere læsbare. OK, dette gør det lidt tungere ved brug af variabler og mere hukommelseskrævende.

Her kommer tricket: når vi gør vores variabler synlige på skærmen, er det bare at placere dem på den rigtige position.

De to biblioteker, der bruges her, Adafruit_GFX.h og MCUfriend_kbv.h har et godt arbejdssæt til brug af farver, skrifttyper og evnen til at tegne linjer. I første omgang brugte jeg en 12864-skærm med disse biblioteker, senere ændrede jeg det i tft-skærmen. Alt, hvad jeg skulle gøre, er at placere kasser, rektangler og linjer og sørge for, at dataene kom ud på det rigtige sted. Til det kan du bruge setCursor og tft. Write som kommando. Let gør det. Farver kan også indstilles som variabler, der er mange eksempler på disse biblioteker, hvordan man vælger dem.

For at skrive på SD-kortet har vi også brug for nogle enkle tricks.

For eksempel læser vi vores data fra uret som separate timer, minutter og sekunder. Temperaturer er DHT. Temperatur og DHTT. Temperatur, for at skelne mellem indendørs eller udendørs.

Når vi vil lægge dem på SD -kortet, bruger vi en streng: vi starter hver sløjfe som en tom streng:

variablestring = ""; Så kan vi fylde det op med alle vores data:

variablestring = variabelstring + timer + ":" + minutter + ":" + sekunder. Dette giver strengen som 12:00:00.

Da vi skriver det som en TXT-fil (se SD.h på Arduino.cc), tilføjer vi en fane til de næste variabler, så det er lettere at importere den i Excel.

Så vi kommer til: variablestring = variablestring + "\ t" + DHT.temperatur + "\ t" + DHTT. Temperatur.

Og så videre.

Trin 5: Nogle skærmbilleder …

Nogle skærmbilleder …
Nogle skærmbilleder …
Nogle skærmbilleder …
Nogle skærmbilleder …
Nogle skærmbilleder …
Nogle skærmbilleder …

For at være sikker på, at vi ikke "overbelaster" vores datasæt, skrev jeg data kun en gang hvert 10. minut. Giver os 144 poster om dagen. Ikke dårligt, tror jeg.

Og selvfølgelig kan du fortsætte med at behandle disse data: du kan lave gennemsnit, du kan kigge efter maksima og minima, du kan sammenligne med tidligere år …

Mødede kontorer foretager normalt gennemsnit af dag og nat for temperaturer: dagtimerne starter kl. 8.00 og løber til kl. 20.00.

For vind, tryk og nedbør tages gennemsnitene fra midnat til midnat.

Trin 6: Færdig?

Færdig?
Færdig?
Færdig?
Færdig?

Ikke rigtigt … Som jeg fortalte, ville jeg endelig få vindhastigheds- og vindretningssensoren til at fungere med resten af JAWS.

Den lille konstruktion, jeg lavede, er cirka 4 m høj. Meteorolog får vindhastighed fra 10m høj. Lidt for højt til mig …

Jeg håber du nød at læse dette!

Adafruit-GFX forklares her:

MCUFRIEND_kbv.h findes her:

Mere om BMP 120 (samme som BMP085):

Om DHT22:

Anbefalede: