Hola amigos! Hoy vamos a dar inicio con los tutoriales para compartir el conocimiento con los demás.
Desde hace mucho tiempo que tenía ganas de tener una estación meteorologíca pero realizada con mis propias manos. Asi que puse “manos a la obra” y la armé en fase experimental pero 100% funcional.
Los materiales que utilicé son:
- Micro controlador ESP8266
- Protoboard para montaje
- Fuente de alimentación USB
- Sensor DHT11 o DHT22 (el que consigan y puedan pagar)
Si bien hoy en día está de moda el Arduino ESP32, yo utilice el ESP8266 porque ya lo tenía y no quería gastar mucho dinero.
Lo que tenemos que hacer es conectar el pin del sensor (por lo general el pin 1) a una entrada GPIO del ESP8266. Los pines 2 y 3 se alimentan con 3.3v o 5v (dependiendo el modelo). La alimentacion la obtengo de forma controlada del ESP8266 también.
La idea es que la información de la temperatura y la humedad, se envíen mediante APRS junto a las coordenadas aproximadas de la estación meteorologíca.
El código que debemos incorporar mediante Arduino IDE al micro controlador es el siguiente:
#include <ESP8266WiFi.h>
#include <DHT.h>
#include <APRS-IS.h>
#define DHTPIN D4 // Pin donde está conectado el DHT11
#define DHTTYPE DHT11 // Modelo del sensor DHT11
// Configuración WiFi
const char* ssid = "TU_SSID";
const char* password = "TU_PASSWORD";
// Configuración APRS
const char* callsign = "TU_CALLSIGN";
const char* passcode = "TU_PASSCODE"; // Lo puedes generar con una herramienta de APRS
APRS_IS aprs_client(callsign, passcode);
// Coordenadas de tu domicilio
const char* lat = "ddmm.mmN"; // Ejemplo: 2234.56N
const char* lon = "ddmm.mmW"; // Ejemplo: 04323.56W
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(115200);
dht.begin();
// Conectar a WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Conectando a WiFi...");
}
Serial.println("Conectado a WiFi");
// Conectar a APRS
if (aprs_client.connect("noam.aprs2.net", 14580)) {
Serial.println("Conectado a APRS-IS");
} else {
Serial.println("Error conectando a APRS-IS");
}
}
void loop() {
// Leer datos del sensor DHT11
float h = dht.readHumidity();
float t = dht.readTemperature();
float heatIndex = dht.computeHeatIndex(t, h, false); // Sensación térmica
// Verificar si los valores son válidos
if (isnan(h) || isnan(t)) {
Serial.println("Error leyendo el sensor DHT");
return;
}
// Enviar los datos por APRS
String aprs_message = String("T:") + t + " H:" + h + " ST:" + heatIndex;
aprs_client.sendPosition(lat, lon, aprs_message.c_str());
// Esperar 10 minutos
delay(600000);
}
Con esto, seria suficiente para poder comenzar y replicar la estación meteorológica experimental.
Espero tus consultas o comentarios mediante mi cuenta de Telegram https://t.me/j0m4x