Indholdsfortegnelse:
Video: JAWS: Bare endnu en vejrstation: 6 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
For at komme til vores software kan de fleste findes med eksisterende biblioteker.
I JAWS bruger jeg følgende:
- SPI.h: Det originale bibliotek fra Arduino til 4 -tråds protokol. Det bruges til TFT-skjoldet
- 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.
- dht.h: til vores DHT'er: dette bibliotek kan bruges til DHT11 (den blå) og DHT22.
- Wire.h: Arduino -biblioteket for at gøre seriel kommunikation let. Det bruges til uret og SD -kortet.
- SD.h: Igen en Arduino -original, til at skrive og læse fra SD -kortet.
- 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 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 …
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?
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:
Bare endnu en ATtiny85 Retro -spilkonsol: 4 trin
Bare endnu en ATtiny85 Retro-spilkonsol: En lille retro-konsollignende opsætning baseret på ATtiny85 x 0,96 OLED til at spille pladsindtrængere, Tetris osv
Endnu en smart vejrstation, men : 6 trin (med billeder)
Endnu en smart vejrstation, men …: OK, jeg ved, at der er så mange sådanne vejrstationer tilgængelige overalt, men tag et par minutter at se forskellen … Lav effekt 2 e-papirskærme … men 10 forskellige skærme! ESP32 -baseret accelerometer og temperatur / fugtighedssensorer Wifi -opdatering
Bare endnu en antenne: 4 trin
Bare en anden antenne: Så jeg besluttede at oprette en antenne af skrotmaterialer, jeg havde rundt omkring i huset, tanken var ikke at købe materialer, hvis det overhovedet var muligt. Jeg ved, at den almindelige person ikke ville have så meget skrammel liggende, men jeg gjorde det, så jeg udfordrede mig selv
Endnu en vejrstation (Y.A.W.S.): 18 trin (med billeder)
Endnu en vejrstation (Y.A.W.S.): Dette projekt er mit bud på den altid populære vejrstation. Min er baseret på en ESP8266, a.96 ” OLED -display og et BME280 -miljøsensormatrix. Vejrstationer synes at være et meget populært projekt. Min adskiller sig fra ot
Konverter (bare om) enhver mediefil til (bare om) enhver anden mediefil gratis !: 4 trin
Konverter (bare om) enhver mediefil til (bare om) enhver anden mediefil gratis !: Min første instruerbare, jubel! Alligevel var jeg på Google på udkig efter et gratis program, der ville konvertere mine Youtube.flv -filer til et format, der er mere universel, som. wmv eller.mov. Jeg søgte utallige fora og websteder og fandt derefter et program kaldet