#include <DHT.h>
#define pinDatos 18 // GPIO4 = D2 en D1 Mini, D4 en ESP32
#define pinPulsador 4 // Pulsador on
#define pinPulsador2 5 // Pulsador off
#define pinLed 2 // LED on
#define pinLed2 15 // LED off
#define trigPin 13 // Pin del HC-SR04 - Trigger
#define echoPin 12 // Pin del HC-SR04 - Echo
DHT sensorTH(pinDatos, DHT22); // Crea objeto sensorTH
void setup() {
Serial.begin(115200);
Serial.println("<3 <3 BIENVENIDO <3 <3");
sensorTH.begin(); // Inicializa pines del sensor
pinMode(pinPulsador, INPUT);
pinMode(pinPulsador2, INPUT);
pinMode(pinLed, OUTPUT);
pinMode(pinLed2, OUTPUT);
// Inicializa el HC-SR04
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Leer el estado de los pulsadores
int pulsadorState = digitalRead(pinPulsador);
int pulsador2State = digitalRead(pinPulsador2);
// Encender el LED correspondiente al pulsador presionado
if (pulsadorState == HIGH) {
digitalWrite(pinLed, HIGH);
digitalWrite(pinLed2, LOW);
delay(2000); // Delay para evitar lecturas repetidas
float humedad = sensorTH.readHumidity();
float temperatura = sensorTH.readTemperature();
Serial.print("Sistema iniciado <3");
Serial.print("Temperatura = ");
Serial.print(temperatura);
Serial.println(" ºC");
Serial.print("Humedad = ");
Serial.print(humedad);
Serial.println(" %");
// Llamada a función para medir distancia con el HC-SR04
float distancia = medirDistancia();
Serial.print("Distancia = ");
Serial.print(distancia);
Serial.println(" cm");
} else if (pulsador2State == HIGH) {
Serial.print("Sistema apagado <3 ");
digitalWrite(pinLed2, HIGH);
digitalWrite(pinLed, LOW);
} else {
// Si ninguno de los pulsadores está presionado, apagar ambos LED
digitalWrite(pinLed, LOW);
digitalWrite(pinLed2, LOW);
}
}
float medirDistancia() {
// Generar un pulso corto en el pin Trigger del HC-SR04
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Leer el tiempo que tarda en llegar el eco
long tiempoEcho = pulseIn(echoPin, HIGH);
// Calcular la distancia en centímetros
float distancia = tiempoEcho / 58.2;
return distancia;
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
led1:A
led1:C
r1:1
r1:2
r2:1
r2:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
led2:A
led2:C
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
r3:1
r3:2
r4:1
r4:2
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
r5:1
r5:2
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND