Sisällysluettelo:

JAWS: Vain toinen sääasema: 6 vaihetta
JAWS: Vain toinen sääasema: 6 vaihetta

Video: JAWS: Vain toinen sääasema: 6 vaihetta

Video: JAWS: Vain toinen sääasema: 6 vaihetta
Video: KUILUUN - Skinwalker Ranch Brandon Fugal kanssa (Viimeisimmät näkemykset) 2024, Marraskuu
Anonim
JAWS: Asioiden valmistelu
JAWS: Asioiden valmistelu
JAWS: Asioiden valmistelu
JAWS: Asioiden valmistelu
JAWS: Asioiden valmistelu
JAWS: Asioiden valmistelu

Tällaisen JAWS: n tekeminen on melko yksinkertaista.

Saat anturit, heität ne yhteen taululle ja alat käyttää antureiden mukana tulevia kirjastoja.

Aloitetaan ohjelman asennuksesta.

Koska olen hollanninkielinen (äidinkielenään puhuva), kaikki tiedot ja suuri osa käyttämistäni muuttujista on hollanniksi. Joten sinulla on nyt mahdollisuus oppia toinen kieli …

Mitä haluamme JAWSilta?

Helppoa: haluamme katsella näyttöä, joka näyttää meille todellisen ajan, päivämäärän, efemeridit (aurinko nousee, aurinko laskee, päivän pituus ja tähtitieteellinen keskipäivä).

Sen lisäksi olisi mukava nähdä sisä- ja ulkolämpötila, suhteellinen kosteus ja kastepiste sekä ilmanpaine.

Asioiden helpottamiseksi käytän lämpötila -asteita ja paineen hPa (= mBar). Joten kenenkään ei tarvitse laskea takaisin Fahrenheit-arvoista tai punta per neliö …

Tällä hetkellä vain nämä tiedot ovat saatavilla…

Jatkossa lisään ilman nopeuden, tuulen suunnan ja sateen.

Ajatuksena on, että minulla on ulkosäämökki ja kaikki tiedot lähetetään 2,4 GHz: n kautta sisäyksikköön.

Vaihe 3: JAWS: Ohjelmisto

JAWS: Ohjelmisto
JAWS: Ohjelmisto

Päästäksemme ohjelmistoihimme useimmat löytyvät olemassa olevista kirjastoista.

JAWSissa käytän seuraavia:

  1. SPI.h: Alkuperäinen Arduinon kirjasto 4 -johdinprotokollalle. Sitä käytetään TFT-suojana
  2. Adafruit_GFX.h ja MCUfriend_kbv.h: molemmat käytetään grafiikassa ja näytössä. Niiden avulla on erittäin helppoa kirjoittaa tekstiä, piirtää viivoja ja laatikoita TFT-näytölle.
  3. dht.h: meidän DHT: t: tätä kirjastoa voidaan käyttää DHT11 (sininen) ja DHT22.
  4. Wire.h: Arduino -kirjasto sarjayhteyden helpottamiseksi. Sitä käytetään kelloon ja SD -korttiin.
  5. SD.h: Jälleen Arduino -alkuperäinen, kirjoittaa ja lukea SD -kortilta.
  6. TimeLord.h: tätä käytän ajan pitämiseen, auringonlaskun tai auringon nousun laskemiseen mistä tahansa maantieteellisestä sijainnista. Se asettaa myös kellon DST (kesä- tai talviaika).

Aloitetaan kellosta.

Kun luet kelloa, tarvitset muuttujia, jotka saat kellomoduulin eri rekistereistä. Kun teemme niistä enemmän kuin vain numeroita, voimme käyttää seuraavia rivejä:

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

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

n

TimeLordin avulla saamme tämän tiedon paikkani: (Lokeren, Belgia)

TimeLord Lokeren; sen asettaminen Lokeren. Position (51.096, 3.99); pituusaste ja leveysaste

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

Lokeren. DstRules (3, 4, 10, 4, 60); Kesäaika 3. kuukaudesta, 4. viikosta 10. kuukauteen, 4. viikko, +60 minuuttia

int jaar = vuosi +2000;

tavu sunRise = {0, 0, 12, kuukausi, kuukausi, vuosi}; Aloita laskeminen joka päivä 00: sta

tavu sunSet = {0, 0, 12, kuukausi, kuukausi, vuosi}; sama kuin edellä

tavu maan = {0, 0, 12, kuukausi, kuukausi, vuosi}; sama kuin edellä

kelluva vaihe;

Tästä eteenpäin laskelmat tehdään.

vaihe = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (sunSet);

Lokeren. DST (auringonnousu);

Lokeren. DST (sunSet);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Tämä on esimerkki siitä, miten asiat lasketaan TimeLordissa. Tämän kirjaston avulla saat (melko) tarkat auringonlaskun ja auringonnousun ajat.

Lopuksi laitan koko ohjelman tähän Instructable -ohjelmaan. Se on aika suoraviivaista.

Vaihe 4: Lisää ohjelmistoja…

Lisää ohjelmistoja…
Lisää ohjelmistoja…
Lisää ohjelmistoja…
Lisää ohjelmistoja…

Lisää ohjelmistosta…

Ohjelmistossa on kolme suurta osaa.

1) Saamme raakadataa eri antureistamme: kellostamme, DHT: stä ja BMP180: sta. Se on meidän panoksemme.

2) Meidän on käännettävä tiedot (1 ja 0) jotain järkevää. Käytämme tätä varten kirjastoja ja muuttujia.

3) Haluamme lukea ja tallentaa tietomme. Välittömässä käytössä meillä on LCD-TFT, myöhempää käyttöä varten tallennetut tiedot SD-kortillemme.

Silmukassamme () saamme paljon "GOTOja": siirrymme eri kirjastoihin. Saamme tietomme yhdestä antureista, haemme tiedot ja tallennamme ne (enimmäkseen) kelluvaan tietomuuttujaan. Valitsemme muuttujien nimet viisaasti, emme x: llä tai y: llä, vaan nimillä, kuten "tempOutside" tai "pressure" tai vastaavia. Jotta ne olisivat luettavampia. OK, tämä tekee siitä hieman raskaampaa muuttujien käytössä ja enemmän muistia.

Tässä on temppu: kun muuttujamme näkyvät näytöllä, se vain sijoittaa ne oikeaan paikkaan.

Tässä käytetyissä kahdessa kirjastossa, Adafruit_GFX.h ja MCUfriend_kbv.h, on mukava työ, jossa käytetään värejä, fontteja ja kykyä piirtää viivoja. Käytin aluksi 12864-näyttöä näiden kirjastojen kanssa, myöhemmin muutin sen tft-näytössä. Ainoa mitä minun piti tehdä, oli laittaa laatikot, suorakulmiot ja viivat ja varmistaa, että tiedot tulivat oikeaan paikkaan. Voit käyttää sitä komennolla setCursor ja tft. Write. Helppo se tekee. Värit voidaan asettaa myös muuttujiksi, näissä kirjastoissa on monia esimerkkejä niiden valitsemisesta.

SD-kortille kirjoittamiseen tarvitsemme myös yksinkertaisia temppuja.

Esimerkiksi luemme tietomme kellosta erillisinä tunteina, minuutteina ja sekunteina. Lämpötilat ovat DHT.lämpötila ja DHTT.lämpötila sisä- tai ulkotilojen erottamiseksi.

Kun haluamme laittaa ne SD -kortille, käytämme merkkijonoa: aloitamme jokaisen silmukan tyhjänä merkkijonona:

variablestring = ""; Sitten voimme täyttää sen kaikilla tiedoillamme:

variablestring = muuttuva merkkijono + tuntia + ":" + minuuttia + ":" + sekuntia. Tämä antaa merkkijonolle 12:00:00.

Koska kirjoitamme sen TXT-tiedostona (katso SD.h Arduino.cc-sivustossa), lisäämme seuraaville muuttujille välilehden, joten sen tuominen Exceliin on helpompaa.

Joten tulemme kohtaan: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.

Ja niin edelleen.

Vaihe 5: Jotkut kuvakaappaukset…

Jotkut kuvakaappaukset…
Jotkut kuvakaappaukset…
Jotkut kuvakaappaukset…
Jotkut kuvakaappaukset…
Jotkut kuvakaappaukset…
Jotkut kuvakaappaukset…

Varmistaaksemme, että emme "ylikuormita" tietojoukkojamme, kirjoitin tietoja vain kerran 10 minuutin välein. Antaa meille 144 merkintää päivässä, ei mielestäni paha.

Ja tietysti voit jatkaa näiden tietojen käsittelyä: voit tehdä keskiarvoja, etsiä maksimi- ja minimiarvoja, verrata edellisiin vuosiin …

Met -toimistot tekevät yleensä päivän ja yön keskiarvoja lämpötilan suhteen: päivä alkaa kello 8.00 ja jatkuu kello 20.00.

Tuulen, paineen ja sateen keskiarvot lasketaan keskiyöstä keskiyöhön.

Vaihe 6: Valmis?

Valmis?
Valmis?
Valmis?
Valmis?

Ei oikeastaan… Kuten sanoin, haluaisin vihdoin saada tuulen nopeus- ja tuulensuunta-anturin toimimaan muiden JAWS-laitteiden kanssa.

Pieni rakentamani rakennus on noin 4 metriä korkea. Meteorologi saa tuulen nopeuden 10 metrin korkeudesta. Vähän liian korkea minulle…

Toivottavasti pidit tämän lukemisesta!

Adafruit-GFX: stä selitetään täällä:

MCUFRIEND_kbv.h löytyy täältä:

Lisätietoja BMP 120: sta (sama kuin BMP085):

Tietoja DHT22: sta:

Suositeltava: