Estación Meteorológica Inalámbrica con Arduino: Kit Portátil de Monitorización Meteorológica DIY
Componentes y materiales
![]() |
Arduino Due
o Arduino Mega.
|
× | 1 | |
|
Pantalla TFT 3.2" HX8357C
|
× | 1 | ||
|
Módulo Reloj en Tiempo Real DS3231
|
× | 1 | ||
![]() |
Sensor de Temperatura DHT22
|
× | 1 | |
![]() |
SparkFun Transceptor Breakout - nRF24L01+
|
× | 1 | |
![]() |
Protoboard (genérica)
|
× | 1 | |
![]() |
Header Macho 36 Posiciones 1 Fila - Largo (0.1")
7 pines
|
× | 1 | |
![]() |
Cables de conexión (genéricos)
varios
|
× | 1 | |
![]() |
Arduino Nano R3
|
× | 1 | |
|
Xiaomi Powerbank
|
× | 1 |
Acerca de este proyecto

Construir una estación meteorológica inalámbrica es una gran experiencia de aprendizaje. Al terminar este proyecto, tendrás una mejor comprensión de cómo funcionan las comunicaciones inalámbricas, cómo funcionan los sensores y lo potente que puede ser la plataforma Arduino. Con este proyecto como base y la experiencia adquirida, podrás construir fácilmente proyectos más complejos en el futuro.
Una estación meteorológica es un dispositivo que recopila datos relacionados con el clima y el medio ambiente usando muchos sensores diferentes. Podemos medir muchas cosas como:
- Temperatura
- Humedad
- Viento
- Presión barométrica
- Índice UV
- Lluvia
En la estación meteorológica que vamos a construir, mediremos temperatura y humedad en dos ubicaciones y mostraremos la fecha y hora actuales. Construir una estación meteorológica es extremadamente fácil. Pero, ¿puede un maker construir una unidad con una pantalla TFT a color y características que igualen a una unidad comercial? ¡La respuesta es SÍ! Con el poder del software y hardware de código abierto, ¡se puede construir fácilmente esta impresionante estación meteorológica!
El proyecto consta de dos partes: el transmisor y el receptor.
El transmisor mide la temperatura y la humedad, y envía los datos de forma inalámbrica al receptor. El receptor mide la temperatura y la humedad, recibe los datos del sensor remoto y muestra todo en una gran pantalla TFT a color.
¡Construyamos este proyecto!
Paso 1: Consigue todas las piezas

Las piezas necesarias para construir este proyecto son las siguientes:
- Arduino Due ▶ https://educ8s.tv/part/ArduinoDue
- Arduino Mega ▶ https://educ8s.tv/part/ArduinoMega
- Arduino Nano ▶ https://educ8s.tv/part/ArduinoNano
- Pantalla TFT 3.2" ▶ https://educ8s.tv/part/32TFT
- DHT22 ▶ https://educ8s.tv/part/DHT22
- NRF24L01 ▶ https://educ8s.tv/part/NRF24L01
- DS3231 RTC ▶ https://educ8s.tv/part/DS3231
- Protoboard ▶ https://educ8s.tv/part/SmallBreadboard
- Cables ▶ https://educ8s.tv/part/Wires
- Pines de header ▶ https://educ8s.tv/part/HeaderPins
- Xiaomi Powerbank ▶ https://educ8s.tv/part/Powerbank
El coste del proyecto es de unos 40$. Puedes reducir el coste en 5$ si usas Arduino Mega en lugar de Arduino Due. Elegí usar el Arduino Due para el receptor porque es muy rápido y tiene mucha memoria. Esto será muy útil en el futuro a medida que añadamos más funciones al proyecto.
Paso 2: Sensor de temperatura y humedad - DHT22

El DHT22 es un sensor de temperatura y humedad muy popular. Es barato, fácil de usar y las especificaciones afirman buena precisión y exactitud.
Los sensores DHT están compuestos por dos partes: un sensor de humedad capacitivo y un termistor. También hay un chip en el interior que realiza conversión analógico-digital y emite una señal digital con la temperatura y la humedad. La señal digital es bastante fácil de leer usando cualquier microcontrolador.
Características del DHT22
- Bajo coste
- Alimentación y E/S de 3 a 5V
- Corriente máxima de 2,5 mA durante la conversión
- Lecturas de humedad 0-100% con precisión del 2-5%
- Lecturas de temperatura de -40 a 125°C con precisión de ±0,5°C
- Lento
La conexión con Arduino es extremadamente fácil. Conectamos el pin del sensor con el signo + a la salida de 5V o 3.3V del Arduino. Conectamos el pin con el signo - a GND. Por último, conectamos el pin OUT a cualquier pin digital del Arduino.
Para usar el sensor DHT22 con Arduino, debemos usar la librería DHT.
https://github.com/adafruit/DHT-sensor-library
Paso 3: El módulo Reloj en Tiempo Real DS3231

El módulo Reloj en Tiempo Real DS3231 es, como su nombre indica, un reloj en tiempo real. Gracias a su batería, puede mantener la hora durante años, ya que tiene un consumo de energía mínimo.
El coste del módulo es extremadamente bajo; cuesta alrededor de 2$ ¡incluyendo la batería! Lo usaremos para mantener la hora en nuestro proyecto de Estación Meteorológica.
Paso 4: NRF24L01+ - Módulos inalámbricos

El módulo NRF24L01 es un transceptor bidireccional de bajo coste. ¡Su coste es inferior a 3$! Funciona en la banda de 2,4 GHz y puede alcanzar una tasa de datos de 2 Mbits. ¡Impresionante, ¿verdad? Usa la interfaz SPI para comunicarse con Arduino, por lo que es muy fácil de usar. Tenemos que conectar 7 de los 8 pines del módulo para hacerlo funcionar con Arduino.
Desafortunadamente, no podemos enchufar el módulo directamente en la protoboard, así que vamos a usar cables macho-hembra para conectar el módulo a Arduino. El pin 1 del módulo es GND. Debes conectarlo a GND de Arduino. El siguiente pin es Vcc. Debes conectarlo a la salida de 3.3V del Arduino Uno. ¡Cuidado! No lo conectes a 5V o destruirás el módulo. El tercer pin se llama CE y puedes conectarlo a cualquier pin digital que quieras. En este ejemplo lo conectaré al pin digital 7. El pin 4 es CS y también puedes conectarlo a cualquier pin digital. Lo conectaré al pin digital 8. El siguiente pin es SCK que va al pin digital 13 del Arduino Uno. El siguiente pin es MOSI que va al pin digital 11, y el último pin es MISO que va al pin digital 12. ¡Eso es todo!
Para facilitar el uso del módulo con Arduino, debemos usar la siguiente librería: https://github.com/TMRh20/RF24
Si no has usado los módulos NRF24L01+ hasta ahora, por favor revisa el video adjunto para ver cómo usarlo construyendo un proyecto simple. Te ayudará a entender cómo funciona.
Paso 5: Construcción del transmisor

Primero construyamos el transmisor. Es muy simple.
Para el transmisor usamos:
- Un Arduino Nano
- Un sensor DHT22
- Un módulo inalámbrico NRF24L01+
- Una protoboard
- Algunos cables
Conectamos el pin de salida del sensor al pin digital 4 del Arduino Nano. Conectamos GND y Vcc y estamos listos. Ahora solo tenemos que conectar el módulo inalámbrico NRF24L01.
Conéctalo usando los pines que se muestran en la tercera imagen. Para más detalles, mira el video detallado que adjunté en el paso anterior.
¡Eso es todo, tu transmisor está listo! Pasemos ahora al receptor.
Paso 6: Construcción del receptor

Para construir el receptor, necesitamos las siguientes piezas:
- Un Arduino Due o un Mega
- Un módulo Reloj en Tiempo Real DS3231
- Un sensor de Temperatura y Humedad DHT22
- Un módulo inalámbrico NRF24L01+
- Una pantalla TFT a color de 3.2"
- Una protoboard
- 7 pines de header
- Algunos cables
Primero, doblamos 7 pines de header y los colocamos en algunos pines del Arduino Due. Necesitamos uno para GND y uno para 3.3V. Necesitamos dos en los pines I2C. Necesitamos los 3 restantes para pines digitales del 6 al 8. También tenemos que soldar tres cables a los pines SPI de hardware del Arduino Due. Necesitamos MOSI, MISO y SCK. Revisa el diagrama cuidadosamente. Conectamos los cables a los pines de header y estamos listos para conectar la pantalla.
Conectando el DS3231
- Pin VCC a la salida de 3.3V del Arduino
- Pin GND a GND del Arduino
- Pin SDA (Línea de Datos Serie) al pin SDA del Arduino
- Pin SCL (Línea de Reloj Serie) al pin SCL del Arduino
Conectando el sensor DHT22
- Pin VCC a la salida de 3.3V del Arduino
- Pin GND a GND del Arduino
- Pin de salida al pin digital 8 del Arduino
Conectando el módulo NRF24L01
- Pin GND a GND del Arduino
- Pin VCC a 3.3V del Arduino
- 3er pin al pin digital 6 del Arduino
- 4to pin al pin digital 7 del Arduino
- 5to pin al pin SCK que hemos soldado
- 6to pin al pin MOSI que hemos soldado
- 7mo pin al pin MISO que hemos soldado
Paso 7: El código del transmisor

Primero, tenemos que descargar la librería RF24 para facilitarnos la vida al trabajar con los módulos inalámbricos NRF24L01. También necesitamos la librería DHT para el sensor DHT22.
- Librería DHT22: https://github.com/adafruit/DHT-sensor-library
Veamos el código del transmisor. Envía una estructura de datos simple que contiene dos floats: la temperatura y la humedad.
Para establecer un enlace de comunicación, tenemos que crear una "tubería" (pipe) entre los dos módulos. Esa tubería necesita tener una dirección. Ambos módulos tienen que escribir y leer desde la misma tubería para comunicarse. Eso es lo primero que definimos en nuestro código. Establecemos la dirección de la tubería a "0". Luego definimos el canal en el que queremos comunicarnos con el otro módulo. El chip NRF24L01 soporta 126 canales diferentes. Ambos módulos necesitan usar el mismo canal para comunicarse. En este ejemplo uso el canal 115. Luego, defino que quiero usar la máxima potencia de transmisión que ofrece el módulo. Usa más energía pero extiende el alcance de la comunicación. Luego definimos la tasa de datos de la transmisión. La establezco en 250Kbs, que es la tasa de datos más baja posible para lograr mejor alcance. El siguiente paso es abrir la tubería para poder escribir en ella más tarde.
En la función loop, leemos los valores de temperatura y humedad del sensor, guardamos esos datos en la estructura de datos y luego enviamos la estructura escribiéndola en la tubería. Eso es todo. Puedes encontrar el código adjunto en este tutorial.
FU361QHIQFCEYSE.ino
Paso 8: El código del receptor

Veamos ahora el código del receptor. Necesitamos 4 librerías. Primero, tenemos que descargar la librería para la pantalla desde este enlace:
Librería PANTALLA: https://github.com/Bodmer/TFT_HX8357_Due
Después de descargar la librería, tienes que abrir el archivo User_Setup.h. Comenta la línea 13 y descomenta la línea 14, porque la pantalla que tenemos usa el controlador HX8357C. Ahora podemos continuar con las otras 3 librerías. Necesitamos una librería para el reloj en tiempo real, otra para el sensor DHT22 y otra para el módulo inalámbrico.
- NRF24L01: https://github.com/TMRh20/RF24
- DHT22: https://github.com/adafruit/DHT-sensor-library
- DS3231: https://github.com/SodaqMoja/Sodaq_DS3231
Veamos el código. Lo primero que tenemos que hacer es establecer la hora en el módulo de reloj en tiempo real si no está ya establecida. Para hacerlo, introduce la fecha y hora actuales en la función setRTCTime, descomenta la llamada a la función setRTCTime en la línea 54 y sube el programa a Arduino. Ahora la hora está establecida. Pero luego tenemos que comentar la llamada a setRTCTime de nuevo y subir el programa a Arduino una vez más.
El código del receptor funciona de la siguiente manera. En la función setup, inicializamos todos los sensores y módulos e imprimimos la Interfaz de Usuario. Luego, en la función loop, comprobamos continuamente si hay nuevos datos inalámbricos. Si hay nuevos datos, los guardamos en variables y los mostramos en la pantalla. Leemos la temperatura y la humedad una vez por minuto y solo actualizamos la pantalla si hay un cambio en los valores. ¡Así reducimos aún más el parpadeo de la pantalla! También he preparado una versión del código con la temperatura mostrada en grados Fahrenheit. Puedes encontrar ambas versiones del código adjuntas en este tutorial.
F053BTXIQFCEZ09.ino
FNV3X4LIQFCEZ0C.ino
Paso 9: Probando el proyecto

El último paso es alimentar todo y ver si todo funciona como se espera. Si es así, en la parte superior de la pantalla se muestra la fecha y hora actuales. En la parte inferior de la pantalla, puedes ver la temperatura y la humedad tanto del sensor remoto como del local.
Si no se muestran datos para el sensor remoto, acerca el transmisor; puede que esté fuera de alcance. Si el problema persiste, revisa todas las conexiones una vez más; debe haber algo mal ahí.
Como puedes ver, este proyecto es una gran demostración de lo que el hardware y software de código abierto son capaces. ¡En pocas horas se puede construir un proyecto tan impresionante! Por supuesto, esto es solo el principio. Podemos añadir muchas más funciones al proyecto. Pronto añadiré un botón para poder mostrar gráficos y tener diferentes modos. También podemos añadir más sensores, registro de datos, conexión a Internet, etc. Estamos usando el Arduino Due, así que tenemos mucha memoria para implementar muchas más cosas. ¡Me encantaría escuchar tu opinión sobre este proyecto! ¿Cómo te gustaría verlo evolucionar? ¡Por favor, publica tus comentarios o ideas en la sección de comentarios a continuación!
Si quieres más detalles, mira el video de YouTube en la introducción o visita mi sitio web. ¡Gracias por echar un vistazo!
Código
Github
https://github.com/adafruit/DHT-sensor-library
Github
https://github.com/TMRh20/RF24
Github
https://github.com/Bodmer/TFT_HX8357_Due
Github
https://github.com/SodaqMoja/Sodaq_DS3231
Proceso de manufactura
- Construcción de una estación meteorológica exterior con Raspberry Pi 2 y ADS‑WS1
- Construya una estación meteorológica con Raspberry Pi que envíe datos diarios por email
- Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
- Proyecto Dados Digitales Arduino: Construye tu Propio Generador de Números Aleatorios con LCD
- Construye un Iron Man animado con Arduino: componentes, sensores y guía paso a paso
- Find Me: Localizador Inteligente de Objetos con Arduino y Bluetooth
- Construye un Brazo Robótico Impreso en 3D Controlado por Arduino – Guía Paso a Paso
- Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
- Estación Meteorológica Portátil Arduino por $10 – Nano, DHT22, BMP180 y LCD
- eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
- Pong Neón en Matriz NeoPixel con Arduino Nano






