Tabla de contenido:
- Paso 3: JAWS: Software
- Paso 4: Más software …
- Paso 5: algunas capturas de pantalla …
- Paso 6: ¿Terminaste?
Video: JAWS: una estación meteorológica más: 6 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Es bastante sencillo hacer tales JAWS.
Obtiene sus sensores, los junta en tableros y comienza a usar las bibliotecas que vienen con los sensores.
Comencemos con la configuración del programa.
Como hablo holandés (hablante nativo), todos los datos y muchas de las variables que utilizo están en holandés. Así que ahora tienes la oportunidad de aprender otro idioma …
¿Qué queremos de JAWS?
Fácil: queremos ver una pantalla que nos muestre la hora real, la fecha, las efemérides (amanecer, atardecer, duración del día y mediodía astronómico).
Además de eso, sería bueno ver la temperatura interior y exterior, la humedad relativa y el punto de rocío, y la presión del aire.
Para facilitar las cosas, utilizo grados centígrados para la temperatura y hPa (= mBar) para la presión. Así que nadie tiene que volver a calcular desde Fahrenheit o libras por estadios cuadrados …
En este momento, solo estos datos están disponibles …
En el futuro, agregaré la velocidad del aire, la dirección del viento y la precipitación.
La idea es que tendré una cabaña para el clima exterior y todos los datos se enviarán a 2,4 GHz a la unidad interior.
Paso 3: JAWS: Software
Para acceder a nuestro software, la mayoría se puede encontrar con las bibliotecas existentes.
En JAWS utilizo los siguientes:
- SPI.h: La biblioteca original de Arduino para protocolo de 4 hilos. Ella se usa para el escudo TFT
- Adafruit_GFX.hy MCUfriend_kbv.h: ambos utilizados para los gráficos y la pantalla. Esto hace que sea muy fácil escribir texto, dibujar líneas y cuadros en la pantalla TFT.
- dht.h: para nuestros DHT: esta biblioteca se puede utilizar para DHT11 (el azul) y DHT22.
- Wire.h: la biblioteca Arduino para facilitar la comunicación en serie. Se utiliza para el reloj y la tarjeta SD.
- SD.h: De nuevo un original Arduino, para escribir y leer desde la tarjeta SD.
- TimeLord.h: este lo utilizo para mantener el tiempo, calcular la puesta o la salida del sol desde cualquier posición geográfica. También configuró el reloj para DST (verano o invierno).
Empecemos por el reloj.
Al leer un reloj, necesita las variables que obtiene de los diferentes registros dentro del módulo de reloj. Cuando los hacemos más que simples números, podemos usar las siguientes líneas:
const int DS1307 = 0x68; const char * days = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char * meses = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};
norte
Con TimeLord, obtenemos esto como datos, para mi lugar: (Lokeren, Bélgica)
TimeLord Lokeren; configurándolo Lokeren. Position (51.096, 3.99); longitud y latitud
Lokeren. TimeZone (+ 1 * 60); GMT +1 = +1 x 60 minutos
Lokeren. DstRules (3, 4, 10, 4, 60); DST desde el 3er mes, la 4ta semana al 10mo mes, la 4ta semana, + 60 minutos
int jaar = año +2000;
byte sunRise = {0, 0, 12, monthday, month, year}; empezar a calcular todos los días a partir de las 00 horas
byte sunSet = {0, 0, 12, monthday, month, year}; lo mismo que arriba
byte maan = {0, 0, 12, mes día, mes, año}; lo mismo que arriba
fase de flotación;
A partir de aquí, se realizan los cálculos.
fase = Lokeren. MoonPhase (maan);
Lokeren. SunRise (amanecer);
Lokeren. SunSet (sunSet);
Lokeren. DST (amanecer);
Lokeren. DST (puesta de sol);
int ZonOpUur = amanecer [tl_hora];
int ZonOpMin = amanecer [tl_minuto];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Este es el ejemplo de cómo se calculan las cosas en TimeLord. Con esta biblioteca, obtienes horas (bastante) precisas de la puesta y la salida del sol.
Al final, pondré todo el programa con este Instructable. Es bastante sencillo.
Paso 4: Más software …
Más sobre el software …
Tenemos tres partes importantes en el software.
1) Obtenemos algunos datos sin procesar de nuestros diferentes sensores: de nuestro reloj, DHT y BMP180. Ésa es nuestra aportación.
2) Necesitamos traducir los datos a (1 y 0) a algo que tenga sentido. Para ello, utilizamos nuestras bibliotecas y variables.
3) Queremos leer y almacenar nuestros datos. Esa es nuestra salida. Para uso inmediato, tenemos nuestro LCD-TFT, para uso posterior, tenemos nuestros datos guardados en nuestra tarjeta SD.
En nuestro loop (), obtenemos muchos "GOTO's": saltamos a las diferentes bibliotecas. Obtenemos nuestros datos de uno de los sensores, obtenemos los datos y los almacenamos en (principalmente) una variable de datos flotante. Elegimos nuestros nombres de variables sabiamente, no con x o y, sino con nombres como "tempOutside" o "presión" o cosas así. Para hacerlos más legibles. Bien, esto lo hace un poco más pesado en el uso de variables y consume más memoria.
Aquí viene el truco: al hacer que nuestras variables sean visibles en la pantalla, simplemente las coloca en la posición correcta.
Las dos bibliotecas utilizadas aquí, Adafruit_GFX.hy MCUfriend_kbv.h tienen un buen conjunto de trabajo para usar colores, fuentes y la capacidad de dibujar líneas. En una primera instancia, usé una pantalla 12864 con estas bibliotecas, luego cambié eso en la pantalla tft. Todo lo que tenía que hacer era colocar cuadros, rectángulos y líneas, y asegurarme de que los datos salieran en el lugar correcto. Para eso, puede usar setCursor y tft. Write como comando. Fácil lo hace. Los colores también se pueden establecer como variables, hay muchos ejemplos en esas bibliotecas de cómo elegirlos.
Para escribir en la tarjeta SD, también necesitamos algunos trucos simples.
Por ejemplo, leemos nuestros datos del reloj como horas, minutos y segundos separados. Las temperaturas son la temperatura DHT y la temperatura DHTT, para diferenciar entre interior y exterior.
Cuando queremos ponerlos en la tarjeta SD, usamos una cadena: comenzamos cada ciclo como una cadena vacía:
cadena de variables = ""; Entonces podemos llenarlo con todos nuestros datos:
cadena de variables = cadena de variables + horas + ":" + minutos + ":" + segundos. Esto le da a la cadena como 12:00:00.
Dado que lo escribimos como un archivo TXT (ver SD.h en Arduino.cc), para las siguientes variables agregamos una pestaña, por lo que es más fácil importarlo en Excel.
Entonces llegamos a: cadena de variables = cadena de variables + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
Etcétera.
Paso 5: algunas capturas de pantalla …
Para asegurarnos de no "sobrecargar" nuestros conjuntos de datos, escribí datos solo una vez cada 10 minutos. Dándonos 144 entradas por día. No está mal, creo.
Y, por supuesto, puedes seguir procesando esos datos: puedes hacer promedios, puedes buscar máximos y mínimos, puedes comparar con años anteriores …
Las oficinas meteorológicas suelen hacer promedios de día y de noche para las temperaturas: el día comienza a las 8 a. M. Y termina a las 8 p. M.
Para viento, presión y precipitación, los promedios se toman desde la medianoche hasta la medianoche.
Paso 6: ¿Terminaste?
En realidad no … Como dije, me gustaría que finalmente el sensor de velocidad y dirección del viento funcione con el resto de JAWS.
La pequeña construcción que hice tiene unos 4 m de altura. El meteorólogo obtiene la velocidad del viento desde 10 m de altura. Un poco demasiado alto para mí …
¡Espero que hayas disfrutado leyendo esto!
Adafruit-GFX se explica aquí:
MCUFRIEND_kbv.h se encuentra aquí:
Más sobre BMP 120 (igual que BMP085):
Acerca de DHT22:
Recomendado:
Fanair: una estación meteorológica para tu habitación: 6 pasos (con imágenes)
Fanair: una estación meteorológica para su habitación: hay innumerables formas de averiguar el clima actual, pero solo conoce el clima afuera. ¿Qué pasa si quieres saber el clima dentro de tu casa, dentro de una habitación específica? Eso es lo que intento resolver con este proyecto. Fanair usa mul
Construye una estación meteorológica SUPER Raspberry Pi: 8 pasos (con imágenes)
Construye una estación meteorológica SUPER Raspberry Pi: seamos realistas, los humanos hablamos mucho sobre el clima ⛅️. La persona promedio habla del clima cuatro veces al día, durante un promedio de 8 minutos y 21 segundos. Haz los cálculos y eso totaliza 10 meses de tu vida que pasarás hablando sobre t
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: 8 pasos (con imágenes)
Estación meteorológica NaTaLia: estación meteorológica con energía solar Arduino hecha de la manera correcta: después de 1 año de operación exitosa en 2 ubicaciones diferentes, estoy compartiendo los planes del proyecto de mi estación meteorológica con energía solar y explicando cómo evolucionó a un sistema que realmente puede sobrevivir durante mucho tiempo períodos de energía solar. Si tu sigues
Estación meteorológica de bricolaje y estación de sensor WiFi: 7 pasos (con imágenes)
Estación meteorológica de bricolaje y estación de sensor WiFi: en este proyecto, le mostraré cómo crear una estación meteorológica junto con una estación de sensor WiFi. La estación de sensores mide los datos de temperatura y humedad locales y los envía, a través de WiFi, a la estación meteorológica. La estación meteorológica muestra t
Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): 4 pasos
Una estación meteorológica Arduino más (ESP-01 y BMP280 y DHT11 y OneWire): aquí puede encontrar una iteración del uso de OneWire con los pocos pines de un ESP-01.El dispositivo creado en este instructivo se conecta a la red Wifi de su opción (debe tener las credenciales …) Recopila datos sensoriales de un BMP280 y un DHT11