Tartalomjegyzék:
- 3. lépés: JAWS: Szoftver
- 4. lépés: További szoftverek…
- 5. lépés: Néhány képernyőkép …
- 6. lépés: Kész?
Videó: JAWS: Csak egy másik meteorológiai állomás: 6 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
Egy ilyen JAWS elkészítése nagyon egyszerű.
Megkapja az érzékelőit, összerakja őket a táblákra, és elkezdi használni az érzékelőkhöz tartozó könyvtárakat.
Kezdjük a program beállításával.
Mivel hollandul beszélek (anyanyelvű), minden adat és a használt változók nagy része hollandul van. Tehát most lehetősége van megtanulni egy másik nyelvet …
Mit akarunk a JAWS -től?
Egyszerű: olyan képernyőt szeretnénk nézni, amely megmutatja a tényleges időt, dátumot, efemeridákat (nap fel, le, nap, a nap hossza és a csillagászati dél).
Ezenkívül jó lenne látni a külső és belső hőmérsékletet, a relatív páratartalmat és harmatpontot, valamint a légnyomást.
Hogy megkönnyítsem a dolgokat, a hőmérsékletet fokozattal, a nyomást pedig hPa -val (= mBar) használom. Tehát senkinek sem kell Fahrenheit-ből vagy négyzetenkénti fontból számolnia…
Jelenleg csak ezek az adatok állnak rendelkezésre…
A jövőben hozzáadom a légsebességet, a szélirányt és a csapadékot.
Az ötlet az, hogy lesz egy külső időjárási kunyhóm, és minden adat 2,4 GHz -en keresztül kerül elküldésre a beltéri egységre.
3. lépés: JAWS: Szoftver
Szoftverünk eléréséhez a legtöbb megtalálható a meglévő könyvtárakban.
A JAWS -ban a következőket használom:
- SPI.h: Az Arduino eredeti könyvtára 4 vezetékes protokollhoz. Ezt a TFT pajzshoz használják
- Adafruit_GFX.h és MCUfriend_kbv.h: mind a grafika, mind a képernyő. Ezek nagyon megkönnyítik a szöveg írását, vonalak és dobozok rajzolását a TFT-képernyőn.
- dht.h: DHT -k esetében: ez a könyvtár használható a DHT11 (a kék) és a DHT22 számára.
- Wire.h: az Arduino könyvtár, amely megkönnyíti a soros kommunikációt. Az órához és az SD -kártyához használják.
- SD.h: Ismét egy Arduino eredeti, írni és olvasni az SD -kártyáról.
- TimeLord.h: ezt használom az idő tartására, a napnyugta vagy a napfelkelte kiszámítására bármely földrajzi helyzetből. Ezenkívül beállította a DST (nyári vagy téli) órát.
Kezdjük az órával.
Az óra kiolvasásakor szüksége van az óra modulban található különböző regiszterekből kapott változókra. Ha nem csak számokat készítünk, akkor a következő sorokat használhatjuk:
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
A TimeLord segítségével ezt az adatot kapjuk a helyemről: (Lokeren, Belgium)
TimeLord Lokeren; a Lokeren. Position beállítása (51.096, 3.99); hosszúság és szélesség
Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 perc
Lokeren. DstRules (3, 4, 10, 4, 60); DST 3. hónap, 4. hét - 10. hónap, 4. hét, +60 perc
int jaar = év +2000;
byte sunRise = {0, 0, 12, hónap, hónap, év}; kezdje el a számítást minden nap 00 órától
byte sunSet = {0, 0, 12, hónap, hónap, év}; ugyanaz, mint fent
byte maan = {0, 0, 12, hónap, hónap, év}; ugyanaz, mint fent
úszó fázis;
Innentől kezdődnek a számítások.
fázis = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (sunSet);
Lokeren. DST (sunRise);
Lokeren. DST (sunSet);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Ez a példa arra, hogyan számítják ki a dolgokat a TimeLordban. Ezzel a könyvtárral (szép) pontos napnyugta és napfelkelte időpontját kapja.
A végén az egész programot ezzel az utasítással töltöm fel. Elég egyenes.
4. lépés: További szoftverek…
További információ a szoftverről…
Három nagy része van a szoftvernek.
1) Nyers adatokat kapunk különböző érzékelőinkből: az óránkból, a DHT -kből és a BMP180 -ból. Ez a mi bevitelünk.
2) Az adatokat le kell fordítanunk (1 és 0) -ra valami értelmesre. Ehhez használjuk könyvtárainkat és változóinkat.
3) El akarjuk olvasni és tárolni az adatainkat. Ez a kimenetünk. Azonnali használathoz megvan az LCD-TFT, későbbi használatra az SD-kártyán tárolt adataink.
A ciklusunkban () sok "GOTO" -t kapunk: ugrunk a különböző könyvtárakba. Adatainkat az egyik érzékelőből nyerjük, megkapjuk és (többnyire) egy lebegő adatváltozóban tároljuk. A változóneveket bölcsen választjuk, nem x vagy y, hanem olyan nevekkel, mint a "tempOutside" vagy a "pressure", vagy ilyesmi. Hogy olvashatóbbak legyenek. OK, ez kissé megnehezíti a változók használatát és memóriaigényesebb.
Itt jön a trükk: amikor változóinkat láthatóvá tesszük a képernyőn, akkor csak a megfelelő helyre kell őket helyezni.
Az itt használt két könyvtár, az Adafruit_GFX.h és az MCUfriend_kbv.h szép munkakészletet tartalmaz a színek, betűtípusok és a vonalak rajzolásának használatához. Először 12864-es képernyőt használtam ezekkel a könyvtárakkal, később ezt módosítottam a tft-képernyőn. Csak annyit kellett tennem, hogy dobozokat, téglalapokat és vonalakat helyezek el, és meg kell győződnöm arról, hogy az adatok a megfelelő helyre kerültek. Ehhez használhatja a setCursor és a tft. Write parancsokat. Könnyű csinálja. A színek változóként is beállíthatók, ezekben a könyvtárakban sok példa található a kiválasztásukra.
Az SD-kártyára íráshoz néhány egyszerű trükkre is szükségünk van.
Például adatainkat az órából külön órák, percek és másodpercek formájában olvassuk le. A hőmérséklet DHT.hőmérséklet és DHTT.hőmérséklet, hogy különbséget tegyen beltéri vagy kültéri között.
Amikor az SD -kártyára akarjuk helyezni őket, egy karakterláncot használunk: minden ciklust üres karakterláncként kezdünk:
variablestring = ""; Ezután feltölthetjük az összes adatunkkal:
variablestring = variable string + hours + ":" + minutes + ":" + seconds. Így a karakterlánc 12:00:00.
Mivel TXT-fájlként írjuk (lásd az SD.h-t az Arduino.cc-en), a következő változókhoz egy lapot adunk hozzá, így könnyebb importálni az Excelbe.
Tehát a következőhöz érkezünk: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Stb.
5. lépés: Néhány képernyőkép …
Annak érdekében, hogy ne "terheljük túl" az adathalmazainkat, csak 10 percenként írtam adatokat. Naponta 144 bejegyzést ad nekünk. Nem rossz, azt hiszem.
És természetesen folytathatja az adatok feldolgozását: átlagokat készíthet, maximumokat és minimumokat kereshet, összehasonlíthatja az elmúlt évekkel…
A Met irodák általában nappal és éjszaka átlagát adják a hőmérséklethez: a nappali reggel 8 órakor kezdődik és este 8 óráig tart.
A szél, a nyomás és a csapadék esetében az átlagokat éjféltől éjfélig veszik.
6. lépés: Kész?
Nem igazán … Ahogy mondtam, szeretném végre működtetni a szélsebesség- és szélirány-érzékelőt a JAWS többi részével.
Az általam készített kis konstrukció körülbelül 4 m magas. A meteorológus 10 m magas szélsebességet kap. Kicsit túl magas nekem…
Remélem, élvezte ezt olvasni!
Az Adafruit-GFX magyarázata itt található:
Az MCUFRIEND_kbv.h itt található:
További információ a BMP 120-ról (ugyanaz, mint a BMP085):
A DHT22 -ről:
Ajánlott:
Professzionális meteorológiai állomás ESP8266 és ESP32 DIY használatával: 9 lépés (képekkel)
Professzionális időjárás -állomás az ESP8266 és az ESP32 barkácsolás segítségével: A LineaMeteoStazione egy komplett időjárás -állomás, amely összekapcsolható a Sensirion professzionális érzékelőivel, valamint néhány Davis -műszeregységgel (esőmérő, szélmérő)
Csak vonal, csak fény! (1. típus): 19 lépés
Just Line, Just Light! a bolygókért " tól től
Egy másik IoT meteorológiai állomás: 8 lépés
Egy másik IoT meteorológiai állomás: A következő születésnapi ajándék volt apámnak; ihlette egy másik Instructable, amit láttam, és kezdetben bizonyítani akartam neki, mint önálló készítő készlet. Amikor azonban elkezdtem vele dolgozni ezen a projekten, nagyon gyorsan rájöttem, hogy a kezdeti
PIWOOLET (Pi.WOOd.tabLET): Csak egy másik PI tábla: 10 lépés (képekkel)
PIWOOLET (Pi.WOOd.tabLET): Csak egy másik PI tábla: Intro - miért jöttem rá? A válasz olyan egyszerű: csak szórakozásból :-) Néhány fő célom a HDMI -porthoz való hozzáférés fenntartása; hozzáférés fenntartása az audio kimenethez; fenntartja a hozzáférést a GPIO -hoz; fenntartja a hozzáférést legalább egy USB -porthoz. A BOM Rasp
Még egy Arduino meteorológiai állomás (ESP-01 & BMP280 & DHT11 & OneWire): 4 lépés
Még egy Arduino meteorológiai állomás (ESP-01 & BMP280 & DHT11 & OneWire): Itt megtalálhatja a OneWire használatának egy iterációját az ESP-01 nagyon kevés érintkezőjével. Az ebben az utasításban létrehozott eszköz csatlakozik az Ön Wifi hálózatához választás (rendelkeznie kell a hitelesítő adatokkal …) Érzékszervi adatokat gyűjt BMP280 és DHT11 készülékekről