Tabla de contenido:
- Paso 1: Lista de artículos
- Paso 2: Introducción relativa
- Paso 3: conecte el circuito
- Paso 4: Prepárese para compilar
- Paso 5: Código de prueba para el puerto serie del sensor DHT22
- Paso 6: código para el proyecto
- Paso 7: descripción
Video: Estación meteorológica con Arduino UNO: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
Creado por: Hazel Yang
Este proyecto es una estación meteorológica que utiliza una placa Arduino UNO para controlar el flujo de datos, un sensor DHT22 para recopilar los datos y una pantalla OLED para mostrar los datos.
Paso 1: Lista de artículos
1. Pantalla: OLED, 1.3 Display SH1106, I2C color blanco ---- PID: 18283
2. Sensor: Sensor digital de temperatura y humedad DHT22 ---- PID: 7375
3. Conecta: Cables de puente ---- PID: 10316 o 10318 o 10312 (depende de la longitud) o puede usar cable sólido 22 AWG ---- PID: 22490
Placa de pruebas ---- PID: 10686 o 10698 o 103142 (depende del tamaño)
4. Energía: Este cable solo se puede conectar con un puerto USB de la computadora y el cable también se usa para la transferencia de datos entre el IDE y la placa Arduino. CABLE USB, A A B, M / M, 0.5M (1.5FT) ---- PID: 29862
O puede usar esto para alimentar la placa: Adaptador de CA / CC de 5 V 2 A ---- PID: 10817.
Paso 2: Introducción relativa
Introducción de la pantalla: Pantalla OLED de 1.3 blanca
1. Puede encontrar el documento que muestra la configuración básica y las descripciones:
Introducción del sensor: sensor de temperatura y humedad DHT22 1. Puede encontrar el documento que muestra las descripciones:
Paso 3: conecte el circuito
El sensor DHT22 envía datos en serie al pin 2. Por lo tanto, conecte el segundo pin desde la izquierda, el pin "SDA" debe estar conectado al pin 2.
Para la pantalla SSH1106, utiliza el pin analógico para transmitir. El circuito de la pantalla será el pin "SCL" al "A5" de Arduino y el pin "SDA" al "A4" de Arduino. Mientras que los datos de la posición de los píxeles se transmiten continuamente, la función de visualización en el programa solo activa el comando una vez cada vez que lee los datos del sensor.
Tanto el sensor como la pantalla pueden usar 3.3V para encender Arduino como una entrada de energía de CC. Para alimentar, necesitamos conectar los dos pines "VCC" a los "3.3V" de Arduino. Y los pines "GND" se pueden conectar simplemente al pin "GND" en la placa Arduino.
Utilice el cable USB A a B, conecte el Arudino a la computadora.
Paso 4: Prepárese para compilar
"u8glib" para la pantalla SSH1106 de Olikraus.
"Biblioteca de sensores DHT" para el sensor DHT22 de Adafruit. Debe descargar las dos bibliotecas: Biblioteca de sensores DHT22:
U8glib:
Y use "administrar biblioteca" en IDE para descomprimirlos. Instrucción en línea sobre la gestión de bibliotecas:
Paso 5: Código de prueba para el puerto serie del sensor DHT22
Coeficiente de prueba para el puerto serie del sensor DHT22 (que se encuentra dentro de la biblioteca DHT22 >> ejemplos):
(Puede omitir esta parte)
Solo para probar, el sensor DHT22 lee los datos normalmente
#incluir
#incluir
#incluir
#incluir
#incluir
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
configuración vacía () {
Serial.begin (9600);
Serial.println (F ("¡Prueba DHT22!"));
dht.begin ();
}
bucle vacío () {
// Espere unos segundos entre mediciones.
retraso (2000);
// ¡La lectura de la temperatura o la humedad tarda unos 250 milisegundos!
// Las lecturas del sensor también pueden tener hasta 2 segundos de antigüedad (es un sensor muy lento)
flotar h = dht.readHumidity ();
// Leer la temperatura como Celsius (por defecto)
flotar t = dht.readTemperature ();
// Leer la temperatura como Fahrenheit (isFahrenheit = true)
flotar f = dht.readTemperature (verdadero);
// Compruebe si alguna lectura falló y salga antes (para volver a intentarlo).
si (isnan (h) || isnan (t) || isnan (f)) {
Serial.println (F ("¡Error al leer del sensor DHT!"));
regreso;
}
// Calcular el índice de calor en Fahrenheit (predeterminado)
flotador hif = dht.computeHeatIndex (f, h);
// Calcular el índice de calor en grados Celsius (isFahreheit = false)
flotador hic = dht.computeHeatIndex (t, h, falso);
Serial.print (F ("Humedad:"));
Serial.print (h);
Serial.print (F ("% de temperatura:"));
Serial.print (t);
Serial.print (F ("° C"));
Serial.print (f);
Serial.print (F ("° F Índice de calor:"));
Serial.print (hic);
Serial.print (F ("° C"));
Serial.print (hif);
Serial.println (F ("° F"));
}
// Después de compilar el programa, haga clic en HERRAMIENTAS >> MONITOR DE SERIE para verificar los datos.
// Fin del programa de pruebas.
Paso 6: código para el proyecto
#incluir
#incluir
#incluir
#incluir
#incluir
#define DHTPIN 2
#define DHTTYPE DHT22
#include "U8glib.h"
U8GLIB_SH1106_128X64 u8g (U8G_I2C_OPT_NONE);
Sensor DHT (DHTPIN, DHTTYPE);
vacío dibujar (vacío) {
u8g.setFont (u8g_font_unifont);
flotar h = sensor.readHumidity ();
// Leer la temperatura en grados Celsius (por defecto)
flotador t = sensor.readTemperature ();
// Compruebe si alguna lectura falló y salga antes (para volver a intentarlo).
si (isnan (h) || isnan (t)) {
u8g.print ("Error");
por(;;);
regreso;
}
u8g.setPrintPos (4, 10);
u8g.print ("Temperatura (C):");
u8g.setPrintPos (4, 25);
u8g.print (t);
u8g.setPrintPos (4, 40);
u8g.print ("Humedad (%):");
u8g.setPrintPos (4, 55);
u8g.print (h);
}
configuración nula (nula) {
u8g.setRot180 ();
Serial.begin (9600);
sensor.begin ();
}
bucle vacío (vacío) {
// bucle de imagen
u8g.firstPage ();
hacer {
dibujar();
} while (u8g.nextPage ());
// reconstruir la imagen después de un retraso (2000);
}
// Fin del programa principal.
Paso 7: descripción
Luego, inicialice el circuito de pines para la placa Arduino. Porque la biblioteca de sensores requiere los datos para declarar el objeto.
Y puede probar los datos del sensor monitoreando los datos de salida a través del pin digital 2 usando la función llamada "Serial.print ()". Debido a que la frecuencia de transmisión de datos es aproximadamente 1 lectura cada 2 segundos (que es 0.5 Hz), cuando se programa en Arduino IDE, necesitamos establecer el retraso dentro de la función de bucle para que sea de más de 2 segundos. Entonces hay un "retraso (2000)" dentro de la función de bucle. Esto asegura que los datos se actualizarán con frecuencia. En la función "dibujar", obtenga los datos del puerto de datos en serie y colóquelos en números flotantes usando las funciones "readHumidity" y "readTemperature".
Imprima la humedad y la temperatura usando la función de impresión en el archivo "u8glib". Puede ajustar la posición cambiando el número en la función "setPrintPos". La función de impresión puede mostrar directamente el texto y los números.
Para configurar el hardware, dé al puerto serie un retraso de 10 segundos. Luego llame a la función de inicio del sensor. Según mi circuito, mi pantalla estaba al revés. Así que también incluí una función "setRot180" para rotar la pantalla.
La función de bucle de la placa Arduino es la función principal. Sigue llamando a la función de dibujo para mostrar el texto y los datos cada vez que se actualiza el sensor.
La pantalla se ve así:
Puede desconectar el Arduino UNO de su computadora y encenderlo con un adaptador de corriente de 5 V CC que se conecta a su conector de alimentación de 2,1 mm. Almacena el programa dentro de su unidad y puede ejecutarlo de nuevo continuamente después de ser encendido.
Recomendado:
Estación de soldadura portátil de material reciclado. / Estación De Soldadura Portátil Hecha Con Material Reciclado .: 8 Pasos (con Imágenes)
Estación de soldadura portátil de material reciclado. / Estación De Soldadura Portátil Hecha Con Material Reciclado .: Papá era un gran artista y aventurero tanto como un gran fanático de la cultura del bricolaje. Él solo hizo muchas modificaciones en la casa, que incluyen mejoras en muebles y armarios, reciclaje de lámparas antiguas e incluso modificó su furgoneta VW kombi para viajar
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
Estación meteorológica con Arduino, BME280 y pantalla para ver la tendencia en los últimos 1-2 días: 3 pasos (con imágenes)
Estación meteorológica con Arduino, BME280 y pantalla para ver la tendencia en los últimos 1-2 días: ¡Hola! Aquí en instructables, las estaciones meteorológicas ya se han introducido. Muestran la presión, la temperatura y la humedad actuales del aire. Lo que les faltaba hasta ahora era una presentación del curso en los últimos 1-2 días. Este proceso tendría el
Estación meteorológica de bricolaje con DHT11, BMP180, Nodemcu con Arduino IDE sobre el servidor Blynk: 4 pasos
Estación meteorológica DIY usando DHT11, BMP180, Nodemcu con Arduino IDE sobre Blynk Server: Github: DIY_Weather_Station Hackster.io: Weather Station Por ejemplo, cuando lo abres, puedes conocer las condiciones climáticas como la temperatura, la humedad, etc. Esas lecturas son el valor promedio de un gran son