Created
December 31, 2020 05:31
-
-
Save brandon22esquivel/22e419f124449de12c06ed30d9be831b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// LÍBRERIAS | |
#include <SoftwareSerial.h> //Libreria Software Serial para Bluetooth (Se descarga), en esta caso usamos el HC-05 que sirve para usarse de Esclavo ó Maestro | |
#include <LiquidCrystal_I2C.h> //Librería de la pantalla LCD | |
#include <Wire.h> //Librería para permitir comunicarse con el I2C | |
#include <Servo.h> // librería para poder controlar el servo | |
#include <DHT.h> //Librería paa usar sensores DHT (Se descarga) | |
#include <DHT_U.h> //Complemento de la librería DHT | |
//PINES ESPECIALES | |
#define DHTPIN 6 //Se define el pin del DHT | |
#define trig 7 // Emisor de pulso o señal | |
#define echo 8 // Receptor "del eco" del pulso o señal | |
#define DHTTYPE DHT11 //Se define el tipo de sensor que se usara para medir la temperatura y humedad, en este caso sera el DHT-11 | |
//OBJETOS DE LAS LIBRERÍAS | |
DHT dht(DHTPIN, DHTTYPE); // Crea un objeto de la librería DHT, indicando así el sensor | |
SoftwareSerial BT(10,11); //Definir los pines RX y TX del Arduino conectados al Bluetooth | |
Servo garage; // Crea un objeto servo llamado servoMotor | |
Servo ventana; //Crea un objeto servo llamado ventana | |
Servo puerta; //Crea un objeto Servo llamado puerta | |
LiquidCrystal_I2C lcd(0x27,20,4); //Crear el objeto lcd con dirección (0x27,20,4) si es una pantalla de 20x4 y/o usar (0x3,16,2) si es una pantalla de 16x2 | |
//OBJETOS | |
char Mensaje; //Variable que mandara los mensajes a los Switches y por voz | |
// Bocina | |
const int buzzer = 13; //Bocina conectada al Pin 13 | |
//Sistema de IR | |
const int sensorPin = 12; //Sensor de IR conectado al Pin 12 | |
const int LEDIV = 31; //Led Interior Verde | |
const int LEDIR = 30; //Led Interior Rojo | |
int luz = 0; //Valor para leer el dato de la luz | |
int valor_sensor = 0; //Este sera el valor que andara leyendo la fotoresistencia | |
int valor_limite = 475; //Este valor hara que el LED cambie de estado a una determinada luminosidad. | |
int valor_luz; | |
//Sistema de luces exteriores | |
const int LEDE1 = 32; //Led Exterior 1 | |
const int LEDE2 = 33; //Led Exterior 2 | |
const int LEDE3 = 34; //Led Exterior 3 | |
const int LEDE4 = 35; //Led Exterior 4 | |
const int LDR = A0; //El LDR esta conectado en el pin A0 | |
//Sistema de luces interiores | |
const int LEDR1 = 36; //Led Room 1 | |
const int LEDR2 = 37; //Led Room 2 | |
const int LEDR3 = 38; //Led Room 3 | |
const int LEDP1 = 39; //Led Pasillo 1 | |
const int LEDP2 = 40; //Led Pasillo 2 | |
const int LEDP3 = 41; //Led Pasillo 3 | |
const int LEDBO = 42; //Led Baño | |
const int LEDSA = 43; //Led Sala | |
const int LEDCO = 44; //Led Comedor | |
const int LEDCA = 45; //Led Cocina | |
const int LEDGA = 46; //Led Garage | |
//Luces para el Garaje | |
const int LEDVG = 47; //Led Verde Garage | |
const int LEDRG = 48; //Led Rojo Garage | |
//Variables para almacenar las lecturas del sensor DHT11 | |
float celsius; | |
float fahrenheit; | |
float humedad; | |
void setup() { | |
Serial.begin(9600); | |
BT.begin(38400); //Inicializamos el puerto serie BT (Para Modo AT 2) | |
dht.begin(); //Comunicacion con el DHT11 | |
Serial.println("Iniciando todos los sistemas... Listo"); //Mensaje para indicar que esta el sistema listo | |
lcd.init(); //Inicializamos la pantalla LCD | |
lcd.backlight(); //Encender la luz de fondo | |
lcd.setCursor(3,1); | |
lcd.print("BIENVENIDO(A)"); //Mensaje de Bienvenida | |
lcd.setCursor(1,2); | |
lcd.print("A LA CASA DOMOTICA"); //Mensaje de Bienvenida | |
delay(5000); | |
garage.attach(2); //Se conecta la variable del Servo Garage al pin 2 | |
puerta.attach(3); //Se conecta la variable del Servo Puerta al pin 3 | |
ventana.attach(4); //Se conecta la variable del Servo Ventana al pin 4 | |
//Se establecen los pines como entradas o salidas | |
//Todos los LED's se establecen como Salida | |
pinMode(sensorPin, INPUT); //Se establece como Entrada | |
pinMode(buzzer, OUTPUT); | |
pinMode(LEDIV,OUTPUT); | |
pinMode(LEDIR,OUTPUT); | |
pinMode(LEDE1,OUTPUT); | |
pinMode(LEDE2,OUTPUT); | |
pinMode(LEDE3,OUTPUT); | |
pinMode(LEDE4,OUTPUT); | |
pinMode(LDR,INPUT); //Se establece el LDR como Entrada | |
pinMode(LEDR1, OUTPUT); | |
pinMode(LEDR2, OUTPUT); | |
pinMode(LEDR3, OUTPUT); | |
pinMode(LEDP1, OUTPUT); | |
pinMode(LEDP2,OUTPUT); | |
pinMode(LEDP3,OUTPUT); | |
pinMode(LEDBO,OUTPUT); | |
pinMode(LEDSA,OUTPUT); | |
pinMode(LEDCO,OUTPUT); | |
pinMode(LEDCA,OUTPUT); | |
pinMode(LEDGA,OUTPUT); | |
pinMode(LEDVG,OUTPUT); | |
pinMode(LEDRG,OUTPUT); | |
pinMode(trig, OUTPUT); //Se configura el Emisor como Salida | |
pinMode(echo, INPUT); //Se configura el Receptor como Entrada | |
} | |
void loop() | |
{ | |
long duration, distance; //Establecemos duration y distance como variables numéricas extensas | |
digitalWrite(trig, LOW); //Para tener un pulso limpio empezamos con 2 microsegundos en apagado | |
delayMicroseconds(2); | |
digitalWrite(trig, HIGH); //Mandamos un pulso de 5 microsegundos | |
delayMicroseconds(5); | |
digitalWrite(trig, LOW); //Apagamos | |
duration = pulseIn(echo, HIGH); //Medimos el tiempo que la señal tarda en volver al sensor en microsegundos | |
distance = (duration/2)*0.0343; //La distancia es el tiempo por la velocidad del sonido (343 m/s = 0.0343 cm/microseg) | |
digitalWrite(LEDVG,LOW); //Led verde indica que la puerta esta abierta | |
digitalWrite(LEDRG,HIGH); //Led Rojo indicara que la puerta esta cerrada | |
if (distance < 10) | |
{ //Si la distancia es menor a un metro y medio, se abrira la puerta del garage | |
Serial.println("Puerta de Garage abierta"); | |
digitalWrite(LEDVG,HIGH); | |
digitalWrite(LEDRG,LOW); | |
lcd.clear(); | |
lcd.setCursor(1,1); | |
lcd.print("AUTOMOVIL LLEGANDO"); | |
lcd.setCursor(2,2); | |
lcd.print("ABRIENDO GARAJE"); | |
delay(1000); | |
tone(buzzer,600); | |
delay(1000); | |
noTone(buzzer); | |
garage.write(150); | |
delay(8000); | |
tone(buzzer,500); | |
delay(2000); | |
noTone(buzzer); | |
garage.write(0); | |
delay(1000); | |
} | |
else | |
{ | |
Serial.println("Puerta de Garage cerrada"); | |
digitalWrite(LEDVG,LOW); | |
digitalWrite(LEDRG,HIGH); | |
lcd.clear(); | |
lcd.setCursor(7,1); | |
lcd.print("GARAJE"); | |
lcd.setCursor(7,2); | |
lcd.print("CERRADO"); | |
delay(1000); | |
garage.write(0); | |
} | |
//SISTEMA DE TEMPERATURA Y HUMEDAD | |
celsius = dht.readTemperature(); //Lee y almacena la temperatura del sensor DHT11 | |
fahrenheit = dht.readTemperature(true); //Lee y almacena la temperatura del sensor DHT11 | |
humedad = dht.readHumidity(); //Lee y almacena la humedad del sensor DHT11 | |
valor_sensor = analogRead(A0); //Lee el valor del sensor LDR | |
valor_luz = map(valor_sensor, 1024, 0, 0, 255); //Mapeo de los valores de la fotocelda en un rango de 0 a 255 % | |
//Envía los datos del DHT11 como la temperatura, humedad e intensidad a la aplicación móvil por medio del Bluetooth | |
BT.print(celsius); | |
BT.print(" °C"); | |
BT.print("|"); | |
BT.print(fahrenheit); | |
BT.print(" °F"); | |
BT.print("|"); | |
BT.print(humedad); | |
BT.print(" %"); | |
BT.print("|"); | |
BT.print(valor_luz); | |
BT.print(" %"); | |
delay(1000); | |
//Se envían los datos del DHT11 a la pantalla LCD | |
lcd.clear(); | |
lcd.setCursor(0,0); | |
lcd.print("CENTIGRADOS: "); | |
lcd.print(celsius); | |
lcd.print(" C"); | |
lcd.setCursor(0,1); | |
lcd.print("FAHRENHEIT: "); | |
lcd.print(fahrenheit); | |
lcd.print(" F"); | |
lcd.setCursor(0,2); | |
lcd.print("HUMEDAD: "); | |
lcd.print(humedad); | |
lcd.print(" %"); | |
lcd.setCursor(0,3); | |
lcd.print("ILUMINACION: "); | |
lcd.print(valor_luz); | |
lcd.print(" %"); | |
delay(1000); | |
//Se envían los datos del DHT11 al Monitor Serie | |
Serial.print(celsius); | |
Serial.print(" °C"); | |
Serial.print("|"); | |
Serial.print(fahrenheit); | |
Serial.print(" °F"); | |
Serial.print("|"); | |
Serial.print(humedad); | |
Serial.print(" %"); | |
Serial.print("|"); | |
Serial.print(valor_luz); | |
Serial.print(" %"); | |
delay(1000); | |
//NOTA: El DHT11 manda datos cada segundo. Si se usa un DHT22, cambiarlo por delay(2000) | |
//SISTEMA DE ALARMA AL ENTRAR EN LA PUERTA | |
int value = 0; //Declaramos una variable llamada value donde guardara el valor de la luz leida por el sensor | |
value = digitalRead(sensorPin); //el valor va a ser leido por el sensor | |
digitalWrite(LEDIV,HIGH); //Led verde indica que no hay movimiento y todo esta seguro | |
digitalWrite(LEDIR,LOW); //Led Rojo indicara que hay movimiento inesperado | |
if (value == HIGH) //Aquí indicamos que si el valor esta encendido, en el Serial mostrara que no hay obstaculo y por lo tanto en el noTOne(buzzer) no emitirá un sonido | |
{ | |
Serial.println("Seguro: No hay movimiento"); | |
noTone(buzzer); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SEGURO: SIN"); | |
lcd.setCursor(5,2); | |
lcd.print("MOVIMIENTO"); | |
delay(1000); | |
} | |
//En caso contrario | |
else | |
{ | |
digitalWrite(LEDIR,HIGH); //El Led Rojo se enciende, indicando que hay movimiento | |
digitalWrite(LEDIV,LOW); //El Led Verde se apaga | |
lcd.clear(); | |
lcd.setCursor(1,1); | |
lcd.print("!! ADVERTENCIA !!"); | |
lcd.setCursor(3,2); | |
lcd.print("HAY MOVIMIENTO"); | |
delay(1000); | |
tone(buzzer,2500); //Suena un tono | |
delay(1000); //Durante 150 ms | |
tone(buzzer,1500); //Suena otro tono | |
delay(1000); //Durante 150 ms | |
noTone(buzzer); | |
Serial.println("Advertencia: Detectó movimiento"); //Manda un mensaje al Serial donde indica que hay movimiento | |
} | |
delay(100); //Se actualizara cada 100 ms | |
//SISTEMA AUTOMÁTICO DE LUCES EXTERIORES | |
valor_sensor = analogRead(A0); //El valor del sensor va a ser leido analogamente por el LDR | |
luz = (5.0 * valor_sensor * 100.0)/1024.0; //Para entender esta formula visitar: http://programarfacil.com/podcast/48-sensor-de-temperatura-en-arduino/ | |
Serial.print(luz); //Manda el valor de la luz al Serial | |
Serial.println(" de valor luz"); // junto con un mensaje que indica el valor de la luz | |
delay(1000); //Cada segundo se actualizará | |
if (luz <= valor_limite) //Si el valor de luz es menor o igual que el valor limite | |
{ | |
//Todos los LED's exteriores se apagan | |
digitalWrite (LEDE1, LOW); | |
digitalWrite (LEDE2, LOW); | |
digitalWrite (LEDE3, LOW); | |
digitalWrite (LEDE4, LOW); | |
//Se manda una pantalla al LCD | |
lcd.clear(); | |
lcd.setCursor(2,1); | |
lcd.print("LED's EXTERIORES"); | |
lcd.setCursor(7,2); | |
lcd.print("APAGADOS"); | |
delay(1000); | |
} | |
else if (luz > valor_limite) //En caso contrario, si el valor de luz es mayor que el valor limite | |
{ | |
//Todos los LED's exteriores se encienden automaticamente | |
digitalWrite (LEDE1, HIGH); | |
digitalWrite (LEDE2, HIGH); | |
digitalWrite (LEDE3, HIGH); | |
digitalWrite (LEDE4, HIGH); | |
//Se manda una pantalla al LCD | |
lcd.clear(); | |
lcd.setCursor(2,1); | |
lcd.print("LED's EXTERIORES"); | |
lcd.setCursor(5,2); | |
lcd.print("ENCENDIDOS"); | |
delay(1000); | |
} | |
delay(1000); | |
//SISTEMA DE LUCES INTERIORES Y SISTEMA DE ABRIR-CERRAR PUERTAS POR SWITCH Y VOZ | |
if(BT.available()) | |
{ //Si llega un dato por el puerto BT se envía al monitor Serial | |
char Mensaje = BT.read(); //Guarda en la variable “Mensaje” el dato recibido por Bluetooth | |
/*Aqui la condicion con la app, indica que las letras Mayúculas son enviadas tanto por el control manual de la app, como con el control por voz, haciendo que se enciendan y/o | |
abra el objeto, de igual forma las Minúsculas indican que se apagan tanto por manual como por voz.*/ | |
if(Mensaje == 'A') | |
{ | |
Serial.println("Se encendió el Cuarto 1"); | |
digitalWrite(LEDR1,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 1"); | |
delay(1000); | |
} | |
else if(Mensaje == 'a') | |
{ | |
Serial.println("Se apagó el Cuarto 1"); | |
digitalWrite(LEDR1,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 1"); | |
delay(1000); | |
} | |
else if(Mensaje == 'B') | |
{ | |
Serial.println("Se encendió el Cuarto 2"); | |
digitalWrite(LEDR2,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 2"); | |
delay(1000); | |
} | |
else if(Mensaje == 'b') | |
{ | |
Serial.println("Se apagó el Cuarto 2"); | |
digitalWrite(LEDR2,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 2"); | |
delay(1000); | |
} | |
else if(Mensaje == 'C') | |
{ | |
Serial.println("Se encendió el Cuarto 3"); | |
digitalWrite(LEDR3,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 3"); | |
delay(1000); | |
} | |
else if(Mensaje == 'c') | |
{ | |
Serial.println("Se apagó el Cuarto 3"); | |
digitalWrite(LEDR3,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("CUARTO 3"); | |
delay(1000); | |
} | |
else if(Mensaje == 'D') | |
{ | |
Serial.println("Se encendió el Pasillo 1"); | |
digitalWrite(LEDP1,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 1"); | |
delay(1000); | |
} | |
else if(Mensaje == 'd') | |
{ | |
Serial.println("Se apagó el Pasillo 1"); | |
digitalWrite(LEDP1,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 1"); | |
delay(1000); | |
} | |
else if(Mensaje == 'E') | |
{ | |
Serial.println("Se encendió el Pasillo 2"); | |
digitalWrite(LEDP2,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 2"); | |
delay(1000); | |
} | |
else if(Mensaje == 'e') | |
{ | |
Serial.println("Se apagó el Pasillo 2"); | |
digitalWrite(LEDP2,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 2"); | |
delay(1000); | |
} | |
else if(Mensaje == 'F') | |
{ | |
Serial.println("Se encendió el Pasillo 3"); | |
digitalWrite(LEDP3,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 3"); | |
delay(1000); | |
} | |
else if(Mensaje == 'f') | |
{ | |
Serial.println("Se apagó el Pasillo 3"); | |
digitalWrite(LEDP3,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(5,2); | |
lcd.print("PASILLO 3"); | |
delay(1000); | |
} | |
else if(Mensaje == 'G') | |
{ | |
Serial.println("Se encendió el Baño"); | |
digitalWrite(LEDBO,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(6,2); | |
lcd.print("SANITARIO"); | |
delay(1000); | |
} | |
else if(Mensaje == 'g') | |
{ | |
Serial.println("Se apagó el Baño"); | |
digitalWrite(LEDBO,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(6,2); | |
lcd.print("SANITARIO"); | |
delay(1000); | |
} | |
else if(Mensaje == 'H') | |
{ | |
Serial.println("Se encendió la Sala"); | |
digitalWrite(LEDSA,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO LA"); | |
lcd.setCursor(8,2); | |
lcd.print("SALA"); | |
delay(1000); | |
} | |
else if(Mensaje == 'h') | |
{ | |
Serial.println("Se apagó la Sala"); | |
digitalWrite(LEDSA,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO LA"); | |
lcd.setCursor(8,2); | |
lcd.print("SALA"); | |
delay(1000); | |
} | |
else if(Mensaje == 'I') | |
{ | |
Serial.println("Se encendió el Comedor"); | |
digitalWrite(LEDCO,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("COMEDOR"); | |
delay(1000); | |
} | |
else if(Mensaje == 'i') | |
{ | |
Serial.println("Se apagó el Comedor"); | |
digitalWrite(LEDCO,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("COMEDOR"); | |
delay(1000); | |
} | |
else if(Mensaje == 'J') | |
{ | |
Serial.println("Se encendió la Cocina"); | |
digitalWrite(LEDCA,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO LA"); | |
lcd.setCursor(7,2); | |
lcd.print("COCINA"); | |
delay(1000); | |
} | |
else if(Mensaje == 'j') | |
{ | |
Serial.println("Se apagó la Cocina"); | |
digitalWrite(LEDCA,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO LA"); | |
lcd.setCursor(7,2); | |
lcd.print("COCINA"); | |
delay(1000); | |
} | |
else if(Mensaje == 'K') | |
{ | |
Serial.println("Se encendió el Garaje"); | |
digitalWrite(LEDGA,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("GARAJE"); | |
delay(1000); | |
} | |
else if(Mensaje == 'k') | |
{ | |
Serial.println("Se apagó el Garaje"); | |
digitalWrite(LEDGA,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE APAGO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("GARAJE"); | |
delay(1000); | |
} | |
else if(Mensaje == 'L') | |
{ | |
Serial.println("Se encendieron los Cuartos"); | |
digitalWrite(LEDR1,HIGH); | |
digitalWrite(LEDR2,HIGH); | |
digitalWrite(LEDR3,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIERON"); | |
lcd.setCursor(1,2); | |
lcd.print("TODOS LOS CUARTOS"); | |
delay(1000); | |
} | |
else if(Mensaje == 'l') | |
{ | |
Serial.println("Se apagaron los Cuartos"); | |
digitalWrite(LEDR1,LOW); | |
digitalWrite(LEDR2,LOW); | |
digitalWrite(LEDR3,LOW); | |
lcd.clear(); | |
lcd.setCursor(4,1); | |
lcd.print("SE APAGARON"); | |
lcd.setCursor(1,2); | |
lcd.print("TODOS LOS CUARTOS"); | |
delay(1000); | |
} | |
else if(Mensaje == 'M') | |
{ | |
Serial.println("Se encendieron los Pasillos"); | |
digitalWrite(LEDP1,HIGH); | |
digitalWrite(LEDP2,HIGH); | |
digitalWrite(LEDP3,HIGH); | |
lcd.clear(); | |
lcd.setCursor(3,1); | |
lcd.print("SE ENCENDIERON"); | |
lcd.setCursor(1,2); | |
lcd.print("TODOS LOS PASILLOS"); | |
delay(1000); | |
} | |
else if(Mensaje == 'm') | |
{ | |
Serial.println("Se apagaron los Pasillos"); | |
digitalWrite(LEDP1,LOW); | |
digitalWrite(LEDP2,LOW); | |
digitalWrite(LEDP3,LOW); | |
lcd.clear(); | |
lcd.setCursor(4,1); | |
lcd.print("SE APAGARON"); | |
lcd.setCursor(1,2); | |
lcd.print("TODOS LOS PASILLOS"); | |
delay(1000); | |
} | |
else if(Mensaje == 'N') | |
{ | |
Serial.println("Se encendió toda la Casa"); | |
digitalWrite(LEDR1,HIGH); | |
digitalWrite(LEDR2,HIGH); | |
digitalWrite(LEDR3,HIGH); | |
digitalWrite(LEDP1,HIGH); | |
digitalWrite(LEDP2,HIGH); | |
digitalWrite(LEDP3,HIGH); | |
digitalWrite(LEDBO,HIGH); | |
digitalWrite(LEDSA,HIGH); | |
digitalWrite(LEDCO,HIGH); | |
digitalWrite(LEDCA,HIGH); | |
digitalWrite(LEDGA,HIGH); | |
lcd.clear(); | |
lcd.setCursor(4,1); | |
lcd.print("SE ENCENDIO"); | |
lcd.setCursor(4,2); | |
lcd.print("TODA LA CASA"); | |
delay(1000); | |
} | |
else if(Mensaje == 'n') | |
{ | |
Serial.println("Se apagó toda la Casa"); | |
digitalWrite(LEDR1,LOW); | |
digitalWrite(LEDR2,LOW); | |
digitalWrite(LEDR3,LOW); | |
digitalWrite(LEDP1,LOW); | |
digitalWrite(LEDP2,LOW); | |
digitalWrite(LEDP3,LOW); | |
digitalWrite(LEDBO,LOW); | |
digitalWrite(LEDSA,LOW); | |
digitalWrite(LEDCO,LOW); | |
digitalWrite(LEDCA,LOW); | |
digitalWrite(LEDGA,LOW); | |
lcd.clear(); | |
lcd.setCursor(6,1); | |
lcd.print("SE APAGO"); | |
lcd.setCursor(4,2); | |
lcd.print("TODA LA CASA"); | |
delay(1000); | |
} | |
//ABRIR O CERRAR PUERTAS POR VOZ O SWITCHES | |
//Garaje | |
else if(Mensaje == 'O') | |
{ | |
Serial.println("Se abrio Garaje por Switch o Voz"); | |
digitalWrite(LEDVG,HIGH); | |
digitalWrite(LEDRG,LOW); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE ABRIO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("GARAJE"); | |
delay(1000); | |
tone(buzzer,600); | |
delay(1000); | |
noTone(buzzer); | |
garage.write(150); | |
delay(8000); | |
tone(buzzer,500); | |
delay(2000); | |
noTone(buzzer); | |
garage.write(0); | |
delay(1000); | |
} | |
/*No hay necesidad de poner un apartado de que se cierre la puerta manualmente, ya que el loop en la parte donde lee la distancia del ultrasónico, la puerta del garaje | |
se cierra automaticamente, pero lo pondre por si en dado caso, el dato que se envia al Bluetooth no llega, con la voz se puede volver activar.*/ | |
else if(Mensaje == 'o') | |
{ | |
Serial.println("Se cerró Garaje por Switch o Voz"); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE CERRO EL"); | |
lcd.setCursor(7,2); | |
lcd.print("GARAJE"); | |
delay(1000); | |
noTone(buzzer); | |
digitalWrite(LEDVG,LOW); | |
digitalWrite(LEDRG,HIGH); | |
garage.write(0); | |
} | |
else if(Mensaje == 'p') | |
{ | |
Serial.println("Se cerró la Puerta 0"); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE CERRO LA"); | |
lcd.setCursor(7,2); | |
lcd.print("PUERTA"); | |
puerta.write(0); | |
//delay(2000); | |
} | |
else if(Mensaje == 'P') | |
{ | |
Serial.println("Se abrió la Puerta 120 grados"); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE ABRIO LA"); | |
lcd.setCursor(7,2); | |
lcd.print("PUERTA"); | |
delay(1000); | |
puerta.write(120); | |
} | |
else if(Mensaje == 'Q') | |
{ | |
Serial.println("Se abrió la Ventana"); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE ABRIO LA"); | |
lcd.setCursor(6,2); | |
lcd.print("VENTANA"); | |
delay(1000); | |
ventana.write(0); | |
//delay(5000); | |
} | |
else if(Mensaje == 'q') | |
{ | |
Serial.println("Se cerró la Ventana"); | |
lcd.clear(); | |
lcd.setCursor(5,1); | |
lcd.print("SE CERRO LA"); | |
lcd.setCursor(6,2); | |
lcd.print("VENTANA"); | |
delay(1000); | |
ventana.write(90); | |
//delay(5000); | |
} | |
delay(100); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment