Video : Automatizar acciones en el invernadero

Hay varias tareas repetitivas que realizar en el invernadero y en el mantenimiento del sistema acuaponico. Por eso me decidí a realizar un pequeño proyecto en arduino. Con el podre controlar la temperatura y otras cosas.

Yo no soy experto en el tema, pero hasta el momento e podido realizar todo sin grandes problemas.

objetivos del proyecto

– Medir la temperatura y la humedad
– Mostrar la información en una pantalla de LCD de 16×2
– Controlar interruptores (reles)

Materiales necesarios

– Placa arduino uno
– Sensor humedad y temperatura DHT11
– LCD 16×2
– Modulo 4 reles

Conexiones



Código fuente


// Incluimos librería
#include <DHT.h> // para sensor temperatura
#include <LiquidCrystal.h> // para LCD 16x2
//#include  <LiquidCrystal_I2C.h>
 
// Definimos el pin digital donde se conecta el sensor temperatura
#define DHTPIN 2
// Dependiendo del tipo de sensor
#define DHTTYPE DHT11
 
// Inicializamos el sensor DHT11
DHT dht(DHTPIN, DHTTYPE);

//Crear el objeto LCD con los números correspondientes (rs, en, d4, d5, d6, d7)
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
//LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

//Dibujo caracter grado
byte grado[8] =
 {
 0b00001100,
 0b00010010,
 0b00010010,
 0b00001100,
 0b00000000,
 0b00000000,
 0b00000000,
 0b00000000
 };

//iniciamos los relay y asignamos pines
int relay1 = 10;
int relay2 = 11;
int relay3 = 12;
int relay4 = 3;

void setup() {
 
  // Comenzamos el sensor DHT
  dht.begin();
  
   // Inicializar el LCD con el número de  columnas y filas del LCD
  lcd.begin(16, 2);
  lcd.createChar(1, grado);// agregamos el caracter grado 
  
  // Escribimos el Mensaje en el LCD.
  lcd.setCursor(0, 0);
  lcd.print("Iniciando...");
  lcd.setCursor(0, 1);
  lcd.print("Acuaponico.cl");

  // Inicializar el pin digital relays, como salidas
  pinMode(relay1, OUTPUT);   
  pinMode(relay2, OUTPUT);   
  pinMode(relay3, OUTPUT);   
  pinMode(relay4, OUTPUT);

  // Apagamos todos los relays
  digitalWrite(relay1, HIGH); //apagamos el relay
  digitalWrite(relay2, HIGH); //apagamos el relay
  digitalWrite(relay3, HIGH); //apagamos el relay
  digitalWrite(relay4, HIGH); //apagamos el relay
}
 
void loop() {
    // Esperamos 5 segundos entre medidas
  delay(5000);
 
  // Leemos la humedad relativa
  int h = dht.readHumidity();
  // Leemos la temperatura en grados centígrados (por defecto)
  int t = dht.readTemperature();
  // Leemos la temperatura en grados Fahreheit
  float f = dht.readTemperature(true);
 
  // Comprobamos si ha habido algún error en la lectura
  if (isnan(h) || isnan(t) || isnan(f)) {
    //Serial.println("Error obteniendo los datos del sensor DHT11");
    lcd.setCursor(0, 1);
    lcd.print("Error DHT11");
    return;
  }

  // Escribir en LCD humedad y temperatura

  lcd.setCursor(0, 0);
  lcd.print("Humedad: ");
  lcd.print(h);
  lcd.print(" %");

  lcd.setCursor(0, 1);
  lcd.print("Grados : ");
  lcd.print(t);
  lcd.write(1); //Imprimimos nuestro caracter Grados
  lcd.print("C");

  //Relay : 1
  if(t<17){
    digitalWrite(relay1, LOW); //encendemos el relay
  }else{
    digitalWrite(relay1, HIGH); //apagamos el relay
  }
}

1 opinión en “Video : Automatizar acciones en el invernadero”

felipe

espero y funcione el control de humedad que es lo que me hace falta con urgencia

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *