// Definiciones básicas de pines - ajusta según tu conexión real
const int DHT_PIN = 2; // Pin para el sensor DHT22
const int SOIL_SENSOR_PIN = 26; // Pin analógico para sensor de humedad (ajusta al pin ADC que uses)
// Variables globales
float temperatura = 0.0;
float humedad = 0.0;
int humedadSuelo = 0;
int humedadSueloPorcentaje = 0;
// Variables de tiempo
unsigned long ultimaLectura = 0;
const unsigned long INTERVALO = 2000; // 2 segundos entre lecturas
// Variables para depuración
bool inicializacionCompleta = true;
// Función para leer el sensor DHT22 - versión simplificada
bool leerDHT22() {
// Para propósitos de depuración, devolvemos valores de prueba
temperatura = 25.5;
humedad = 60.0;
return true;
}
// Función para imprimir en el LCD - versión simulada para depuración
void mostrarEnLCD(float temp, float hum, int humSuelo) {
// En su lugar, enviamos todo al monitor serial
Serial.println("=== DATOS ENVIADOS AL LCD ===");
Serial.print("Temperatura: ");
Serial.print(temp);
Serial.println(" °C");
Serial.print("Humedad ambiente: ");
Serial.print(hum);
Serial.println(" %");
Serial.print("Humedad del suelo: ");
Serial.print(humSuelo);
Serial.println(" %");
Serial.println("============================");
}
void setup() {
// Iniciar comunicación serial a 9600 baudios
Serial.begin(9600);
// Esperar a que se establezca la conexión serial
delay(1000);
// Configurar pines
pinMode(DHT_PIN, INPUT);
pinMode(SOIL_SENSOR_PIN, INPUT);
// Mensaje inicial al monitor serial
Serial.println("\n\n=== SISTEMA DE MONITOREO INICIADO ===");
Serial.println("Si ves este mensaje, la inicialización básica fue exitosa.");
// Prueba de lectura del sensor de suelo
Serial.println("Probando lectura analógica del sensor de suelo...");
int lecturaInicial = analogRead(SOIL_SENSOR_PIN);
Serial.print("Valor analógico inicial: ");
Serial.println(lecturaInicial);
inicializacionCompleta = true;
Serial.println("Setup completado. Entrando al loop principal...");
}
void loop() {
// Verificar si la inicialización se completó
if (!inicializacionCompleta) {
Serial.println("ERROR: La inicialización no se completó correctamente.");
delay(1000);
return;
}
unsigned long tiempoActual = millis();
// Verificar si ha pasado el intervalo para una nueva lectura
if (tiempoActual - ultimaLectura >= INTERVALO) {
ultimaLectura = tiempoActual;
Serial.println("\n--- Nueva lectura ---");
// Leer sensor de humedad de suelo
humedadSuelo = analogRead(SOIL_SENSOR_PIN);
Serial.print("Lectura analógica del sensor de suelo: ");
Serial.println(humedadSuelo);
// Mapear a porcentaje - ajusta estos valores según tu sensor
humedadSueloPorcentaje = map(humedadSuelo, 1023, 0, 0, 100);
humedadSueloPorcentaje = constrain(humedadSueloPorcentaje, 0, 100);
// Leer DHT22 (usando valores de prueba por ahora)
bool lecturaExitosa = leerDHT22();
if (lecturaExitosa) {
// Imprimir todos los datos en el monitor serial
Serial.print("Temperatura: ");
Serial.print(temperatura);
Serial.println(" °C");
Serial.print("Humedad ambiente: ");
Serial.print(humedad);
Serial.println(" %");
Serial.print("Humedad del suelo: ");
Serial.print(humedadSueloPorcentaje);
Serial.println(" %");
// Mostrar en el LCD (simulado a través del monitor serial)
mostrarEnLCD(temperatura, humedad, humedadSueloPorcentaje);
} else {
Serial.println("Error al leer el sensor DHT22");
}
}
}