Ir al contenido

Estación Meteorológica

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

HTML Snippets Powered By : XYZScripts.com