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