Obsah:

JAWS: Just Another Weather Station: 6 kroků
JAWS: Just Another Weather Station: 6 kroků

Video: JAWS: Just Another Weather Station: 6 kroků

Video: JAWS: Just Another Weather Station: 6 kroků
Video: Pracuji v Soukromém muzeu pro bohaté a slavné. Hororové příběhy. Hrůza. 2024, Listopad
Anonim
JAWS: Příprava našich věcí
JAWS: Příprava našich věcí
JAWS: Příprava našich věcí
JAWS: Příprava našich věcí
ČELISTI: Připravujeme naše věci
ČELISTI: Připravujeme naše věci

Je docela jednoduché takový JAWS vyrobit.

Získáte senzory, hodíte je dohromady na desky a začnete používat knihovny, které jsou dodávány se senzory.

Začněme s nastavením programu.

Protože mluvím holandsky (rodilý mluvčí), všechna data a velká část proměnných, které používám, jsou v holandštině. Nyní tedy máte šanci naučit se další jazyk …

Co chceme od JAWS?

Snadné: chceme sledovat obrazovku, která nám ukazuje skutečný čas, datum, efemeridy (slunce, slunce, délka dne a astronomické poledne).

Kromě toho by bylo hezké vidět vnitřní a vnější teplotu, relativní vlhkost a rosný bod a tlak vzduchu.

Aby to bylo jednodušší, používám centigrady pro teplotu a hPa (= mBar) pro tlak. Nikdo tedy nemusí počítat zpět z Fahrenheita nebo liber na čtvereční stopu…

V současné době jsou k dispozici pouze tato data …

V budoucnu přidám rychlost vzduchu, směr větru a srážky.

Myšlenka je taková, že budu mít venkovní boudu a všechna data budou odeslána přes 2,4 GHz do vnitřní jednotky.

Krok 3: JAWS: Software

ČELISTI: Software
ČELISTI: Software

Abychom se dostali k našemu softwaru, většinu lze najít s existujícími knihovnami.

V JAWS používám následující:

  1. SPI.h: Originální knihovna od Arduina pro 4vodičový protokol. Používá se pro štít TFT
  2. Adafruit_GFX.h a MCUfriend_kbv.h: oba použité pro grafiku a obrazovku. Díky tomu je velmi snadné psát text, kreslit čáry a políčka na obrazovku TFT.
  3. dht.h: pro naše DHT: tuto knihovnu lze použít pro DHT11 (modrá) a DHT22.
  4. Wire.h: knihovna Arduino pro snadnou sériovou komunikaci. Používá se pro hodiny a kartu SD.
  5. SD.h: Opět originál Arduina pro zápis a čtení z karty SD.
  6. TimeLord.h: ten, který používám pro udržení času, výpočet západu slunce nebo východu slunce z jakékoli zeměpisné polohy. Rovněž nastavil hodiny pro letní čas (letní nebo zimní čas).

Začněme s hodinami.

Při čtení hodin potřebujete proměnné, které získáte z různých registrů uvnitř hodinového modulu. Když z nich uděláme více než jen čísla, můžeme použít následující řádky:

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

konstantní* měsíce = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

S TimeLordem to získáváme jako data pro mé místo: (Lokeren, Belgie)

TimeLord Lokeren; nastavení Lokeren. Position (51,096, 3,99); zeměpisná délka a šířka

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

Pravidla Lokeren. DstR (3, 4, 10, 4, 60); DST od 3. měsíce, 4. týdne do 10. měsíce, 4. týden, +60 minut

int jaar = rok +2000;

byte sunRise = {0, 0, 12, měsíc, měsíc, rok}; začněte počítat každý den od 00 hodin

byte sunSet = {0, 0, 12, měsíc, měsíc, rok}; stejné jako výše

byte maan = {0, 0, 12, měsíc, měsíc, rok}; stejné jako výše

plovoucí fáze;

Odtud se provádějí výpočty.

fáze = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (sunSet);

Lokeren. DST (sunRise);

Lokeren. DST (západ slunce);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minuta];

Toto je příklad toho, jak se věci počítají v TimeLord. S touto knihovnou získáte (docela) přesné časy západu a východu slunce.

Na konci vložím celý program s tímto Instructable. Je to docela přímočaré.

Krok 4: Více softwaru…

Více softwaru…
Více softwaru…
Více softwaru…
Více softwaru…

Více o softwaru…

V softwaru máme tři velké části.

1) Získáváme prvotní data z různých senzorů: z hodin, DHT a BMP180. To je náš vstup.

2) Data musíme převést na (1 a 0) na něco, co má smysl. K tomu používáme naše knihovny a proměnné.

3) Chceme číst a ukládat naše data. To je náš výstup. K okamžitému použití máme LCD-TFT, pro pozdější použití máme uložená data na naší SD kartě.

V naší smyčce () získáme spoustu „GOTO“: skočíme do různých knihoven. Získáváme data z jednoho ze senzorů, získáváme je a ukládáme je (většinou) v plovoucí datové proměnné. Názvy proměnných vybíráme moudře, nikoli pomocí x nebo y, ale podle názvů jako „tempOutside“nebo „tlak“nebo podobně. Aby byly čitelnější. Dobře, díky tomu je použití proměnných trochu náročnější a paměť náročnější.

Zde přichází trik: když zviditelňujeme naše proměnné na obrazovce, pouze je umisťujeme na správné místo.

Dvě zde použité knihovny, Adafruit_GFX.h a MCUfriend_kbv.h, mají pěknou pracovní sadu pro použití barev, písem a schopnosti kreslit čáry. Nejprve jsem s těmito knihovnami použil obrazovku 12864, později jsem to změnil na obrazovce tft. Jediné, co jsem musel udělat, bylo umístit krabice, obdélníky a čáry a ujistit se, že data vyšla na správném místě. K tomu můžete použít příkaz setCursor a tft. Write jako. Snadno. Barvy lze také nastavit jako proměnné, v těchto knihovnách je mnoho příkladů, jak je vybrat.

Pro zápis na kartu SD potřebujeme také několik jednoduchých triků.

Naše data například čteme z hodin jako oddělené hodiny, minuty a sekundy. Teploty jsou DHT. Teplota a DHTT. Teplota, pro rozlišení mezi vnitřní a venkovní.

Když je chceme vložit na SD kartu, použijeme řetězec: každou smyčku začínáme jako prázdný řetězec:

variablestring = ""; Poté jej můžeme vyplnit všemi našimi údaji:

variablestring = variablestring + hodiny + ":" + minuty + ":" + sekundy. To dává řetězci jako 12:00:00.

Protože jej zapisujeme jako soubor TXT (viz SD.h na Arduino.cc), pro další proměnné přidáme záložku, takže je snazší jej importovat do Excelu.

Dostáváme se tedy k: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.

A tak dále.

Krok 5: Některé snímky obrazovky …

Nějaké screenshoty…
Nějaké screenshoty…
Nějaké screenshoty…
Nějaké screenshoty…
Nějaké screenshoty…
Nějaké screenshoty…

Abychom si byli jisti, že své datové sady „nepřetěžujeme“, psal jsem data pouze jednou za 10 minut. Dává nám 144 záznamů denně. Myslím, že to není špatné.

A samozřejmě můžete pokračovat ve zpracování těchto dat: můžete dělat průměry, můžete hledat maxima a minima, můžete porovnávat s minulými roky…

Met kanceláře obvykle dělají průměry ve dne i v noci, pokud jde o teploty: denní doba začíná v 8:00 a trvá do 20:00.

U větru, tlaku a srážek se průměry berou od půlnoci do půlnoci.

Krok 6: Hotovo?

Hotovo?
Hotovo?
Hotovo?
Hotovo?

Ne tak úplně … Jak jsem řekl, rád bych konečně nechal pracovat snímač rychlosti a směru větru se zbytkem JAWS.

Malá konstrukce, kterou jsem vyrobil, je vysoká asi 4 m. Meteorolog zaznamenává rychlost větru od 10 metrů. Na mě trochu moc…

Doufám, že jste si čtení užili!

Adafruit-GFX je vysvětlen zde:

MCUFRIEND_kbv.h najdete zde:

Více o BMP 120 (stejné jako BMP085):

O DHT22:

Doporučuje: