#include <SoftwareSerial.h>
SoftwareSerial BTSerial(2, 3); // RX, TX de HC-05
int ledPin = 13;
bool connected = false;
unsigned long connectionStartTime = 0;
const unsigned long maxConnectionTime = 60000; // Tiempo máximo de conexión en milisegundos (en este caso, 60 segundos)
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); // Configura la comunicación serial para la depuración
BTSerial.begin(9600); // Configura la comunicación serial para el módulo Bluetooth
}
void loop() {
if (BTSerial.available()) {
char command = BTSerial.read();
if (command == '1') { // Si se recibe '1' desde el Bluetooth
connected = true; // Establece la conexión
connectionStartTime = millis(); // Registra el tiempo de conexión
digitalWrite(ledPin, HIGH); // Enciende el LED
BTSerial.println("LED encendido");
} else if (command == '0') { // Si se recibe '0' desde el Bluetooth
connected = false; // Desconecta
digitalWrite(ledPin, LOW); // Apaga el LED
BTSerial.println("LED apagado");
}
}
if (connected) {
// Puedes realizar acciones adicionales cuando la conexión está establecida
// Por ejemplo, enviar datos al dispositivo móvil
// Verifica si ha pasado el tiempo máximo de conexión
if (millis() - connectionStartTime > maxConnectionTime) {
connected = false; // Desconecta automáticamente después de un tiempo
digitalWrite(ledPin, LOW); // Apaga el LED
BTSerial.println("Desconexión automática debido a tiempo máximo de conexión");
}
}
}