Construye una Estación Meteorológica Personal Fiable con Arduino, ESP8266 y ThingSpeak
Componentes y Suministros
| Componente | Cantidad |
|---|---|
| Adafruit BMP180 (Presión y Temperatura) | 1 |
| DHT11 Sensor Temperatura y Humedad (4 pines) | 1 |
| LDR (Fotorresistencia) | 1 |
| ESP8266 ESP-01 | 1 |
| Arduino Nano R3 | 1 |
| Resistencia 4.75 kΩ | 1 |
| Resistencia 51 kΩ | 1 |
| Convertidor Buck LM2596 | 1 |
| Conector Jack DC | 1 |
| Interruptor | 1 |
| Adaptador Mural 12V-2A | 1 |
| PCB | 1 |
| Header Macho 40 Pines | 1 |
| Header Hembra 8 Pines | 5 |
| Caja Plástica (aprox. 10x10x5 cm) | 1 |
Herramientas Necesarias
- Pelacables
- Pistola de Silicona Caliente
- Soldador
- Destornillador
- Lima (para acabados manuales)
Aplicaciones y Servicios Online
- Arduino IDE
- API ThingSpeak
Sobre el Proyecto
Introducción: Crea tu Estación Meteorológica Personal
Estando en tu habitación empiezas a sudar o sentir frío; te preguntas cuál será la temperatura o la humedad. Esto me pasó hace tiempo y dio origen a esta Estación Meteorológica Personal, que monitoriza temperatura, humedad, presión e intensidad lumínica de tu estancia y la sube a un canal privado en ThingSpeak.com.
Paso 1: Video Resumen
Video de 5 minutos en YouTube resumiendo todo el proceso.
Paso 2: Componentes Electrónicos
Descripción: Usamos DHT11 para humedad, BMP180 para temperatura y presión, y LDR para intensidad de luz. Arduino Nano recopila datos y los envía al ESP8266 para subirlos a tu canal privado ThingSpeak. Alimentamos el Nano desde adaptador 12V-2A; sensores y ESP8266 reciben tensión reducida del buck converter LM2596.
Paso 3: Herramientas e Items Extra
Pelacables, lima, pistola silicona, destornillador, soldador. Caja plástica 10x10x5cm como envolvente. PCB de uso general, tiras macho/hembra y conectores hembra para montaje en PCB.
Paso 4: Requisitos Software
Canal privado en ThingSpeak.com y Arduino IDE (última versión).
Paso 5: Crear Canal Privado en ThingSpeak
- Ir a thingspeak.com → Sign Up → Crear cuenta
- New Channel → Rellenar datos y habilitar 4 campos (4 sensores) → Save Channel
- API Keys → Anotar "Write API Key"
Paso 6: Esquemático
- BMP180 → I2C de Arduino Nano (A4/A5)
- LDR → Divisor tensión con 51kΩ → A1
- DHT11 data → Pull-up 4.7kΩ → A0
- ESP8266 TX/RX → D10/D11 Nano; CH_PD → 3.3V
- LM2596 salida → 3.3V (ajustar potenciómetro) → VCC/GND sensores y ESP8266
- LM2596 entrada → Adaptador 12V (también a Vin/GND Nano)
Paso 7: Montaje en PCB de Uso General
- Tiras hembra para Nano y ESP8266 en PCB
- Soldar conexiones
- Conectores hembra para extender sensores y LM2596 (irán en tapa/paredes)
- Tiras macho para puntos de conexión de extensiones
- Realizar esquemático con cables o pistas de estaño
- Verificar cortocircuitos con multímetro antes de alimentar
Paso 8: Código
Código sencillo y comentado. Antes de grabar:
- Instalar librerías necesarias
- Reemplazar SSID en línea 14
- Reemplazar PASSWORD WiFi en línea 15
- Reemplazar Write API Key ThingSpeak en línea 17
- ¡Apagar alimentación 12V al programar Nano!
Código y librerías en: GitHub
Paso 9: Preparación Envolvente
Agujeros en caja para jack DC e interruptor (pared), y sensores (tapa). Usar cuchilla caliente y lima. Fijar componentes con silicona y cerrar tapa.
Paso 10: ¡Funcionando!
Enciende y monitoriza temperatura, humedad, presión y luz desde cualquier dispositivo en tu canal ThingSpeak privado.
Código Principal (Arduino)
#include <SoftwareSerial.h>
#include <Wire.h>
#include <dht.h>
#include <Adafruit_BMP085.h>
#define DEBUG 0
#define dht_pin A0
#define lightSensor A1
dht DHT;
Adafruit_BMP085 bmp;
SoftwareSerial esp8266Module(10, 11); // RX, TX
String network = "----"; // Tu SSID
String password = "-------------"; // Tu password WiFi
#define IP "184.106.153.149" // IP ThingSpeak
String GET = "GET /update?key=----------------"; // Tu Write API Key
void setup() {
if(DEBUG) Serial.begin(9600);
esp8266Module.begin(9600);
if (!bmp.begin()) {
if(DEBUG) Serial.println("BMP085 no encontrado");
while(1) {}
}
delay(2000);
}
void loop() {
setupEsp8266();
DHT.read11(dht_pin);
double humi = DHT.humidity;
double bmp_temp = bmp.readTemperature();
double bmp_pressure = bmp.readPressure();
int lightIntensity = analogRead(lightSensor);
updateTemp(String(bmp_temp), String(lightIntensity), String(bmp_pressure), String(humi));
delay(30000);
}
// Funciones: setupEsp8266(), changingMode(), connectToWiFi(), updateTemp()
// Ver código completo en GitHub
Proceso de manufactura
- Estación meteorológica solar DIY con Raspberry Pi
- 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
- Integre su estación meteorológica con CWOP: Guía práctica
- Monitor Meteorológico – Estación Meteorológica DIY con Raspberry Pi y Subida a Dropbox
- Estación Meteorológica Avanzada v2.0: Monitorización en Tiempo Real de Temperatura, Presión, Humedad y Altitud
- Persianas Inteligentes: Control Automático de Luz con Arduino y Energía Solar
- Subir datos del sensor DHT11 a ThingSpeak con Arduino MKR1000
- 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
- Monitorización Meteorológica en Tiempo Real con Arduino y ThingSpeak IoT