Obsah:
Video: JAWS: Just Another Weather Station: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:58
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
Aby sme sa dostali k nášmu softvéru, väčšinu nájdete v existujúcich knižniciach.
V JAWS používam nasledujúce:
- SPI.h: Pôvodná knižnica od Arduina pre 4 -vodičový protokol. Používa sa na štít TFT
- 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.
- dht.h: pre naše DHT: túto knižnicu je možné použiť pre DHT11 (modrý) a DHT22.
- Wire.h: knižnica Arduino na uľahčenie sériovej komunikácie. Používa sa na hodiny a kartu SD.
- SD.h: Opäť originál Arduino, na zápis a čítanie z karty SD.
- 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 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 …
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?
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:
DIY Weather Assistant: 6 krokov
DIY Weather Assistant: Naposledy som použil ESP32 na výrobu meteorologickej vysielacej stanice, ktorá dokáže vysielať aktuálne počasie. Ak máte záujem, môžete si skontrolovať predchádzajúci návod. Teraz chcem vytvoriť aktualizovanú verziu, že určím mesto, ktoré skontroluje
YADPF (YET Another Digital Picture Frame): 7 krokov (s obrázkami)
YADPF (YET Another Digital Picture Frame): Viem, že to nie je novinka, viem, niektoré z týchto projektov som tu už videl, ale vždy som chcel vytvoriť vlastný digitálny rám obrazu. Všetky rámy obrazov, ktoré som videl, sú pekné, ale hľadal som niečo iné, hľadám skutočne pekný rám
Ako urobiť inteligentné domy pomocou ES8266 v Just Rupees 450: 6 krokov
Ako si vyrobiť inteligentný domov pomocou ES8266 na Just Rupees 450: Tu je kompletný návod na výrobu CHYTRÝCH DOMOV pomocou NodMCU ESP8266. toto je veľmi ľahký a najlepší spôsob pre začiatočníkov. Začiatočník sa môže začať učiť o ESP8266 NodMCU týmto tutoriálom
Another Pi on the Wall: 16 Steps (with Pictures)
Ďalšie Pi na stene: Tento návod s pokynmi vám ukáže, ako vytvoriť NAS (Network-Attached Storage) pomocou Raspberry Pi (RasPi) a dvoch pevných diskov. Tento tutoriál vám má poskytnúť podrobný návod, ako nainštalovať RasPi, dva pevné disky a celý zdroj napájania
Zistite, ako nastaviť modul Wi -Fi ESP8266 pomocou Just Arduino IDE: 4 kroky
Naučte sa nastaviť Wifi modul ESP8266 pomocou iba Arduino IDE: V tomto návode vám ukážem, ako nastaviť modul ESP8266 iba pomocou Arduino IDE, nie externého prevodníka TTL