Sadržaj:
Video: JAWS: Samo još jedna meteorološka stanica: 6 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
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
Za pristup našem softveru većina se može pronaći u postojećim knjižnicama.
U JAWS -u koristim sljedeće:
- SPI.h: Izvorna knjižnica iz Arduina za 4 -žični protokol. Koristi se za TFT-štit
- 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.
- dht.h: za naše DHT -ove: ova se knjižnica može koristiti za DHT11 (plavi) i DHT22.
- Wire.h: Arduino knjižnica za olakšavanje serijske komunikacije. Koristi se za sat i SD karticu.
- SD.h: Ponovno Arduino original, za pisanje i čitanje sa SD kartice.
- 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 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 …
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?
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:
Još jedna pametna meteorološka stanica, ali : 6 koraka (sa slikama)
Još jedna pametna meteorološka postaja, ali …: U redu, znam da je toliko takvih meteoroloških stanica dostupno posvuda, ali odvojite nekoliko minuta da vidite razliku … Dva zaslona e-papira male snage … ali 10 različitih ekrani! Akcelerometar na bazi ESP32 i senzori temperature / vlažnosti Wifi nadograđen
Još jedna IoT meteorološka stanica: 8 koraka
Još jedna IoT meteorološka stanica: Ovo je bio rođendanski poklon za mog tatu; inspiriran drugim Instructableom koji sam vidio i u početku namjeravao da mu se dokaže kao komplet za samostalnu izgradnju. Međutim, kad sam s njim počeo raditi na ovom projektu, vrlo brzo sam shvatio da je početni t
Još jedna Arduino meteorološka stanica (ESP-01 i BMP280 & DHT11 i OneWire): 4 koraka
Još jedna Arduino meteorološka stanica (ESP-01 & BMP280 & DHT11 & OneWire): Ovdje možete pronaći jednu iteraciju korištenja OneWire s vrlo malo pinova ESP-01. Uređaj stvoren u ovoj uputi povezuje se s Wifi mrežom vašeg izbor (morate imati vjerodajnice …) Prikuplja osjetilne podatke s BMP280 i DHT11
Još jedna meteorološka stanica (Y.A.W.S.): 18 koraka (sa slikama)
Još jedna meteorološka postaja (Y.A.W.S.): Ovaj projekt je moj osvrt na uvijek popularnu meteorološku postaju. Moj se temelji na ESP8266, a.96 ” OLED zaslon i niz senzora okoliša BME280. Čini se da su meteorološke postaje vrlo popularan projekt. Moj se razlikuje od ostalih
YACS (još jedna stanica za punjenje): 6 koraka (sa slikama)
YACS (još jedna stanica za punjenje): stanica za punjenje vaših naprava. Potrošni materijal: Gumeni držači A kutija Alati: Bušilica i nastavci