Obsah:
Video: JAWS: Just Another Weather Station: 6 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:21
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
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í:
- SPI.h: Originální knihovna od Arduina pro 4vodičový protokol. Používá se pro štít TFT
- 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.
- dht.h: pro naše DHT: tuto knihovnu lze použít pro DHT11 (modrá) a DHT22.
- Wire.h: knihovna Arduino pro snadnou sériovou komunikaci. Používá se pro hodiny a kartu SD.
- SD.h: Opět originál Arduina pro zápis a čtení z karty SD.
- 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 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 …
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?
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:
Just Another ATtiny85 Retro Gaming Console: 4 kroky
Just Another ATtiny85 Retro Gaming Console: Malé retro konzole podobné nastavení založené na ATtiny85 x 0,96 OLED pro hraní vesmírných vetřelců, Tetris atd
Just Line, Just Light! (Typ 1): 19 kroků
Just Line, Just Light! (Typ 1): Jedná se o dílo vyjadřující světlo na akrylových deskách vyrytých vzory perokresby. Harmonicky vyjadřuje barvy a vzory různých LED. Tento projekt byl realizován s motivy od Arouta Meijera „Díky pro planety " z
Just Another Antenna: 4 Steps
Jen další anténa: Rozhodl jsem se tedy vytvořit anténu ze šrotu, který mám kolem domu. Cílem bylo nekupovat žádný materiál, pokud je to vůbec možné. Vím, že obyčejný člověk by tu neměl tolik harampádí, ale udělal jsem to, a tak jsem se vyzval
Jak vytvořit chytré domy pomocí ES8266 v Just Rupees 450: 6 kroků
Jak vytvořit chytré domy pomocí ES8266 na Just Rupees 450: Zde je kompletní návod pro vytváření SMART HOMES pomocí NodMCU ESP8266. toto je velmi snadný a nejlepší způsob pro začátečníky. Začátečník se může začít učit o ESP8266 NodMCU tímto tutoriálem
YACS (Yet Another Charging Station): 6 kroků (s obrázky)
YACS (Yet Another Charging Station): Nabíjecí stanice pro vaše gadgety. Dodávky: Gumové průchodky A box Nástroje: Vrtáky a bity