#include "BluetoothSerial.h"
#include <ESP32Servo.h>
BluetoothSerial BT;
#define LED1 23 // Pin para las luces
#define LED2 22 // Pin para las luces
#define LED3 21 // Pin para las luces
#define LED4 19 // Pin para las luces
#define BUZZER 4 // Pin para el buzzer
#define MOTOR1 16 // Sentido horario
#define MOTOR2 17 // Sentido antihorario
#define ServoPin1 2 // Pin para puerta de garaje
#define ServoPin2 5 // Pin para puerta de garaje
Servo myServo1;
Servo myServo2;
void setup()
{
Serial.begin(115200);
BT.begin("ESP32_Tecmilenio"); // Nombre del Bluetooth
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(BUZZER, OUTPUT);
pinMode(MOTOR1, OUTPUT);
pinMode(MOTOR2, OUTPUT);
myServo1.attach(ServoPin1);
myServo2.attach(ServoPin2);
}
void loop()
{
if (BT.available())
{
char comando = BT.read();
switch (comando)
{
// Encender luces
case 'L':
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
// Apagar luces
case 'l':
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED4, HIGH);
break;
case 'B': digitalWrite(BUZZER, HIGH); break; // Encender buzzer
case 'b': digitalWrite(BUZZER, LOW); break; // Apagar buzzer
case 'G':
// Abrir puerta
// Gira el servomotor de la derecha
myServo1.write(90);
// Gira el servomotor de la izquierda
myServo2.write(90);
break;
case 'g':
// Cerrar puerta
// Gira el servomotor de la derecha
myServo1.write(0);
// Gira el servomotor de la izquierda
myServo2.write(180);
break;
case 'H': // Motor en sentido horario
digitalWrite(MOTOR1, HIGH);
digitalWrite(MOTOR2, LOW);
break;
case 'A': // Motor en sentido antihorario
digitalWrite(MOTOR1, LOW);
digitalWrite(MOTOR2, HIGH);
break;
case 'S': // Apagar motor
digitalWrite(MOTOR1, LOW);
digitalWrite(MOTOR2, LOW);
break;
}
}
}