Satura rādītājs:

JAWS: Just Another Weather Station: 6 soļi
JAWS: Just Another Weather Station: 6 soļi

Video: JAWS: Just Another Weather Station: 6 soļi

Video: JAWS: Just Another Weather Station: 6 soļi
Video: 🙄 Used Hyundai Accent: what breaks in it? what problems to expect? where to look when buying? 2024, Novembris
Anonim
JAWS: Gatavojam mūsu lietas
JAWS: Gatavojam mūsu lietas
JAWS: Gatavojam mūsu lietas
JAWS: Gatavojam mūsu lietas
JAWS: Gatavojam mūsu lietas
JAWS: Gatavojam mūsu lietas

Izgatavot šādu žokli ir pavisam vienkārši.

Jūs saņemat savus sensorus, metat tos kopā uz dēļiem un sākat izmantot bibliotēkas, kas nāk kopā ar sensoriem.

Sāksim ar programmas iestatīšanu.

Tā kā es runāju holandiešu valodā (dzimtā valoda), visi dati un daudzi mainīgie, kurus izmantoju, ir holandiešu valodā. Tagad jums ir iespēja iemācīties citu valodu …

Ko mēs vēlamies no JAWS?

Vienkārši: mēs vēlamies skatīties ekrānu, kas parāda faktisko laiku, datumu, efemerīdus (saule uz augšu, saule lejup, dienas ilgums un astronomiskais pusdienlaiks).

Papildus tam būtu jauki redzēt iekšējo un ārējo temperatūru, relatīvo mitrumu un rasas punktu, kā arī gaisa spiedienu.

Lai atvieglotu lietas, es izmantoju temperatūru Centigrades un spiedienu hPa (= mBar). Tātad nevienam nav jāaprēķina no Fārenheita vai mārciņas par kvadrātmetru…

Pašlaik ir pieejami tikai šie dati…

Nākotnē es pievienošu gaisa ātrumu, vēja virzienu un nokrišņus.

Ideja ir tāda, ka man būs ārēja laika apstākļu būda, un visi dati tiks nosūtīti uz 2,4 GHz uz iekštelpu bloku.

3. solis: JAWS: programmatūra

JAWS: programmatūra
JAWS: programmatūra

Lai piekļūtu mūsu programmatūrai, lielāko daļu var atrast esošajās bibliotēkās.

JAWS es izmantoju šādus:

  1. SPI.h: sākotnējā bibliotēka no Arduino 4 vadu protokolam. To izmanto TFT vairogam
  2. Adafruit_GFX.h un MCUfriend_kbv.h: abi tiek izmantoti grafikai un ekrānam. Tas ļauj ļoti viegli rakstīt tekstu, zīmēt līnijas un lodziņus TFT ekrānā.
  3. dht.h: mūsu DHT: šo bibliotēku var izmantot DHT11 (zilā) un DHT22.
  4. Wire.h: Arduino bibliotēka, lai atvieglotu sērijveida saziņu. To izmanto pulkstenim un SD kartei.
  5. SD.h: Atkal Arduino oriģināls, lai rakstītu un lasītu no SD kartes.
  6. TimeLord.h: šo es izmantoju, lai saglabātu laiku, aprēķinātu saulrietu vai saullēktu no jebkuras ģeogrāfiskās atrašanās vietas. Tas arī iestatīja pulksteni DST (vasarā vai ziemā).

Sāksim ar pulksteni.

Nolasot pulksteni, jums ir nepieciešami mainīgie, ko iegūstat no dažādiem pulksteņa moduļa reģistriem. Ja mēs tos veidojam vairāk nekā tikai skaitļus, mēs varam izmantot šādas rindas:

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

const char* mēneši = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" "," 12 "};

n

Izmantojot TimeLord, mēs to iegūstam kā datus par manu vietu: (Lokerena, Beļģija)

Laika kungs Lokerens; iestatot to Lokeren. Position (51.096, 3.99); garums un platums

Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minūtes

Lokeren. DstRules (3, 4, 10, 4, 60); DST no 3. mēneša, 4. nedēļas līdz 10. mēneša, 4. nedēļas, +60 minūtes

int jaar = gads +2000;

baits sunRise = {0, 0, 12, mēnesis, mēnesis, gads}; sāciet aprēķināt katru dienu no 00 stundām

baits sunSet = {0, 0, 12, mēnesis, mēnesis, gads}; tāds pats kā iepriekš

baits maan = {0, 0, 12, mēnesis, mēnesis, gads}; tāds pats kā iepriekš

pludiņa fāze;

No šejienes tiek veikti aprēķini.

fāze = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (sunSet);

Lokeren. DST (saullēkts);

Lokeren. DST (saulriets);

int ZonOpUur = saullēkts [tl_stunda];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Šis ir piemērs tam, kā TimeLord tiek aprēķinātas lietas. Izmantojot šo bibliotēku, jūs iegūstat (diezgan) precīzus saulrieta un saullēkta laikus.

Beigās es ievietošu visu programmu ar šo pamācību. Tas ir diezgan taisni.

4. solis: vairāk programmatūras…

Vairāk programmatūras…
Vairāk programmatūras…
Vairāk programmatūras…
Vairāk programmatūras…

Vairāk par programmatūru…

Programmatūrā ir trīs lielas daļas.

1) Mēs iegūstam neapstrādātus datus no dažādiem sensoriem: no mūsu pulksteņa, DHT un BMP180. Tas ir mūsu ieguldījums.

2) Mums ir jātulko dati uz (1 un 0) kaut ko jēdzīgu. Šim nolūkam mēs izmantojam mūsu bibliotēkas un mainīgos.

3) Mēs vēlamies lasīt un saglabāt mūsu datus. Tā ir mūsu produkcija. Tūlītējai lietošanai mums ir mūsu LCD-TFT, lai vēlāk varētu izmantot mūsu saglabātos datus mūsu SD kartē.

Savā ciklā () mēs iegūstam daudz "GOTO": mēs pārietam uz dažādām bibliotēkām. Mēs iegūstam savus datus no viena no sensoriem, iegūstam datus un glabājam tos (galvenokārt) peldošā datu mainīgajā. Mēs mainīgi izvēlamies mainīgo nosaukumus, nevis ar x vai y, bet ar tādiem nosaukumiem kā "tempOutside" vai "pressure" vai tamlīdzīgi. Lai tie būtu lasāmāki. Labi, tas padara to mazliet smagāku par mainīgo izmantošanu un vairāk atmiņas.

Šeit parādās triks: padarot mūsu mainīgos redzamus ekrānā, tas vienkārši novieto tos pareizajā pozīcijā.

Abām šeit izmantotajām bibliotēkām - Adafruit_GFX.h un MCUfriend_kbv.h - ir izveidots jauks darbs, lai izmantotu krāsas, fontus un iespēju zīmēt līnijas. Vispirms es izmantoju 12864 ekrānu ar šīm bibliotēkām, vēlāk to mainīju tft ekrānā. Viss, kas man bija jādara, bija ievietot kastes, taisnstūrus un līnijas un pārliecināties, ka dati ir pareizajā vietā. Šim nolūkam varat izmantot setCursor un tft. Write kā komandu. Viegli to dara. Krāsas var iestatīt arī kā mainīgos, šajās bibliotēkās ir daudz piemēru, kā tās izvēlēties.

Lai rakstītu uz SD kartes, mums ir nepieciešami arī daži vienkārši triki.

Piemēram, mēs lasām savus datus no pulksteņa kā atsevišķas stundas, minūtes un sekundes. Temperatūra ir DHT.temperatūra un DHTT.temperatūra, lai atšķirtu iekštelpu vai āra temperatūru.

Kad mēs vēlamies tos ievietot SD kartē, mēs izmantojam virkni: katru cilpu sākam kā tukšu virkni:

mainīga virkne = ""; Tad mēs varam to aizpildīt ar visiem mūsu datiem:

mainīga virkne = mainīga virkne + stundas + ":" + minūtes + ":" + sekundes. Tādējādi virkne ir līdzīga 12:00:00.

Tā kā mēs to rakstām kā TXT failu (skatiet SD.h vietnē Arduino.cc), nākamajiem mainīgajiem mēs pievienojam cilni, tāpēc to ir vieglāk importēt programmā Excel.

Tātad mēs nonākam pie: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.

Un tā tālāk.

5. darbība: daži ekrānuzņēmumi…

Daži ekrānuzņēmumi…
Daži ekrānuzņēmumi…
Daži ekrānuzņēmumi…
Daži ekrānuzņēmumi…
Daži ekrānuzņēmumi…
Daži ekrānuzņēmumi…

Lai pārliecinātos, ka mēs nepārslogojam savas datu kopas, es rakstīju datus tikai reizi 10 minūtēs. Dodot mums 144 ierakstus dienā. Es domāju, ka nav slikti.

Un, protams, jūs varat turpināt apstrādāt šos datus: varat noteikt vidējos rādītājus, meklēt maksimālos un minimālos, salīdzināt ar iepriekšējiem gadiem …

Met biroji parasti aprēķina dienas un nakts vidējo temperatūru: diena sākas pulksten 8:00 un ilgst līdz 20:00.

Attiecībā uz vēju, spiedienu un nokrišņiem vidējie rādītāji tiek ņemti no pusnakts līdz pusnaktij.

6. darbība: Vai esat pabeidzis?

Pabeigts?
Pabeigts?
Pabeigts?
Pabeigts?

Nav īsti … Kā jau teicu, es vēlētos beidzot panākt, lai vēja ātruma un vēja virziena sensors darbotos kopā ar pārējiem JAWS.

Mazā konstrukcija, ko es izveidoju, ir aptuveni 4 m augsta. Meteorologs iegūst vēja ātrumu no 10 m augsta. Man mazliet par augstu…

Es ceru, ka jums patika šo lasīt!

Adafruit-GFX ir paskaidrots šeit:

MCUFRIEND_kbv.h ir atrodams šeit:

Vairāk par BMP 120 (tāpat kā BMP085):

Par DHT22:

Ieteicams: