Taula de continguts:
- Pas 3: JAWS: programari
- Pas 4: més programari …
- Pas 5: algunes captures de pantalla …
- Pas 6: Acabat?
Vídeo: Mordasses: només una altra estació meteorològica: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
És molt senzill fer aquest tipus de JAWS.
Obteniu els vostres sensors, els llanceu junts sobre taulers i comenceu a utilitzar les biblioteques que vénen amb els sensors.
Comencem amb la configuració del programa.
Com que parlo neerlandès (parlant nadiu), totes les dades i bona part de les variables que faig servir estan en neerlandès. Ara tens l'oportunitat d'aprendre un altre idioma …
Què volem de JAWS?
Fàcil: volem veure una pantalla que ens mostri l’hora, la data, les efemèrides (sol amunt, amagat, durada del dia i migdia astronòmic).
Al costat, seria bo veure la temperatura interior i exterior, la humitat relativa i el punt de rosada i la pressió de l’aire.
Per facilitar les coses, faig servir centímetres per temperatura i hPa (= mBar) per a pressió. Per tant, ningú ha de tornar a calcular de Fahrenheit ni de lliures per quilòmetre quadrat …
En aquest moment, només aquestes dades estan disponibles …
En el futur, afegiré la velocitat de l’aire, la direcció del vent i les precipitacions.
La idea és que tinc una caseta meteorològica exterior i totes les dades s’enviaran a 2,4 GHz a la unitat interior.
Pas 3: JAWS: programari
Per accedir al nostre programari, la majoria es poden trobar a les biblioteques existents.
A JAWS faig servir els següents:
- SPI.h: la biblioteca original d'Arduino per a protocol de 4 fils. S'utilitza per a l'escut TFT
- Adafruit_GFX.h i MCUfriend_kbv.h: tots dos s’utilitzen per als gràfics i la pantalla. Això fa que sigui molt fàcil escriure text, dibuixar línies i quadres a la pantalla TFT.
- dht.h: per als nostres DHT: aquesta biblioteca es pot utilitzar per DHT11 (el blau) i DHT22.
- Wire.h: la biblioteca Arduino per facilitar la comunicació en sèrie. S'utilitza per al rellotge i la targeta SD.
- SD.h: De nou un original d'Arduino, per escriure i llegir des de la targeta SD.
- TimeLord.h: aquest el faig servir per mantenir el temps, calcular la posta de sol o sortir del sol des de qualsevol posició geogràfica. També va configurar el rellotge per a l'horari d'estiu (estiu o hivern).
Comencem pel rellotge.
En llegir un rellotge, necessiteu les variables que obteniu dels diferents registres del mòdul de rellotge. Quan els fem més que números, podem utilitzar les línies següents:
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
Amb TimeLord, obtenim això com a dades per al meu lloc: (Lokeren, Bèlgica)
TimeLord Lokeren; configurar-lo Lokeren. Position (51.096, 3.99); longitud i latitud
Lokeren. TimeZone (+ 1 * 60); GMT +1 = +1 x 60 minuts
Lokeren. DstRules (3, 4, 10, 4, 60); DST del 3er mes, la 4a setmana al 10è mes, la 4a setmana, + 60 minuts
int jaar = any +2000;
byte sunRise = {0, 0, 12, mes, mes, any}; Comenceu a calcular cada dia a partir de les 00 hores
byte sunSet = {0, 0, 12, mes, mes, any}; igual que l'anterior
byte maan = {0, 0, 12, mes, mes, any}; igual que l'anterior
fase de flotació;
A partir d’aquí es fan els càlculs.
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];
Aquest és l'exemple de com es calculen les coses a TimeLord. Amb aquesta biblioteca, obtindreu hores (força boniques) de posta de sol i de sortida del sol.
Al final, posaré tot el programa amb aquest instructiu. És força senzill.
Pas 4: més programari …
Més informació sobre el programari …
Tenim tres grans parts del programari.
1) Obtenim algunes dades brutes dels nostres diferents sensors: del nostre rellotge, DHT i BMP180. Aquesta és la nostra aportació.
2) Hem de traduir les dades a (1 i 0) a alguna cosa que tingui sentit. Per a això, fem servir les nostres biblioteques i variables.
3) Volem llegir i emmagatzemar les nostres dades. Per a un ús immediat, tenim el nostre LCD-TFT, per a un ús posterior, tenim les dades guardades a la nostra targeta SD.
Al nostre bucle (), obtenim molts "GOTO": saltem a les diferents biblioteques. Obtenim les dades d’un dels sensors, les obtenim i les emmagatzemem (principalment) en una variable de dades flotant. Triem els nostres noms de variables amb prudència, no amb x o y, sinó amb noms com "tempOutside" o "pressure" o coses per l'estil. Per fer-los més llegibles. D'acord, això fa que sigui una mica més pesat en l'ús de variables i que consumeixi més memòria.
Aquí ve el truc: quan es fan visibles les nostres variables a la pantalla, només cal situar-les a la posició correcta.
Les dues biblioteques que s’utilitzen aquí, Adafruit_GFX.h i MCUfriend_kbv.h, tenen un bon treball per utilitzar colors, tipus de lletra i la possibilitat de dibuixar línies. En una primera instància, vaig fer servir una pantalla 12864 amb aquestes biblioteques, més tard la vaig canviar a la pantalla tft. Tot el que havia de fer era col·locar quadres, rectangles i línies i assegurar-me que les dades sortissin al lloc adequat. Per a això, podeu utilitzar setCursor i tft. Write com a ordre. Fàcil ho fa. Els colors també es poden configurar com a variables; hi ha molts exemples en com escollir-les en aquestes biblioteques.
Per escriure a la targeta SD, també necessitem alguns trucs senzills.
Per exemple, llegim les nostres dades del rellotge com a hores, minuts i segons separats. Les temperatures són la temperatura DHT i la temperatura DHTT, per diferenciar entre interior o exterior.
Quan volem posar-los a la targeta SD, fem servir una cadena: comencem cada bucle com una cadena buida:
variablestring = ""; A continuació, podem omplir-lo amb totes les nostres dades:
variablestring = variablestring + hours + ":" + minutes + ":" + seconds. Això dóna la cadena com les 12:00:00.
Com que l’escrivim com a fitxer TXT (vegeu el SD.h a Arduino.cc), per a les següents variables afegim una pestanya, de manera que és més fàcil importar-lo a Excel.
Així doncs, arribem a: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Etcètera.
Pas 5: algunes captures de pantalla …
Per assegurar-nos que no "sobrecarreguem" els nostres conjunts de dades, només he escrit dades un cop cada 10 minuts. Donant-nos 144 entrades al dia. Crec que no està malament.
I, per descomptat, podeu continuar processant aquestes dades: podeu fer mitjanes, cercar màxims i mínims, comparar-los amb anys passats …
Les oficines de Met solen fer mitjanes de dia i de nit per a temperatures: el dia comença a les 8 del matí i arriba fins a les 8 del vespre.
Pel vent, la pressió i les precipitacions, les mitjanes es prenen de mitjanit a mitjanit.
Pas 6: Acabat?
Realment no … Com us deia, m'agradaria que finalment el sensor de velocitat i direcció del vent funcionés amb la resta de JAWS.
La poca construcció que vaig fer fa uns 4 m d’alçada. El meteoròleg aconsegueix la velocitat del vent des dels 10 m d’alçada. Una mica massa alt per a mi …
Espero que us hagi agradat llegir això!
Adafruit-GFX s’explica aquí:
MCUFRIEND_kbv.h es troba aquí:
Més informació sobre BMP 120 (igual que BMP085):
Quant a DHT22:
Recomanat:
Estació meteorològica NaTaLia: l'estació meteorològica amb energia solar Arduino s'ha fet correctament: 8 passos (amb imatges)
Estació meteorològica NaTaLia: Estació meteorològica amb energia solar Arduino feta de la manera correcta: després d’un any d’exitació en 2 llocs diferents, comparteixo els plans del projecte de la meva estació meteorològica amb energia solar i explico com va evolucionar cap a un sistema que realment pot sobreviure durant molt de temps períodes des de l'energia solar. Si segueixes
Una altra estació meteorològica intel·ligent, però : 6 passos (amb imatges)
Una altra estació meteorològica intel·ligent, però …: D'acord, sé que hi ha tantes estacions meteorològiques disponibles a tot arreu, però trigueu uns minuts a veure la diferència … Pantalles de paper electrònic de baixa potència 2 … però 10 diferents pantalles! Acceleròmetre basat en ESP32 i sensors de temperatura / humitat Actualització Wifi
Una altra estació meteorològica IoT: 8 passos
Una altra estació meteorològica de l’IoT: el següent va ser un regal d’aniversari per al meu pare; inspirat en un altre Instructable que vaig veure i que inicialment tenia intenció de demostrar-li com un kit de construcció pròpia. No obstant això, en començar a treballar en aquest projecte amb ell, em vaig adonar molt ràpidament que la t inicial
PIWOOLET (Pi.WOOd.tabLET): només una altra tauleta PI: 10 passos (amb imatges)
PIWOOLET (Pi.WOOd.tabLET): només una altra tauleta PI: Introducció: per què em vaig adonar d'això? La resposta és tan senzilla: només per diversió :-) Alguns dels meus objectius principals mantenen l'accés al port HDMI; mantenir l'accés a la sortida d'àudio; mantenir l'accés al GPIO; mantingueu accés a almenys un port USB. La matriu Rasp
Encara una altra estació meteorològica (Y.A.W.S.): 18 passos (amb imatges)
Encara una altra estació meteorològica (Y.A.W.S.): aquest projecte és la meva visió de la sempre popular estació meteorològica. El meu es basa en un ESP8266, a.96 ” Pantalla OLED i un conjunt de sensors ambientals BME280. Les estacions meteorològiques semblen ser un projecte molt popular. El meu es diferencia dels altres