Invernadero Inteligente con Arduino y Techo Corredizo Automático⚡

 Invernadero Inteligente con Arduino y Techo Corredizo Automático⚡




✅Proyecto con Arduino - Invernadero inteligente con techo corredizo automático para mantener un cultivo en codiciones adecuada para su germinación. Este proyecto combina conocimientos en electrónica, programación y ciencias naturales. Espero te sea de mucha utilidad y sea una guía para elaborar tu proyecto para la feria de ciencia y tecnología o para presentar en tu Colegio o Universidad.
⚙️Materiales:
-Arduino UNO
-Sensor temperatura DHT11
-Sensor de humedad o agua YL-38 (Puedes usar el sensor de agua rojo)
-Servomotor SG90
-Buzzer (zumbador)
-Transistor Mosfet IRF530 N
-Resistencia de 1K
-Ventilador o extractor de calor
-Pantalla LCD 16x2 con I2C
-Protoboard, jumpers, entre otros.

Diagrama de Conexiones - Arduino




Código de Programación Arduino

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include "DHT.h"

//Crear el objeto lcd  dirección  0x3F y 16 columnas x 2 filas
LiquidCrystal_I2C lcd(0x27,16,2);  //

//Definir pin conexión sensor temperatura
#define DHTPIN 8
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);

//variables
Servo servoMotor;
int sensorHumedad = A0;
int humedad = 0;
float temperatura = 0;
int ventilador = 6;
int alarma = 5;

void setup() {
  //Inicializar el LCD
  lcd.init();
  //Encender la luz de fondo.
  lcd.backlight();
  //Limpiar la pantalla
  lcd.clear();

  //Inicializar sensor DHT11
  dht.begin();

  //servomotor conectado al pin 7 e inicia en 0 grados
  servoMotor.attach(7);
  servoMotor.write(0);
  //pines de ventilador y alarma definidos como salida e inician apagados
  pinMode(ventilador,OUTPUT);
  pinMode(alarma,OUTPUT);
  digitalWrite(ventilador,LOW);
  digitalWrite(alarma,LOW);
}

void loop() {
  //humedad: seco -> 1023 y humedo -> 0
  //lectura de humedad
  humedad = analogRead(sensorHumedad);
  humedad = map(humedad,700,1023,100,0);
  //lectura de temperatura
  temperatura = dht.readTemperature();

  if(temperatura > 25 && temperatura < 40){
    if(humedad < 50){
      //si la temperatura es adecuada (entre 25 y 40 °C) y no esta lloviendo, abre el techo y enciende ventilador
      servoMotor.write(90);
      digitalWrite(ventilador,HIGH);
    }else{
      //si la temperatura es adecuada (entre 25 y 40 °C) y si esta lloviendo, cierra el techo
      servoMotor.write(0);
      digitalWrite(ventilador,LOW);
    }
    digitalWrite(alarma,LOW);
  }
  else if(temperatura <= 25){
    //si la temperatura es menor o igual a 25 °C cierra el techo y apaga el ventilador
    servoMotor.write(0);
    digitalWrite(ventilador,LOW);
    digitalWrite(alarma,LOW);
  }
  else if(temperatura >= 40){
    //si la temperatura es mayor a 40 °C sin importar que este lloviendo abre el techo y enciende el ventilador y alarma
    servoMotor.write(90);
    digitalWrite(ventilador,HIGH);
    digitalWrite(alarma,HIGH);
    delay(200);
    digitalWrite(alarma,LOW);
    delay(100);
  }


  //Ubicamos el cursor en la primera posición(columna:0) de la segunda línea(fila:0)
  lcd.setCursor(0, 0);
  //Escribimos los datos en la pantalla
  lcd.print("Humedad: ");
  lcd.print(humedad +  String(" % "));
  lcd.setCursor(0, 1);
  lcd.print("Temp: ");
  lcd.print(temperatura);
  lcd.print(String(" ") + (char)223 + String("C"));
  delay(1000);
 
}





Alex7 Tutoriales

Tutoriales que en algún momento te pueden ser útiles.... Suscribete!

Publicar un comentario

Artículo Anterior Artículo Siguiente