Obsah:

JAWS: Just Another Weather Station: 6 krokov
JAWS: Just Another Weather Station: 6 krokov

Video: JAWS: Just Another Weather Station: 6 krokov

Video: JAWS: Just Another Weather Station: 6 krokov
Video: Best Pride FC knockouts (brutal) 2024, November
Anonim
Čeľuste: Príprava našich vecí
Čeľuste: Príprava našich vecí
Čeľuste: Príprava našich vecí
Čeľuste: Príprava našich vecí
Čeľuste: Príprava našich vecí
Čeľuste: Príprava našich vecí

Je úplne jednoduché vyrobiť taký JAWS.

Dostanete svoje senzory, hodíte ich dohromady na dosky a začnete používať knižnice, ktoré sú súčasťou senzorov.

Začnime s nastavením programu.

Keďže hovorím po holandsky (rodený hovoriaci), všetky údaje a veľa premenných, ktoré používam, sú v holandčine. Teraz máte šancu naučiť sa iný jazyk …

Čo chceme od JAWS?

Jednoduché: chceme sledovať obrazovku, ktorá nám ukazuje skutočný čas, dátum, efemeridy (slnko hore, slnko dole, dĺžka dňa a astronomické poludnie).

Okrem toho by bolo pekné vidieť vnútornú a vonkajšiu teplotu, relatívnu vlhkosť a rosný bod a tlak vzduchu.

Aby to bolo jednoduchšie, na teplotu používam centigrady a na tlak hPa (= mBar). Nikto teda nemusí počítať späť z Fahrenheita alebo libier na štvorec …

V súčasnosti sú k dispozícii iba tieto údaje …

V budúcnosti pridám rýchlosť vzduchu, smer vetra a zrážky.

Ide o to, že budem mať chatu vonku a všetky údaje budú do vnútornej jednotky odoslané cez 2,4 GHz.

Krok 3: JAWS: Softvér

JAWS: Softvér
JAWS: Softvér

Aby sme sa dostali k nášmu softvéru, väčšinu nájdete v existujúcich knižniciach.

V JAWS používam nasledujúce:

  1. SPI.h: Pôvodná knižnica od Arduina pre 4 -vodičový protokol. Používa sa na štít TFT
  2. Adafruit_GFX.h a MCUfriend_kbv.h: obidva sa používajú na grafiku a obrazovku. Vďaka tomu je veľmi jednoduché písať text, kresliť čiary a polia na obrazovku TFT.
  3. dht.h: pre naše DHT: túto knižnicu je možné použiť pre DHT11 (modrý) a DHT22.
  4. Wire.h: knižnica Arduino na uľahčenie sériovej komunikácie. Používa sa na hodiny a kartu SD.
  5. SD.h: Opäť originál Arduino, na zápis a čítanie z karty SD.
  6. TimeLord.h: tento používam na udržiavanie času, výpočet západu alebo východu slnka z akejkoľvek geografickej polohy. Nastavil tiež hodiny na letný alebo zimný čas.

Začnime s hodinami.

Pri čítaní hodín potrebujete premenné, ktoré získate z rôznych registrov v hodinovom module. Keď z nich urobíme viac než len čísla, môžeme použiť nasledujúce riadky:

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

const char* mesiace = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

S TimeLordom to získavame ako údaje pre moje miesto: (Lokeren, Belgicko)

TimeLord Lokeren; nastavenie Lokeren. Position (51,096, 3,99); zemepisná dĺžka a šírka

Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 minút

Lokeren. DstRules (3, 4, 10, 4, 60); DST od 3. mesiaca, 4. týždňa do 10. mesiaca, 4. týždňa, +60 minút

int jaar = rok +2000;

byte sunRise = {0, 0, 12, mesiac, mesiac, rok}; začnite počítať každý deň od 00 hodín

byte sunSet = {0, 0, 12, mesiac, mesiac, rok}; rovnaké ako vyššie

bajt = {0, 0, 12, deň v mesiaci, mesiac, rok}; rovnaké ako vyššie

plávajúca fáza;

Odtiaľ sa vykonávajú výpočty.

fáza = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (západ slnka);

Lokeren. DST (sunRise);

Lokeren. DST (západ slnka);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = západ slnka [tl_hodina];

int ZonOnMin = západ slnka [tl_minúta];

Toto je príklad toho, ako sa veci počítajú v TimeLord. S touto knižnicou získate (celkom) presné časy západu a východu slnka.

Na konci uvediem celý program s týmto návodom. Je to celkom priamočiare.

Krok 4: Viac softvéru…

Viac softvéru…
Viac softvéru…
Viac softvéru…
Viac softvéru…

Viac o softvéri…

V softvéri máme tri veľké časti.

1) Získavame prvotné údaje z našich rôznych senzorov: z našich hodín, DHT a BMP180. To je náš vstup.

2) Údaje musíme preložiť do (1 a 0) na niečo, čo má zmysel. Na tento účel používame naše knižnice a premenné.

3) Chceme čítať a uchovávať naše údaje. To je náš výstup. Na okamžité použitie máme LCD-TFT, na neskoršie použitie máme uložené údaje na našej SD karte.

V našej slučke () dostaneme veľa „GOTO“: skočíme do rôznych knižníc. Naše údaje získavame z jedného zo senzorov, získavame údaje a ukladáme ich (väčšinou) v pohyblivej dátovej premennej. Názvy premenných vyberáme múdro, nie pomocou x alebo y, ale názvov ako „tempOutside“alebo „tlak“alebo podobných vecí. Aby boli čitateľnejšie. OK, vďaka tomu je používanie premenných o niečo ťažšie a náročnejšie na pamäť.

Tu prichádza trik: pri zviditeľňovaní našich premenných na obrazovke ich stačí umiestniť na správne miesto.

Dve tu použité knižnice Adafruit_GFX.h a MCUfriend_kbv.h majú peknú pracovnú sadu na používanie farieb, písiem a schopnosti kresliť čiary. Najprv som s týmito knižnicami použil obrazovku 12864- neskôr som to zmenil na obrazovke tft-screen. Jediné, čo som musel urobiť, bolo umiestniť boxy, obdĺžniky a čiary a uistiť sa, že údaje vyšli na správnom mieste. Na to môžete použiť príkaz setCursor a tft. Write ako. Ľahko to zvládne. Farby je možné nastaviť aj ako premenné. V týchto knižniciach je veľa príkladov, ako ich vyberať.

Na zápis na kartu SD potrebujeme aj niekoľko jednoduchých trikov.

Naše údaje napríklad čítame z hodín ako oddelené hodiny, minúty a sekundy. Na rozlíšenie medzi vnútornou a vonkajšou teplotou sú teploty DHT.teplota a DHTT.teplota.

Keď ich chceme vložiť na kartu SD, použijeme reťazec: každú slučku začíname ako prázdny reťazec:

variablestring = ""; Potom ich môžeme vyplniť všetkými našimi údajmi:

variablestring = variablestring + hodiny + ":" + minúty + ":" + sekundy. Reťazec tak bude mať hodnotu 12:00:00.

Pretože ho píšeme ako súbor TXT (pozri SD.h na Arduino.cc), pre ďalšie premenné pridáme záložku, takže je jednoduchšie ho importovať do Excelu.

Prejdeme teda k: variablestring = variablestring + "\ t" + DHT.teplota + "\ t" + DHTT. Teplota.

A tak ďalej.

Krok 5: Niektoré snímky obrazovky …

Niektoré screenshoty…
Niektoré screenshoty…
Niektoré screenshoty…
Niektoré screenshoty…
Niektoré screenshoty…
Niektoré screenshoty…

Aby sme si boli istí, že „nepreťažujeme“naše súbory údajov, údaje som písal iba raz za 10 minút. Dáva nám 144 záznamov denne. Nie je to zlé, myslím si.

A samozrejme, môžete pokračovať v spracovaní týchto údajov: môžete vytvárať priemery, môžete hľadať maximá a minimá, môžete ich porovnávať s minulými rokmi …

Kancelárie, ktoré sa stretli, zvyčajne robia priemery vo dne aj v noci, pokiaľ ide o teploty: cez deň sa začína o 8:00 a trvá do 20:00.

Priemerné hodnoty vetra, tlaku a zrážok sa berú od polnoci do polnoci.

Krok 6: Hotovo?

Hotové?
Hotové?
Hotové?
Hotové?

Nie celkom … Ako som povedal, chcel by som konečne začať pracovať so zvyškom JAWS snímačom rýchlosti vetra a smeru vetra.

Malá konštrukcia, ktorú som vyrobil, je vysoká asi 4 m. Meteorológ dosahuje rýchlosť vetra od 10 m. Na mňa príliš vysoké …

Dúfam, že ste si to užili!

Adafruit-GFX je vysvetlený tu:

MCUFRIEND_kbv.h nájdete tu:

Viac o BMP 120 (rovnaké ako BMP085):

O DHT22:

Odporúča: