#include <DHT.h>
#include <DHT_U.h>
// Definición de pines para los sensores
const int trigPin = 2; // Sensor ultrasónico - Trigger
const int echoPin = 4; // Sensor ultrasónico - Echo
const int pirPin = 13; // Sensor de movimiento PIR
const int ldrPin = 34; // Fotorresistor (LDR) - Pin analógico
const int gasPin = 35; // Sensor de gas (potenciómetro) - Pin analógico
const int dhtPin = 14; // Sensor DHT22
// Tipo de sensor DHT
#define DHTTYPE DHT22
// Inicialización del sensor DHT
DHT dht(dhtPin, DHTTYPE);
// Variables para el sensor ultrasónico
long duration;
int distance;
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(pirPin, INPUT);
dht.begin(); // Inicia el sensor DHT
}
void loop() {
// --- Lectura del sensor ultrasónico (Distancia) ---
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// --- Lectura del sensor PIR (Movimiento) ---
int pirState = digitalRead(pirPin);
Serial.print("Estado del PIR: ");
if (pirState == HIGH) {
Serial.println("Movimiento detectado!");
} else {
Serial.println("Sin movimiento.");
}
// --- Lectura del fotorresistor LDR (Luminosidad) ---
int ldrValue = analogRead(ldrPin);
Serial.print("Luminosidad: ");
Serial.println(ldrValue);
// --- Lectura del sensor de gas (Concentración) ---
int gasValue = analogRead(gasPin);
Serial.print("Concentracion de Gas: ");
Serial.println(gasValue);
// --- Lectura del sensor DHT22 (Temperatura y Humedad) ---
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Error al leer del sensor DHT22!");
} else {
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.print(" *C, Humedad: ");
Serial.print(humidity);
Serial.println(" %");
}
Serial.println("--------------------");
delay(2000); // Espera 2 segundos antes de la siguiente lectura
}