Kazalo:
- 3. korak: JAWS: Programska oprema
- 4. korak: Več programske opreme …
- 5. korak: Nekaj posnetkov zaslona …
- 6. korak: Končano?
Video: JAWS: Samo še ena vremenska postaja: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Izdelavo takšnih JAWS je precej preprosto.
Dobite svoje senzorje, jih vržete skupaj na deske in začnete uporabljati knjižnice, ki so priložene senzorjem.
Začnimo z nastavitvijo programa.
Ker govorim nizozemsko (materni govornik), so vsi podatki in večina spremenljivk, ki jih uporabljam, v nizozemščini. Zdaj se imate priložnost naučiti drugega jezika …
Kaj želimo od JAWS?
Enostavno: želimo si ogledati zaslon, ki prikazuje dejanski čas, datum, efemeride (sonce gor, sonce zahod, dolžina dneva in astronomski poldnevi).
Poleg tega bi bilo lepo videti notranjo in zunanjo temperaturo, relativno vlažnost in rosišče ter zračni tlak.
Za lažje delo uporabljam stopinje za temperaturo in hPa (= mBar) za tlak. Torej nikomur ni treba izračunati nazaj po Fahrenheitu ali funtov na kvadratni odstotek…
Trenutno so na voljo samo ti podatki…
V prihodnosti bom dodal hitrost zraka, smer vetra in padavine.
Ideja je, da bom imel zunanjo vremensko kočo in vsi podatki bodo poslani preko 2,4 GHz v notranjo enoto.
3. korak: JAWS: Programska oprema
Če želite priti do naše programske opreme, lahko večino najdete v obstoječih knjižnicah.
V JAWS uporabljam naslednje:
- SPI.h: Izvirna knjižnica iz Arduina za 4 -žični protokol. Uporablja se za TFT-ščit
- Adafruit_GFX.h in MCUfriend_kbv.h: oba se uporabljata za grafiko in zaslon. Tako je zelo enostavno pisati besedilo, risati črte in polja na TFT-zaslonu.
- dht.h: za naše DHT: to knjižnico lahko uporabite za DHT11 (modra) in DHT22.
- Wire.h: knjižnica Arduino za olajšanje serijske komunikacije. Uporablja se za uro in kartico SD.
- SD.h: Spet izvirnik Arduino za pisanje in branje s kartice SD.
- TimeLord.h: ta uporabljam za merjenje časa, izračun sončnega zahoda ali sončnega vzhoda s katerega koli geografskega položaja. Prav tako je nastavil uro za poletni / zimski čas.
Začnimo z uro.
Ko berete uro, potrebujete spremenljivke, ki jih dobite iz različnih registrov znotraj modula ure. Ko jih naredimo več kot le številke, lahko uporabimo naslednje vrstice:
const int DS1307 = 0x68; const char* dni = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* mesecev = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};
n
S TimeLordom dobimo to kot podatke za moje mesto: (Lokeren, Belgija)
TimeLord Lokeren; nastavitev Lokeren. Position (51.096, 3.99); zemljepisna dolžina in zemljepisna širina
Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minut
Lokeren. DstRules (3, 4, 10, 4, 60); DST od 3. meseca, 4. tedna do 10. meseca, 4. tedna, +60 minut
int jaar = leto +2000;
bajta sunRise = {0, 0, 12, dan v mesecu, mesec, leto}; začnite računati vsak dan od 00 ur
bajt sunSet = {0, 0, 12, dan v mesecu, mesec, leto}; Enako kot zgoraj
bajt maan = {0, 0, 12, dan v mesecu, mesec, leto}; Enako kot zgoraj
plavajoča faza;
Od tu naprej se izvedejo izračuni.
faza = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sonRise);
Lokeren. SunSet (sončni set);
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];
To je primer, kako se stvari izračunajo v TimeLordu. S to knjižnico dobite (precej) natančne čase sončnega zahoda in vzhoda.
Na koncu bom dal celoten program s tem Instructable. Je precej naravnost.
4. korak: Več programske opreme …
Več o programski opremi…
V programski opremi imamo tri velike dele.
1) Nekaj surovih podatkov dobimo iz različnih senzorjev: iz ure, DHT in BMP180. To je naš vložek.
2) Podatke moramo prevesti v (1 in 0) v nekaj, kar je smiselno. Za to uporabljamo naše knjižnice in spremenljivke.
3) Želimo prebrati in shraniti naše podatke. To je naš rezultat. Za takojšnjo uporabo imamo LCD-TFT, za kasnejšo uporabo pa imamo shranjene podatke na kartici SD.
V naši zanki () dobimo veliko "GOTO": skočimo na različne knjižnice. Podatke dobimo iz enega od senzorjev, jih pridobimo in shranimo v (večinoma) plavajočo podatkovno spremenljivko. Imena spremenljivk izbiramo pametno, ne z x ali y, ampak z imeni, kot sta "tempOutside" ali "pressure" ali podobne stvari. Da bodo lažje berljivi. V redu, to nekoliko oteži uporabo spremenljivk in porabi več pomnilnika.
Tu se pojavi trik: ko naše spremenljivke vidimo na zaslonu, jih preprosto postavimo na pravo mesto.
Dve knjižnici, ki se uporabljata tukaj, Adafruit_GFX.h in MCUfriend_kbv.h, imata lepo nastavljeno delo za uporabo barv, pisav in možnost risanja črt. Najprej sem uporabil zaslon 12864 s temi knjižnicami, kasneje sem to spremenil na zaslonu tft. Vse, kar sem moral storiti, je, da postavim polja, pravokotnike in črte ter poskrbim, da so podatki prišli na pravo mesto. Za to lahko uporabite setCursor in tft. Write kot ukaz. Z lahkoto. Barve lahko nastavite tudi kot spremenljivke, v teh knjižnicah je veliko primerov, kako jih izbrati.
Za pisanje na kartico SD potrebujemo tudi nekaj preprostih trikov.
Na primer, naše podatke iz ure beremo kot ločene ure, minute in sekunde. Temperature so DHT.temperatura in DHTT.temperatura za razlikovanje med notranjim ali zunanjim.
Ko jih želimo postaviti na kartico SD, uporabimo niz: vsako zanko začnemo kot prazen niz:
variablestring = ""; Nato ga lahko napolnimo z vsemi našimi podatki:
variablestring = variablestring + ure + ":" + minute + ":" + sekunde. To daje nizu kot 12:00:00.
Ker ga zapisujemo kot datoteko TXT (glej SD.h na Arduino.cc), za naslednje spremenljivke dodamo zavihek, zato ga je lažje uvoziti v Excel.
Tako smo prišli do: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
In tako naprej.
5. korak: Nekaj posnetkov zaslona …
Da ne bi »preobremenili« svojih podatkovnih nizov, sem podatke zapisal le enkrat na 10 minut. Dajte nam 144 prijav na dan. Mislim, da ni slabo.
In seveda lahko nadaljujete z obdelavo teh podatkov: lahko naredite povprečja, lahko iščete maksimume in minimume, lahko primerjate s preteklimi leti …
Pisarne običajno dobijo povprečje podnevi in ponoči za temperature: podnevi se začnejo ob 8. uri in trajajo do 20. ure.
Za veter, tlak in padavine se povprečja vzamejo od polnoči do polnoči.
6. korak: Končano?
Ne pravzaprav … Kot sem rekel, bi rad končno pripravil senzor hitrosti vetra in smeri vetra, da deluje z ostalimi JAWS.
Moja majhna konstrukcija je visoka približno 4 m. Meteorologi dosežejo hitrost vetra od 10 m visoko. Malo previsoko zame …
Upam, da ste uživali v branju tega!
Adafruit-GFX je razložen tukaj:
MCUFRIEND_kbv.h najdete tukaj:
Več o BMP 120 (enako kot BMP085):
O DHT22:
Priporočena:
Vremenska postaja NaTaLia: Vremenska postaja Arduino s sončno energijo Na pravi poti: 8 korakov (s slikami)
Vremenska postaja NaTaLia: Vremenska postaja na sončni pogon Arduino je ravnala pravilno: Po enem letu uspešnega delovanja na dveh različnih lokacijah delim svoje načrte projektov vremenskih postaj na sončno energijo in razložim, kako se je razvila v sistem, ki lahko resnično preživi dolgo časa obdobja iz sončne energije. Če sledite
Vremenska postaja in senzorska postaja DIY: 7 korakov (s slikami)
Vremenska postaja in senzorska postaja DIY: V tem projektu vam bom pokazal, kako skupaj s senzorsko postajo WiFi ustvariti vremensko postajo. Senzorska postaja meri lokalne podatke o temperaturi in vlažnosti ter jih prek WiFi pošlje vremenski postaji. Vremenska postaja nato prikaže t
Še ena pametna vremenska postaja, vendar : 6 korakov (s slikami)
Še ena pametna vremenska postaja, vendar …: V redu, vem, da je povsod na voljo toliko takih vremenskih postaj, vendar si vzemite nekaj minut, da vidite razliko … Prikazovalniki 2 e-papirja z nizko porabo energije … ampak 10 različnih zasloni! Merilnik pospeška in senzorji temperature / vlažnosti na osnovi ESP32 Wifi upd
Še ena vremenska postaja Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 koraki
Še ena vremenska postaja Arduino (ESP-01 & BMP280 & DHT11 & OneWire): Tu najdete eno ponovitev uporabe OneWire z zelo malo zatiči ESP-01. Naprava, ustvarjena v tem navodilu, se poveže z omrežjem Wi-Fi vašega izbira (morate imeti poverilnice …) Zbira senzorične podatke iz BMP280 in DHT11
Še ena vremenska postaja (Y.A.W.S.): 18 korakov (s slikami)
Še ena vremenska postaja (Y.A.W.S.): Ta projekt je moj pogled na vedno priljubljeno vremensko postajo. Moj temelji na ESP8266, a.96 ” Zaslon OLED in niz senzorjev okolja BME280. Zdi se, da so vremenske postaje zelo priljubljen projekt. Moj se razlikuje od ostalih