Cuprins:
- Pasul 3: JAWS: Software
- Pasul 4: Mai multe programe …
- Pasul 5: Unele capturi de ecran …
- Pasul 6: Terminat?
Video: FALSURI: Doar o altă stație meteo: 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Este destul de simplu să faci un astfel de JAWS.
Îți iei senzorii, îi arunci împreună pe plăci și începi să folosești bibliotecile care vin împreună cu senzorii.
Să începem cu configurarea programului.
Întrucât vorbesc olandeză (vorbitor nativ), toate datele și multe dintre variabilele pe care le folosesc sunt în olandeză. Deci, acum aveți șansa de a învăța o altă limbă …
Ce vrem de la JAWS?
Ușor: vrem să urmărim un ecran care ne arată ora, data, efemeridele reale (soare sus, soare apus, lungimea zilei și amiaza astronomică).
Apoi, ar fi bine să vedem temperatura interioară și exterioară, umiditatea relativă și punctul de rouă și presiunea aerului.
Pentru a ușura lucrurile, folosesc centigradi pentru temperatură și hPa (= mBar) pentru presiune. Deci nimeni nu trebuie să calculeze înapoi din Fahrenheit sau lire sterline pe pătrat …
În acest moment, doar aceste date sunt disponibile …
În viitor, voi adăuga viteza aerului, direcția vântului și precipitațiile.
Ideea este că voi avea o cabană meteorologică exterioară și toate datele vor fi trimise pe unitatea interioară de peste 2,4 GHz.
Pasul 3: JAWS: Software
Pentru a accesa software-ul nostru, majoritatea pot fi găsite cu bibliotecile existente.
În JAWS le folosesc pe următoarele:
- SPI.h: Biblioteca originală de la Arduino pentru protocolul cu 4 fire. Ea este folosită pentru scutul TFT
- Adafruit_GFX.h și MCUfriend_kbv.h: ambele utilizate pentru grafică și ecran. Acestea facilitează scrierea textului, desenarea liniilor și a casetelor pe ecranul TFT.
- dht.h: pentru DHT-urile noastre: această bibliotecă poate fi utilizată pentru DHT11 (cea albastră) și DHT22.
- Wire.h: biblioteca Arduino pentru a facilita comunicarea în serie. Este folosit pentru ceas și cardul SD.
- SD.h: Din nou un original Arduino, pentru a scrie și citi de pe cardul SD.
- TimeLord.h: acesta îl folosesc pentru a păstra timpul, pentru a calcula apusul soarelui sau răsăritul soarelui din orice poziție geografică. De asemenea, setează ceasul pentru ora de vară (vară sau iarnă).
Să începem cu ceasul.
Când citiți un ceas, aveți nevoie de variabilele pe care le obțineți din diferitele registre din interiorul modulului de ceas. Când le facem mai mult decât numere, putem folosi următoarele rânduri:
const int DS1307 = 0x68; const char * days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char * months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};
n
Cu TimeLord, obținem acest lucru ca date, pentru locul meu: (Lokeren, Belgia)
TimeLord Lokeren; configurarea Lokeren. Position (51.096, 3.99); longitudine și latitudine
Lokeren. TimeZone (+ 1 * 60); GMT +1 = +1 x 60 de minute
Lokeren. DstRules (3, 4, 10, 4, 60); DST de la a 3-a lună, a 4-a săptămână la a 10-a lună, a 4-a săptămână, + 60 de minute
int jaar = anul +2000;
octet sunRise = {0, 0, 12, lună, lună, an}; începe calculul în fiecare zi de la 00 ore
octet sunSet = {0, 0, 12, lună, lună, an}; la fel ca mai sus
octet maan = {0, 0, 12, lună, lună, an}; la fel ca mai sus
faza de plutire;
De aici se fac calculele.
phase = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (sunSet);
Lokeren. DST (sunRise);
Lokeren. DST (sunSet);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Acesta este exemplul modului în care lucrurile sunt calculate în TimeLord. Cu această bibliotecă, veți obține ore (destul de) precise de apus și răsărit.
La final, voi pune întregul program cu acest instructabil. Este destul de simplu.
Pasul 4: Mai multe programe …
Mai multe despre software …
Avem trei părți mari în software.
1) Obținem câteva date brute de la diferiții noștri senzori: de la ceasul nostru, DHT-uri și BMP180. Aceasta este opinia noastră.
2) Trebuie să traducem datele în (1 și 0) în ceva care are sens. Pentru aceasta, folosim bibliotecile și variabilele noastre.
3) Vrem să citim și să stocăm datele noastre. Acesta este rezultatul nostru. Pentru utilizare imediată, avem LCD-TFT, pentru o utilizare ulterioară, avem datele salvate pe cardul nostru SD.
În bucla noastră (), obținem o mulțime de „GOTO”: sărim la diferite biblioteci. Obținem datele de la unul dintre senzori, le obținem și le stocăm într-o variabilă de date plutitoare. Ne alegem numele variabilelor cu înțelepciune, nu cu x sau y, ci cu nume precum „tempOutside” sau „pressure” sau altele de genul acesta. Pentru a le face mai lizibile. OK, acest lucru îl face puțin mai greu în ceea ce privește utilizarea variabilelor și consumă mai multă memorie.
Aici vine trucul: atunci când facem variabilele noastre vizibile pe ecran, este doar plasarea lor în poziția corectă.
Cele două biblioteci utilizate aici, Adafruit_GFX.h și MCUfriend_kbv.h au un set de lucru frumos pentru a utiliza culori, fonturi și capacitatea de a desena linii. Într-o primă instanță, am folosit un ecran 12864 cu aceste biblioteci, ulterior l-am schimbat în ecranul tft. Tot ce trebuia să fac este să plasez cutii, dreptunghiuri și linii și să mă asigur că datele au ieșit la locul potrivit. Pentru aceasta, puteți utiliza setCursor și tft. Write ca comandă. Ușor o face. Culorile pot fi setate și ca variabile, există multe exemple în acele biblioteci cum să le alegeți.
Pentru a scrie pe cardul SD, avem nevoie și de câteva trucuri simple.
De exemplu, ne citim datele din ceas ca ore, minute și secunde separate. Temperaturile sunt temperatura DHT și temperatura DHTT, pentru a face diferența între interior sau exterior.
Când vrem să le punem pe cardul SD, folosim un șir: începem fiecare buclă ca un șir gol:
variablestring = ""; Apoi îl putem completa cu toate datele noastre:
variablestring = variablestring + ore + ":" + minute + ":" + secunde. Acest lucru oferă șirul ca 12:00:00.
Deoarece îl scriem ca fișier TXT (consultați SD.h pe Arduino.cc), pentru următoarele variabile adăugăm o filă, deci este mai ușor să îl importăm în Excel.
Așa că ajungem la: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Si asa mai departe.
Pasul 5: Unele capturi de ecran …
Pentru a fi siguri că nu „supraîncărcăm” seturile noastre de date, am scris date doar o dată la 10 minute. Oferindu-ne 144 de intrări pe zi. Nu este rău, cred.
Și, desigur, puteți continua să prelucrați aceste date: puteți face medii, puteți căuta maxime și minime, puteți compara cu anii trecuți …
Birourile Met fac de obicei medii de zi și noapte, pentru temperaturi: ziua începe la 8 dimineața și merge până la 8 PM.
Pentru vânt, presiune și precipitații, mediile sunt luate de la miezul nopții până la miezul nopții.
Pasul 6: Terminat?
Nu chiar … După cum ți-am spus, aș vrea să obțin în cele din urmă senzorul de viteză și direcție a vântului care lucrează cu restul JAWS.
Construcția mică pe care am făcut-o are o înălțime de aproximativ 4m. Meteorologul obține viteza vântului de la 10m înălțime. Un pic prea sus pentru mine …
Sper că ți-a plăcut să citești asta!
Adafruit-GFX este explicat aici:
MCUFRIEND_kbv.h se găsește aici:
Mai multe despre BMP 120 (la fel ca BMP085):
Despre DHT22:
Recomandat:
Stație meteo DIY și stație senzor WiFi: 7 pași (cu imagini)
Stație meteo DIY și stație senzor WiFi: În acest proiect vă voi arăta cum să creați o stație meteo împreună cu o stație senzor WiFi. Stația senzorului măsoară datele locale de temperatură și umiditate și le trimite, prin WiFi, către stația meteo. Stația meteo afișează apoi t
Încă o altă stație meteo inteligentă, dar : 6 pași (cu imagini)
Încă o altă stație meteo inteligentă, dar …: OK, știu că sunt atât de multe astfel de stații meteo disponibile peste tot, dar ia câteva minute pentru a vedea diferența … Afișaje e-hârtie electronică de putere redusă 2 … dar 10 diferite ecrane! Accelerometru bazat pe ESP32 și senzori de temperatură / umiditate Actualizare Wifi
O altă stație meteo IoT: 8 pași
O altă stație meteo IoT: Următorul a fost un cadou de naștere pentru tata; inspirat de un alt Instructable pe care l-am văzut și intenționat inițial să i se demonstreze ca un kit de auto-construire. Cu toate acestea, când am început să lucrez la acest proiect cu el, am realizat foarte repede că t
O altă stație meteo Arduino (ESP-01 și BMP280 & DHT11 și OneWire): 4 pași
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): Aici puteți găsi o iterație de utilizare a OneWire cu foarte puțini pini ai unui ESP-01. Dispozitivul creat în acest instructable se conectează la rețeaua Wifi a telefonului dvs. alegere (trebuie să aveți acreditările …) Colectează date senzoriale de la un BMP280 și un DHT11
Convertiți (doar despre) orice fișier media în (doar despre) orice alt fișier media gratuit !: 4 pași
Convertiți (doar despre) orice fișier media în (doar despre) orice alt fișier media gratuit! este mai universal, ca.wmv sau.mov. Am căutat nenumărate forumuri și site-uri web și apoi am găsit un program numit