Sisukord:
Video: JAWS: Lihtsalt teine ilmajaam: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
Sellise lõualuu valmistamine on üsna lihtne.
Saate oma andurid kätte, viskate need tahvlitele kokku ja hakkate kasutama anduritega kaasasolevaid raamatukogusid.
Alustame programmi seadistamisega.
Kuna ma räägin hollandi keelt (emakeel), on kõik andmed ja suur osa minu kasutatavatest muutujatest hollandi keeles. Nüüd on teil võimalus õppida teist keelt …
Mida me JAWSilt soovime?
Lihtne: tahame vaadata ekraani, mis näitab meile tegelikku aega, kuupäeva, efemeriide (päike üles, päike alla, päeva pikkus ja astronoomiline keskpäev).
Selle kõrval oleks tore näha sise- ja välistemperatuuri, suhtelist niiskust ja kastepunkti ning õhurõhku.
Asjade lihtsustamiseks kasutan temperatuuri astmeid ja rõhu jaoks hPa (= mBar). Nii et keegi ei pea arvutama tagasi Fahrenheiti järgi või naela ruutmeetri kohta …
Praegu on saadaval ainult need andmed…
Tulevikus lisan õhu kiiruse, tuule suuna ja sademed.
Mõte on selles, et mul on välistingimustes olev ilm ja kõik andmed saadetakse siseseadmesse üle 2,4 GHz.
3. samm: JAWS: tarkvara
Meie tarkvara juurde pääsemiseks leiate enamiku olemasolevatest raamatukogudest.
JAWSis kasutan järgmisi:
- SPI.h: Arduino originaalraamatukogu 4 traadiga protokolli jaoks. Seda kasutatakse TFT-kilbi jaoks
- Adafruit_GFX.h ja MCUfriend_kbv.h: kasutatakse graafika ja ekraani jaoks. Nende abil on TFT-ekraanile teksti kirjutamine, joonte ja kastide joonistamine väga lihtne.
- dht.h: meie DHT -de jaoks: seda raamatukogu saab kasutada DHT11 (sinine) ja DHT22 jaoks.
- Wire.h: Arduino raamatukogu, et muuta jadaühendus lihtsaks. Seda kasutatakse kella ja SD -kaardi jaoks.
- SD.h: Jällegi Arduino originaal, kirjutamiseks ja SD -kaardilt lugemiseks.
- TimeLord.h: seda kasutan aja hoidmiseks, päikeseloojangu või päikesetõusu arvutamiseks mis tahes geograafilisest asukohast. See seadis ka kellaajaks DST (suvel või talvel).
Alustame kellast.
Kella lugemisel vajate muutujaid, mida saate kella mooduli sees olevatest erinevatest registritest. Kui me teeme neid rohkem kui lihtsalt numbreid, saame kasutada järgmisi ridu:
const int DS1307 = 0x68; const char* days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* kuud = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" "," 12 "};
n
TimeLordiga saame need andmed minu koha kohta: (Lokeren, Belgia)
TimeLord Lokeren; selle seadistamine Lokeren. Position (51.096, 3.99); pikkus ja laiuskraadid
Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minutit
Lokeren. DstRules (3, 4, 10, 4, 60); DST alates 3. kuust, 4. nädalast kuni 10. kuuni, 4. nädalast, +60 minutit
int jaar = aasta +2000;
bait sunRise = {0, 0, 12, kuu, aasta, kuu}; alustage arvutamist iga päev alates 00 tunnist
bait sunSet = {0, 0, 12, kuu, aasta, kuu}; Sama nagu eespool
bait maan = {0, 0, 12, kuu, aasta, kuu}; Sama nagu eespool
ujukifaas;
Siit tehakse arvutused.
faas = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (päikeseloojang);
Lokeren. DST (päikesetõus);
Lokeren. DST (päikeseloojang);
int ZonOpUur = päikesetõus [tl_tund];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = päikesetõus [tl_tund];
int ZonOnMin = sunSet [tl_minute];
See on näide sellest, kuidas TimeLordis asju arvutatakse. Selle raamatukogu abil saate (päris) täpsed päikeseloojangu ja päikesetõusu ajad.
Lõpuks panen kogu programmi selle juhendiga. See on üsna otsekohene.
Samm: rohkem tarkvara…
Tarkvara kohta veel…
Tarkvaras on kolm suurt osa.
1) Saame tooreid andmeid erinevatelt anduritelt: meie kellalt, DHT -lt ja BMP180 -lt. See on meie sisend.
2) Peame tõlkima andmed (1 ja 0) millekski mõistlikuks. Selleks kasutame oma teeke ja muutujaid.
3) Soovime oma andmeid lugeda ja salvestada. See on meie väljund. Koheseks kasutamiseks on meil LCD-TFT, hilisemaks kasutamiseks salvestatud andmed meie SD-kaardile.
Meie silmusest () saame palju "GOTO -sid": liigume erinevate raamatukogude juurde. Me saame oma andmed ühelt andurilt, saame andmed ja salvestame need (enamasti) ujuvandmete muutujaga. Me valime oma muutujate nimed targalt, mitte x või y, vaid selliste nimedega nagu "tempOutside" või "pressure" vms. Et need oleksid loetavamad. OK, see muudab muutujate kasutamise natuke raskemaks ja mälumahukamaks.
Siit tuleb trikk: meie muutujate ekraanil nähtavaks tegemisel lihtsalt asetatakse need õigesse kohta.
Kahel siin kasutataval raamatukogul Adafruit_GFX.h ja MCUfriend_kbv.h on kena töö, mis kasutab värve, fonte ja joonte joonistamise võimalust. Esiteks kasutasin nende teekidega 12864 ekraani, hiljem muutsin seda tft-ekraanil. Kõik, mida ma pidin tegema, oli panna kastid, ristkülikud ja jooned ning veenduda, et andmed ilmusid õigesse kohta. Selleks võite kasutada käsku setCursor ja tft. Write. Lihtne teeb. Värve saab määrata ka muutujatena, nendes raamatukogudes on palju näiteid nende valimise kohta.
SD-kaardile kirjutamiseks vajame ka lihtsaid nippe.
Näiteks loeme oma andmeid kellast eraldi tundide, minutite ja sekunditena. Temperatuurid on DHT.temperatuur ja DHTT.temperatuur, et teha vahet sise- või välistingimustes.
Kui tahame need SD -kaardile panna, kasutame stringi: alustame iga tsüklit tühja stringina:
variablestring = ""; Siis saame selle täita kõigi oma andmetega:
variablestring = variable string + hours + ":" + minutes + ":" + seconds. See annab stringi nagu 12:00:00.
Kuna me kirjutame selle TXT-failina (vt SD.h saidil Arduino.cc), lisame järgmiste muutujate jaoks vahekaardi, nii et seda on lihtsam Excelisse importida.
Niisiis jõuame: muutuv string = muutuv string + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Ja nii edasi.
Samm: mõned ekraanipildid…
Et olla kindel, et me oma andmekogumeid üle ei koormata, kirjutasin andmed ainult üks kord iga 10 minuti järel. Annab meile 144 kannet päevas. Pole paha, ma arvan.
Ja muidugi saate nende andmete töötlemist jätkata: saate teha keskmisi, otsida maksimume ja miinimume, võrrelda eelmiste aastatega …
Met kontorid teevad tavaliselt päeval ja öösel keskmisi temperatuure: päevane algab kell 8.00 ja kestab kella 20.00.
Tuule, rõhu ja sademete puhul võetakse keskmised südaööst südaööni.
6. samm: lõpetasite?
Mitte tegelikult … Nagu ma ütlesin, tahaksin lõpuks saada tuule kiiruse ja tuule suuna anduri koos ülejäänud JAWS-iga.
Minu tehtud väike konstruktsioon on umbes 4 m kõrge. Meteoroloogid saavad tuule kiiruse 10 m kõrguselt. Minu jaoks natuke liiga kõrge…
Loodan, et teile meeldis seda lugeda!
Adafruit-GFX-i selgitatakse siin:
MCUFRIEND_kbv.h leiate siit:
Lisateavet BMP 120 kohta (sama mis BMP085):
DHT22 kohta:
Soovitan:
D.I.Y LIHTSALT traadita toiteallikas: 4 sammu (piltidega)
D.I.Y LIHTNE JUHTMATU VÕIMALUS JÄÄKIDELT: Täna tahaksin jagada, kuidas LED -e süttib hambaharja laadija ja vanarauast korjatud solenoidventiilide traadita jõuülekannete abil. Enne alustamist vaadake allolevat videot:
NaTaLia ilmajaam: Arduino päikeseenergial töötav ilmajaam on õigesti tehtud: 8 sammu (piltidega)
NaTaLia ilmajaam: Arduino päikeseenergial töötav ilmajaam on õigesti tehtud: pärast 1 -aastast edukat tegutsemist kahes erinevas kohas jagan oma päikeseenergiaga töötavate ilmajaamade projektiplaane ja selgitan, kuidas see arenes süsteemiks, mis võib pika aja jooksul tõesti ellu jääda perioodid päikeseenergiast. Kui järgite
Teine IoT ilmajaam: 8 sammu
Teine IoT ilmajaam: järgmine oli minu isale sünnipäevakingitus; inspireeritud teisest Instructable'ist, mida ma nägin ja kavatsesin esialgu tõestada talle kui iseehituskomplekti. Kuid alustades temaga selle projekti kallal tööd, mõistsin väga kiiresti, et esialgne
Lihtsalt teine antenn: 4 sammu
Lihtsalt teine antenn: nii et ma otsustasin luua antenni maja ümbruses olevatest vanaraua materjalidest. Idee oli, et kui võimalik, ei osta materjale. Ma tean, et tavalisel inimesel poleks nii palju rämpsu, aga ma tegin seda nii, et esitasin endale väljakutse
PIWOOLET (Pi.WOOd.tabLET): lihtsalt teine PI -tahvelarvuti: 10 sammu (koos piltidega)
PIWOOLET: säilitada juurdepääs heliväljundile; säilitada juurdepääs GPIO -le; säilitada juurdepääs vähemalt ühele USB -pordile. BOM Rasp