Sisällysluettelo:
- Vaihe 3: JAWS: Ohjelmisto
- Vaihe 4: Lisää ohjelmistoja…
- Vaihe 5: Jotkut kuvakaappaukset…
- Vaihe 6: Valmis?
Video: JAWS: Vain toinen sääasema: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
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
Päästäksemme ohjelmistoihimme useimmat löytyvät olemassa olevista kirjastoista.
JAWSissa käytän seuraavia:
- SPI.h: Alkuperäinen Arduinon kirjasto 4 -johdinprotokollalle. Sitä käytetään TFT-suojana
- 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.
- dht.h: meidän DHT: t: tätä kirjastoa voidaan käyttää DHT11 (sininen) ja DHT22.
- Wire.h: Arduino -kirjasto sarjayhteyden helpottamiseksi. Sitä käytetään kelloon ja SD -korttiin.
- SD.h: Jälleen Arduino -alkuperäinen, kirjoittaa ja lukea SD -kortilta.
- 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ää 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…
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?
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:
Vain toinen ATtiny85 Retro -pelikonsoli: 4 vaihetta
Vielä yksi ATtiny85 Retro -pelikonsoli: Pieni retrokonsolin kaltainen kokoonpano, joka perustuu noin ATtiny85 x 0,96 OLED -laitteeseen pelitilan hyökkääjien, Tetrisin jne
Toinen IoT -sääasema: 8 vaihetta
Toinen IoT -sääasema: Seuraava oli syntymäpäivälahja isälleni; innoittamana toisesta Instructable-ohjelmasta, jonka näin ja alunperin oli tarkoitus osoittaa hänelle itsensä rakentamispakettina. Aloittaessani tämän projektin kanssa hänen kanssaan tajusin kuitenkin nopeasti, että ensimmäinen
Vain toinen antenni: 4 vaihetta
Vain toinen antenni: Joten päätin luoda antennin talon ympärillä olevista romumateriaaleista, ajatus oli, että en osta mitään materiaaleja, jos se on mahdollista. Tiedän, että tavallisella ihmisellä ei olisi noin paljon roskaa makaamassa, mutta tein niin, että haastoin itseni
TFMini Lidar -näyttö - vain tutka vain valolla! :-): 3 vaihetta
TFMini Lidar -näyttö - kuten tutka vain valolla! :-): Tämän työn tekemiseksi on koottu useita asioita, mutta suurin (ja mikä inspiroi minua tekemään sen) on " Arduino Radar Project " löytyi osoitteesta howtomechatronics.com Dejan Nedelkovski (päivämäärä tuntematon). https: // howtomechatronics
PIWOOLET (Pi.WOOd.tabLET): Vain toinen PI -tabletti: 10 vaihetta (kuvilla)
PIWOOLET (Pi.WOOd.tabLET): Vain toinen PI -tabletti: Johdanto - miksi tajusin sen? Vastaus on niin yksinkertainen: huvin vuoksi :-) Muutamat päätavoitteistani ovat HDMI -portin käyttömahdollisuus; säilyttää pääsy äänilähtöön; säilyttää pääsy GPIO: han; ylläpitää pääsyä vähintään yhteen USB -porttiin. BOM Rasp