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, Srpanj
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

Prilično je jednostavno izraditi takve RAKICE.

Dobivate svoje senzore, bacate ih zajedno na ploče i počinjete koristiti biblioteke koje dolaze sa senzorima.

Počnimo s postavljanjem programa.

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

Što želimo od JAWS -a?

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

Uz to, bilo bi lijepo vidjeti unutarnju i vanjsku temperaturu, relativnu vlažnost i rosište te tlak zraka.

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

Trenutno su dostupni samo ti podaci…

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

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 knjižnicama.

U JAWS -u koristim sljedeće:

  1. SPI.h: Izvorna knjižnica 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 zaslon. Omogućuju vrlo jednostavno pisanje teksta, crtanje linija i okvira na TFT ekranu.
  3. dht.h: za naše DHT -ove: ova se knjižnica može koristiti za DHT11 (plavi) i DHT22.
  4. Wire.h: Arduino knjižnica za olakšavanje serijske komunikacije. Koristi se za sat i SD karticu.
  5. SD.h: Ponovno 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 dobivate 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); zemljopisna 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. tjedna do 10. mjeseca, 4. tjedna, +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 što je gore

bajt maan = {0, 0, 12, dan u mjesecu, mjesec, godina}; isto kao što je gore

float faza;

Odavde se vrše izrač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_minut];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minut];

Ovo je primjer kako se stvari računaju u TimeLordu. 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: iz sata, DHT -a i BMP180. To je naš ulaz.

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

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

U našoj petlji () dobivamo mnogo "GOTO -a": skačemo u različite knjižnice. Naše podatke dobivamo s jednog od senzora, uzimamo podatke i pohranjujemo ih u (uglavnom) plutajuću varijablu podataka. Pametno biramo imena varijabli, ne s x ili y, već s imenima poput "tempOutside" ili "pressure" ili sličnim stvarima. Da bi bili čitljiviji. U redu, to malo otežava korištenje varijabli i zauzima više memorije.

Ovdje dolazi do trika: kada naše varijable učinimo vidljivim na ekranu, samo ih postavljamo na pravo mjesto.

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-zaslon s tim knjižnicama, kasnije sam to promijenio na 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 knjižnicama 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 zaslona …

Neki snimci zaslona…
Neki snimci zaslona…
Neki snimci zaslona…
Neki snimci zaslona…
Neki snimci zaslona…
Neki snimci zaslona…

Kako ne bismo "preopteretili" svoje skupove podataka, podatke sam zapisao samo jednom svakih 10 minuta. Daje nam 144 unosa dnevno. Mislim da nije loše.

I naravno, možete nastaviti obrađivati te podatke: možete napraviti prosjeke, možete tražiti maksimume i minimume, možete usporediti s prošlim godinama …

U uredima za sastanke obično se dobivaju prosječni dani i noći za temperature: dan počinje u 8 ujutro i traje do 20 sati.

Za vjetar, tlak i oborine prosjeci se uzimaju od ponoći do ponoći.

Korak 6: Završeno?

Završeno?
Završeno?
Završeno?
Završeno?

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

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

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

Adafruit-GFX je objašnjen ovdje:

MCUFRIEND_kbv.h možete pronaći ovdje:

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

O DHT22:

Preporučeni: