Huerto Urbano: Temperatura y Humedad aire

Para monitorear las variables ambientales más importantes para un huerto urbano, nos hemos construido dispositivos que capturen datos del ambiente y luego los guarden en un dispositivo magnético para su posterior análisis. En esta ocasión mostraremos cómo construir un dispositivo para medir la temperatura y humedad relativa del aire.

La importancia de medir la temperatura y humedad del aire

Es importante que tengamos un pleno conocimiento de la humedad del aire, ya que en altos niveles puede llegar a propiciar el crecimiento de hongos, afectando de manera negativa la salud de nuestras plantas. O definitivamente podemos tener un porcentaje de humedad en nuestro huerto, el cual sea incompatible con los vegetales que hemos planeado cultivar.

La temperatura del aire es otra variable que debemos, no solo conocer, sino también monitorear, ya que esta determina si un vegetal puede desarrollarse en nuestro clima local o definitivamente tendremos que buscar algún cultivo alternativo.

El dispositivo para medir temperatura y humedad

Construiremos un dispositivo que tendrá la capacidad de tomar medidas de la temperatura y humedad relativa del aire, en donde se encuentre desplegado; una vez hechas las mediciones estás quedarán guardadas en una memoria SD, en una tabla de doble entrada, para poder ser analizada posteriormente.

Para construir este dispositivos utilizaremos los siguientes elementos:

PiezasPrecio
Placa Arduino UNO precioUSD 15.00
Sensor de DHT22 para medir temperatura y humedad relativaUSD 8.00
Un módulo RTC DS3231, un reloj para medir el tiempoUSD 6.00
Módulo lector de tarjetas SD SPI, para guardar la información colectadaUSD 5.80
Breadboard mini de 4.5×3.5cmUSD 2.00
Cables dupont para hacer las conexionesUSD 1.00
Un contenedor o caja, de preferencia resistente a la intemperie para
hacer el despliegue del dispositivo en campo
USD 4.95
TotalUSD 42.75

Como ven el dispositivo no es nada complicado, lo más importante es que pueda ser instalado en un contenedor o caja que lo proteja del ambiente, pero que al mismo tiempo permita que sea alimentado y permita la recolección de datos por parte del sensor.

El código y cableado

En esta imagen se muestra como deben de cablearse los diferentes módulos y sensores necesarios para que nuestro dispositivo funciona de manera correcta.

Temperatura y Humedad

Comparto también el código que he utilizado para hacer funcionar este dispositivo. No soy ningún experto en programación, así que el código lo adapté de diferentes ejemplos que encontré en la web. Hasta que logre que el dispositivo hiciera lo que deseaba, capturar la temperatura y humedad relativa del aire y la guardará en la SD, para su posterior análisis.

#include <SPI.h> //para el modulo tarjeta SD
#include <SD.h> // para la tarjeta SD
#include <DHT.h> // para el sensor DHT
#include <RTClib.h> // para el RTC

//definimos el pin del DHT
#define DHTPIN 2     // pin al que vamos a conectar el sensor

// se debe descomentar segun el sensor que utilicemos
//#define DHTTYPE DHT11   // DHT 11
#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// inicializamos el sensor en 16mhz Arduino
DHT dht(DHTPIN, DHTTYPE);

// cambiar esto segun el shield de SD que se utilice;
// Arduino Ethernet shield y  modulos: pin 4
// Data loggin SD shields y modulos: pin 10
// Sparkfun SD shield: pin 8
const int chipSelect = 4;

// Creamos un archivo para guardar nuestra data
File myFile;

// RTC
RTC_DS1307 rtc;

void setup() {
  // inicializamos el sensor DHT
  dht.begin();

  // inicializamos el monitor serial
  Serial.begin(9600);

  // configuracion para para el RTC
  while(!Serial); // para un Leonardo/Micro/Zero
    if(! rtc.begin()) {
      Serial.println("Couldn't find RTC");
      while (1);
    }
    else {
      // esta linea establece el RTC a la hora y fecha en que se compilo este sketch
      rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    }
    if(! rtc.isrunning()) {
      Serial.println("RTC is NOT running!");
    }

  // configuracion para la tarjeta SD
  Serial.print("Initializing SD card...");

  if(!SD.begin(chipSelect)) {
    Serial.println("initialization failed!");
    return;
  }
  Serial.println("initialization done.");

  // abrimos el archivo
  myFile=SD.open("DATA.txt", FILE_WRITE);

  // si el archivo se abrio bien escribir:
  if (myFile) {
    Serial.println("File opened ok");
    // se imprimen las cabeceras de nuestra data
    myFile.println("Date,Time,Temperature ºC,Humidity %");
  }
  myFile.close();
}

void loggingTime() {
  DateTime now = rtc.now();
  myFile = SD.open("DATA.txt", FILE_WRITE);
  if (myFile) {
    myFile.print(now.year(), DEC);
    myFile.print('/');
    myFile.print(now.month(), DEC);
    myFile.print('/');
    myFile.print(now.day(), DEC);
    myFile.print(',');
    myFile.print(now.hour(), DEC);
    myFile.print(':');
    myFile.print(now.minute(), DEC);
    myFile.print(':');
    myFile.print(now.second(), DEC);
    myFile.print(",");
  }
  Serial.print(now.year(), DEC);
  Serial.print('/');
  Serial.print(now.month(), DEC);
  Serial.print('/');
  Serial.println(now.day(), DEC);
  Serial.print(now.hour(), DEC);
  Serial.print(':');
  Serial.print(now.minute(), DEC);
  Serial.print(':');
  Serial.println(now.second(), DEC);
  myFile.close();
  delay(300000);
}

void loggingVariables() {
  // leer la temperatura o humedad toma unos 250 milisegundos
  // las lecturas del sensor deben estar en al menos 2 segundos por que es un sensor algo lento
  // lee la temperatura en grados Celsius
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  // Para leer la temperatura en farenheit
  //float f = dht.readTemperature(true);

  // verifica si alguna lectura fallo y terminar y volver a intentar
  if  (isnan(t) /*|| isnan(f)*/) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  // para depurar cualquier error
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.print(" *C");
  Serial.print(" Humidity: ");
  Serial.print(h);
  Serial.println(" %");

  //Serial.print(f);
  //Serial.println(" *F\t");

  myFile = SD.open("DATA.txt", FILE_WRITE);
  if (myFile) {
    Serial.println("open with success");
    myFile.print(t);
    myFile.print(",");
    myFile.print(h);
    myFile.println(",");
  }
  myFile.close();
}

void loop() {
  loggingTime();
  loggingVariables();
  delay(300000);
}

Datos colectados de temperatura y humedad

El dispositivo estuvo en funcionamiento durante 7 días, durante este tiempo los datos que fueron recolectados se almacenaron en una tabla dentro de un archivo con extensión CSV. Tomando estos datos como base se puede analizas y presentar en una forma más gráfica el comportamiento que estas variables tienen.

Temperatura y Humedad

Se puede observar que la humedad relativa del aire, en el lugar donde tendremos nuestro huerto urbano, oscila entre el 84% y el 63%. Durante las primeras horas de la mañana el porcentaje de humedad es mayor y tiende a bajar a medida nos acercamos al medio día. Volviendo a tener una subida en las últimas horas del día.

Temperatura y Humedad

Al igual que hicimos con la humedad relativa, podemos analizar el comportamiento que tiene la temperatura del aire. La cual es más baja en la primeras horas de la madrugada y tiende a subir a medida que el sol comienza a subir en el cielo. Teniendo su límite superior a las 2 de la tarde. También se puede establecer que la temperatura del aire donde tendremos nuestro huerto urbano oscilará entre los 24°C y los 30°C. Ahora conocemos que en nuestro huerto urbano solo podrán haber cultivos que puedan desarrollarse en estás temperaturas.

Temperatura y Humedad

Al cruzar los datos de la variables se puede observar que se comportan de manera inversa. Cuando la temperatura sube la humedad relativa baja y viceversa. A las 4pm del día en que se tomaron estos datos, se dio un pequeño chubasco, que apenas duro unos minutos. Podemos ver que en este momento la temperatura del aire bajo a causa de la lluvia y está misma hizo que la humedad subiera. Inmediatamente termino el pequeño chubasco, la temperatura subió superando el nivel que tenía antes de la lluvia y por consiguiente la humedad relativa bajo, aunque no en igual proporción de como subió la temperatura. Esto corresponde a cuando hace un día caluroso y cae una pequeña lluvia, que hace que luego el ambiente se sienta aún más caliente que antes que lloviera.

Conclusión

Al final nuestro dispositivo nos brindo la posibilidad de colectar los datos de la temperatura y humedad relativa del aire, algo que nos ayudará al momento que montemos nuestro huerto urbano, para elegir de mejor manera los cultivos que son compatibles con estos niveles de temperatura y humedad relativa.

El dispositivo funcionó como se esperaba. Lo dejamos durante seis días funcionando de manera continua, durante estos días hubieron un par de tormentas, lo cual nos sirvió para aprender como varían la temperatura y humedad al momento que se registra una lluvia en nuestro huerto urbano.

Saludos a todos.-

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top