Sadržaj:

JAWS: Samo još jedna meteorološka stanica: 6 koraka
JAWS: Samo još jedna meteorološka stanica: 6 koraka

Video: JAWS: Samo još jedna meteorološka stanica: 6 koraka

Video: JAWS: Samo još jedna meteorološka stanica: 6 koraka
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Juli
Anonim
JAWS: Priprema naših stvari
JAWS: Priprema naših stvari
JAWS: Priprema naših stvari
JAWS: Priprema naših stvari
JAWS: Priprema naših stvari
JAWS: Priprema naših stvari

Vrlo je jednostavno napraviti takve JAWS.

Dobijete svoje senzore, bacite ih zajedno na ploče i počnete koristiti biblioteke koje dolaze sa senzorima.

Počnimo s postavljanjem programa.

Budući da govorim holandski (izvorni govornik), svi podaci i mnoge varijable koje koristim su na holandskom. Dakle, sada imate priliku naučiti drugi jezik …

Šta želimo od JAWS -a?

Lako: želimo gledati ekran koji nam prikazuje stvarno vrijeme, datum, efemeride (izlazak sunca, zalazak sunca, dužinu dana i astronomsko podne).

Pored toga, bilo bi lijepo vidjeti unutrašnju i vanjsku temperaturu, relativnu vlažnost i tačku rose, te tlak zraka.

Da bih olakšao stvari, koristim centigrade za temperaturu i hPa (= mBar) za pritisak. Dakle, nitko ne mora računati natrag iz Fahrenheita ili funti po kvadratnom stadiju …

Trenutno su dostupni samo ovi podaci …

U budućnosti ću dodati brzinu zraka, smjer vjetra i padavine.

Ideja je da ću imati vanjsku vremensku kolibu i svi će se podaci slati preko 2,4 GHz na unutarnju jedinicu.

Korak 3: JAWS: Softver

JAWS: Softver
JAWS: Softver

Za pristup našem softveru većina se može pronaći u postojećim bibliotekama.

U JAWS -u koristim sljedeće:

  1. SPI.h: Originalna biblioteka iz Arduina za 4 -žični protokol. Koristi se za TFT-štit
  2. Adafruit_GFX.h i MCUfriend_kbv.h: oboje se koriste za grafiku i ekran. Omogućuju vrlo jednostavno pisanje teksta, crtanje linija i okvira na TFT ekranu.
  3. dht.h: za naše DHT -ove: ova biblioteka se može koristiti za DHT11 (plavi) i DHT22.
  4. Wire.h: Arduino biblioteka za olakšavanje serijske komunikacije. Koristi se za sat i SD karticu.
  5. SD.h: Opet Arduino original, za pisanje i čitanje sa SD kartice.
  6. TimeLord.h: ovaj koristim za zadržavanje vremena, izračunavanje zalaska sunca ili izlaska sunca s bilo kojeg zemljopisnog položaja. Također je postavio sat za ljetno ili zimsko računanje vremena.

Počnimo sa satom.

Prilikom čitanja sata potrebne su vam varijable koje dobijate iz različitih registara unutar modula sata. Kad ih učinimo ne samo brojevima, možemo upotrijebiti sljedeće retke:

const int DS1307 = 0x68; const char* dana = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};

const char* mjeseci = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

S TimeLordom ovo dobivamo kao podatke, za moje mjesto: (Lokeren, Belgija)

TimeLord Lokeren; postavljanje Lokeren. Position (51.096, 3.99); geografska dužina i širina

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

Lokeren. DstRules (3, 4, 10, 4, 60); DST od 3. mjeseca, 4. sedmice do 10. mjeseca, 4. sedmice, +60 minuta

int jaar = godina +2000;

bajt sunRise = {0, 0, 12, dan u mjesecu, mjesec, godina}; počni računati svaki dan od 00 sati

bajt sunSet = {0, 0, 12, dan u mjesecu, mjesec, godina}; isto kao gore

bajt maan = {0, 0, 12, dan mjeseca, mjesec, godina}; isto kao gore

float faza;

Odavde se vrše proračuni.

faza = 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];

Ovo je primjer kako se stvari računaju u TimeLord -u. S ovom bibliotekom dobivate (prilično) točna vremena zalaska i izlaska sunca.

Na kraju ću staviti cijeli program s ovim Instructable. Prilično je jednostavno.

Korak 4: Više softvera …

Više softvera…
Više softvera…
Više softvera…
Više softvera…

Više o softveru …

U softveru imamo tri velika dijela.

1) Nekoliko sirovih podataka dobivamo iz različitih senzora: sa sata, DHT -a i BMP180. To je naš doprinos.

2) Moramo prevesti podatke na (1 i 0) u nešto što ima smisla. Za to koristimo naše biblioteke i varijable.

3) Želimo čitati i pohranjivati naše podatke. To je naš izlaz. Za trenutnu upotrebu imamo LCD-TFT, za kasniju upotrebu imamo sačuvane podatke na SD kartici.

U našoj petlji (), dobijamo mnogo "GOTO -a": skačemo u različite biblioteke. Naše podatke dobivamo s jednog od senzora, uzimamo podatke i pohranjujemo ih u (uglavnom) plutajuću varijablu podataka. Mudro biramo imena varijabli, ne sa x ili y, već s imenima poput "tempOutside" ili "pressure" ili sličnim stvarima. Da bi bile čitljivije. U redu, ovo otežava upotrebu varijabli i zauzima više memorije.

Evo trika: kada naše varijable učinimo vidljivim na ekranu, samo ih postavljamo na pravi položaj.

Dvije biblioteke koje se ovdje koriste, Adafruit_GFX.h i MCUfriend_kbv.h, imaju lijep rad za korištenje boja, fontova i mogućnost crtanja linija. U prvom slučaju, koristio sam 12864-ekran sa ovim bibliotekama, kasnije sam to promenio u tft-ekranu. Sve što sam trebao učiniti je postaviti kutije, pravokutnike i linije i pobrinuti se da su podaci izašli na pravo mjesto. Za to možete koristiti setCursor i tft. Write kao naredbu. Lako to radi. Boje se također mogu postaviti kao varijable, u tim bibliotekama postoji mnogo primjera kako ih odabrati.

Za pisanje na SD-kartici potrebni su nam i neki jednostavni trikovi.

Na primjer, čitamo naše podatke sa sata kao zasebne sate, minute i sekunde. Temperature su DHT.temperatura i DHTT.temperatura za razlikovanje unutarnjih i vanjskih.

Kad ih želimo staviti na SD karticu, koristimo niz: svaku petlju započinjemo kao prazan niz:

variablestring = ""; Tada ga možemo ispuniti svim našim podacima:

variablestring = variablestring + sati + ":" + minute + ":" + sekunde. Ovo daje niz kao 12:00:00.

Budući da ga zapisujemo kao TXT datoteku (pogledajte SD.h na Arduino.cc), za sljedeće varijable dodajemo karticu, pa je lakše uvesti u Excel.

Tako dolazimo do: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.

I tako dalje.

Korak 5: Neki snimci ekrana …

Neki snimci ekrana…
Neki snimci ekrana…
Neki snimci ekrana…
Neki snimci ekrana…
Neki snimci ekrana…
Neki snimci ekrana…

Da bismo bili sigurni da nećemo "preopteretiti" naše skupove podataka, zapisao sam podatke samo jednom u 10 minuta. Daje nam 144 unosa dnevno. Mislim da nije loše.

I naravno, možete nastaviti s obradom tih podataka: možete napraviti prosjeke, možete tražiti maksimume i minimume, možete usporediti s prošlim godinama …

Kancelarije za sastanke obično daju prosječne dane i noći za temperature: dan počinje u 8 ujutro i traje do 20 sati.

Za vjetar, pritisak i padavine, prosjeci se uzimaju od ponoći do ponoći.

Korak 6: Završeno?

Gotovo?
Gotovo?
Gotovo?
Gotovo?

Ne baš … Kao što sam rekao, želio bih konačno postići da senzor brzine vjetra i smjera vjetra rade s ostalim JAWS-ovima.

Mala konstrukcija koju sam napravio stoji visoka oko 4 m. Meteorolozi dobivaju brzinu vjetra sa visine od 10 metara. Malo previsoko za mene …

Nadam se da ste uživali čitajući ovo!

Adafruit-GFX je objašnjeno ovdje:

MCUFRIEND_kbv.h možete pronaći ovdje:

Više o BMP 120 (isto kao BMP085):

O DHT22:

Preporučuje se: