#include <BluetoothSerial.h>
#include <DHT.h>
//DHT
#define DHTPIN 5 // Pin donde está conectado el sensor DHT22
#define DHTTYPE DHT22 // Tipo de sensor DHT (DHT22 o DHT11)
DHT dht(DHTPIN, DHTTYPE);
BluetoothSerial SerialBT;
//SALA 1
int ledPin1 = 2;
int buttonPin1 = 12;
//SALA 2
int ledPin2 = 13;
//HABITACION
int ledPin3 = 15;
int buttonPin3 = 19;
//BAÑO
int ledPin4 = 23;
int buttonPin4 = 33;
//COCINA
int ledPin5 = 32;
int buttonPin5 = 22;
//GARAJE
int ledPin6 = 25;
int buttonPin6 = 4;
//MAQUINAS
int ledPin7 = 26;
int buttonPin7 = 18;
//FAROLA
int ledPin8 = 34; //no va en este esp32, falla el pin pero la programacion está bien (leer monitor serie)
void setup() {
Serial.begin(115200);
SerialBT.begin("ESP32_LED_Control");
dht.begin();
pinMode(ledPin1, OUTPUT);
pinMode(buttonPin1, INPUT_PULLUP);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(buttonPin3, INPUT_PULLUP);
pinMode(ledPin4, OUTPUT);
pinMode(buttonPin4, INPUT_PULLUP);
pinMode(ledPin5, OUTPUT);
pinMode(buttonPin5, INPUT_PULLUP);
pinMode(ledPin6, OUTPUT);
pinMode(buttonPin6, INPUT_PULLUP);
pinMode(ledPin7, OUTPUT);
pinMode(buttonPin7, INPUT_PULLUP);
}
void loop() {
//DHT
float t = dht.readTemperature(); // Leer temperatura en grados Celsius
float h = dht.readHumidity(); // Leer humedad relativa
if (isnan(h) || isnan(t)) {
Serial.println("Error al leer el sensor DHT22");
return; }
Serial.print("Humedad: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" °C");
// Enviar datos a la aplicación a través de Bluetooth
SerialBT.print(t);
SerialBT.println(";");
SerialBT.print(h);
SerialBT.print(";");
//Leer pulsador 1
if (digitalRead(buttonPin1) == LOW) {
digitalWrite(ledPin1, !digitalRead(ledPin1));
digitalWrite(ledPin2, !digitalRead(ledPin2));
delay(200);
}
//Leer pulsador 3
if (digitalRead(buttonPin3) == LOW) {
digitalWrite(ledPin3, !digitalRead(ledPin3));
delay(200);
}
//Leer pulsador 4
if (digitalRead(buttonPin4) == LOW) {
digitalWrite(ledPin4, !digitalRead(ledPin4));
delay(200);
}
//Leer pulsador 5
if (digitalRead(buttonPin5) == LOW) {
digitalWrite(ledPin5, !digitalRead(ledPin5));
delay(200);
}
//Leer pulsador 6
if (digitalRead(buttonPin6) == LOW) {
digitalWrite(ledPin6, !digitalRead(ledPin6));
delay(200);
}
//Leer pulsador 7
if (digitalRead(buttonPin7) == LOW) {
digitalWrite(ledPin7, !digitalRead(ledPin7));
delay(200);
}
//Comandos Bluetooth
while (SerialBT.available()) {
char command = SerialBT.read();
if (command == 'conectado') {
SerialBT.println("Conexión establecida");
} else if (command == '1') {
digitalWrite(ledPin1, !digitalRead(ledPin1));
SerialBT.println("Primer LED cambiado");
} else if (command == '2') {
digitalWrite(ledPin2, !digitalRead(ledPin2));
SerialBT.println("Segundo LED cambiado");
} else if (command == '3') {
digitalWrite(ledPin3, !digitalRead(ledPin3));
SerialBT.println("Tercer LED cambiado");
} else if (command == '4') {
digitalWrite(ledPin4, !digitalRead(ledPin4));
SerialBT.println("crto LED cambiado");
} else if (command == '5') {
digitalWrite(ledPin5, !digitalRead(ledPin5));
SerialBT.println("qnto LED cambiado");
} else if (command == '6') {
digitalWrite(ledPin6, !digitalRead(ledPin6));
SerialBT.println("sxto LED cambiado");
} else if (command == '7') {
digitalWrite(ledPin7, !digitalRead(ledPin7));
SerialBT.println("sptmo LED cambiado");
} else if (command == 'E') { //Encender todo por comando de voz
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(ledPin4, HIGH);
digitalWrite(ledPin5, HIGH);
digitalWrite(ledPin6, HIGH);
digitalWrite(ledPin7, HIGH);
digitalWrite(ledPin8, HIGH);
} else if (command == 'A') { //Apagar todo con comando de voz
digitalWrite(ledPin1, LOW);
digitalWrite(ledPin2, LOW);
digitalWrite(ledPin3, LOW);
digitalWrite(ledPin4, LOW);
digitalWrite(ledPin5, LOW);
digitalWrite(ledPin6, LOW);
digitalWrite(ledPin7, LOW);
digitalWrite(ledPin8, LOW);
} else if (command == 'C') { //Encender luz cocina voz
digitalWrite(ledPin5, HIGH);
} else if (command == 'CA') { //Apagar luz cocina voz
digitalWrite(ledPin5, LOW);
} else if (command == 'H') { //Encender luz habitacion voz
digitalWrite(ledPin3, HIGH);
} else if (command == 'HA') { //Apagar luz habitacion voz
digitalWrite(ledPin3, LOW);
} else if (command == 'B') { //Encender luz baño voz
digitalWrite(ledPin4, HIGH);
} else if (command == 'BA') { //Apagar luz baño voz
digitalWrite(ledPin4, LOW);
} else if (command == 'S2') { //Encender luz sala2 voz
digitalWrite(ledPin2, HIGH);
} else if (command == 'S2A') { //Apagar luz sala2 voz
digitalWrite(ledPin2, LOW);
} else if (command == 'S1') { //Encender luz sala1 voz
digitalWrite(ledPin1, HIGH);
} else if (command == 'S1A') { //Apagar luz sala1 voz
digitalWrite(ledPin1, LOW);
} else if (command == 'G') { //Encender luz garaje voz
digitalWrite(ledPin6, HIGH);
} else if (command == 'SM') { //Encender luz maquinas voz
digitalWrite(ledPin7, HIGH);
}
}
}