Taula de continguts:

Mordasses: només una altra estació meteorològica: 6 passos
Mordasses: només una altra estació meteorològica: 6 passos

Vídeo: Mordasses: només una altra estació meteorològica: 6 passos

Vídeo: Mordasses: només una altra estació meteorològica: 6 passos
Vídeo: ✅Простая идея. Стало гораздо удобней работать.🔨 2024, Desembre
Anonim
Mordasses: preparar les nostres coses
Mordasses: preparar les nostres coses
Mordasses: preparar les nostres coses
Mordasses: preparar les nostres coses
Mordasses: preparar les nostres coses
Mordasses: preparar les nostres coses

É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

JAWS: programari
JAWS: programari

Per accedir al nostre programari, la majoria es poden trobar a les biblioteques existents.

A JAWS faig servir els següents:

  1. SPI.h: la biblioteca original d'Arduino per a protocol de 4 fils. S'utilitza per a l'escut TFT
  2. 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.
  3. dht.h: per als nostres DHT: aquesta biblioteca es pot utilitzar per DHT11 (el blau) i DHT22.
  4. Wire.h: la biblioteca Arduino per facilitar la comunicació en sèrie. S'utilitza per al rellotge i la targeta SD.
  5. SD.h: De nou un original d'Arduino, per escriure i llegir des de la targeta SD.
  6. 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 programari …
Més programari …
Més programari …
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 …

Algunes captures de pantalla …
Algunes captures de pantalla …
Algunes captures de pantalla …
Algunes captures de pantalla …
Algunes captures de pantalla …
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?

Acabat?
Acabat?
Acabat?
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: