Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
Los invernaderos son estructuras que permiten el cultivo de plantas en condiciones controladas, protegiéndolas de las inclemencias del tiempo y optimizando su crecimiento. Con el uso de Arduino, es posible automatizar y monitorear diversos aspectos de un invernadero, como la temperatura, la humedad y la iluminación. Esto no solo facilita el mantenimiento, sino que también mejora la eficiencia y la productividad del cultivo. En este artículo, exploraremos cómo crear un sistema de control básico para un invernadero utilizando Arduino.
Project: En este proyecto, crearemos un sistema automatizado para controlar la temperatura y la humedad dentro de un invernadero. El sistema utilizará sensores para monitorear las condiciones ambientales y actuará sobre dispositivos como ventiladores y bombas de agua para mantener los niveles óptimos. Los objetivos principales son:
Components List:
Examples:
#include "DHT.h"
DHT dht(DHTPIN, DHTTYPE);
void setup() { Serial.begin(9600); dht.begin(); }
void loop() { float h = dht.readHumidity(); float t = dht.readTemperature();
// Verificamos si la lectura ha fallado if (isnan(h) || isnan(t)) { Serial.println("Error al leer del sensor DHT!"); return; }
Serial.print("Humedad: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperatura: "); Serial.print(t); Serial.println(" *C");
delay(2000); // Esperamos 2 segundos entre lecturas }
2. **Control del Ventilador y la Bomba de Agua:**
```cpp
#define FAN_PIN 3 // Pin digital conectado al relé del ventilador
#define PUMP_PIN 4 // Pin digital conectado al relé de la bomba de agua
#define TEMP_THRESHOLD 30.0 // Umbral de temperatura en grados Celsius
#define HUM_THRESHOLD 40.0 // Umbral de humedad en porcentaje
void setup() {
pinMode(FAN_PIN, OUTPUT);
pinMode(PUMP_PIN, OUTPUT);
digitalWrite(FAN_PIN, LOW);
digitalWrite(PUMP_PIN, LOW);
Serial.begin(9600);
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Error al leer del sensor DHT!");
return;
}
if (t > TEMP_THRESHOLD) {
digitalWrite(FAN_PIN, HIGH); // Encendemos el ventilador
} else {
digitalWrite(FAN_PIN, LOW); // Apagamos el ventilador
}
if (h < HUM_THRESHOLD) {
digitalWrite(PUMP_PIN, HIGH); // Encendemos la bomba de agua
} else {
digitalWrite(PUMP_PIN, LOW); // Apagamos la bomba de agua
}
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
delay(2000); // Esperamos 2 segundos entre lecturas
}
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() { lcd.begin(16, 2); lcd.print("Invernadero"); dht.begin(); }
void loop() { float h = dht.readHumidity(); float t = dht.readTemperature();
if (isnan(h) || isnan(t)) { lcd.setCursor(0, 1); lcd.print("Error de lectura"); return; }
lcd.setCursor(0, 0); lcd.print("Temp: "); lcd.print(t); lcd.print(" C");
lcd.setCursor(0, 1); lcd.print("Hum: "); lcd.print(h); lcd.print(" %");
delay(2000); // Esperamos 2 segundos entre lecturas }