diff --git a/Proyecto_alarma_2.2.ino b/Proyecto_alarma_2.2.ino index 4528a70..afd8cdb 100644 --- a/Proyecto_alarma_2.2.ino +++ b/Proyecto_alarma_2.2.ino @@ -1,110 +1,109 @@ -#include -#include - -const char PROGMEM *SSID = "LOTUS"; // Nombre del WiFi -const char PROGMEM *password = "tupapatetocaen64"; // Contraseña del Wifi - -int Pir_Pin = 2; // Pines que controlan los sensores -int SENSOR = 3; -int buzzer_pin = 4; -const char PROGMEM *ID = "Alarma"; //Nombre del dispositivo -const char PROGMEM *TOPIC = "Sistema de Alarmas"; //Nombre del topico suscrito - -IPAddress broker(192,168,1,15); //Direccion ip del corredor MQTT -WiFiClient wclient; - -PubSubClient client(wclient); //Configurar el cliente MQTT -bool state=0; - -// Conectar al Wifi -void setup_wifi() { - Serial.print("\nConnecting to "); - - - WiFi.begin("LOTUS", "tupapatetocaen64"); // Conectarse a la RED - - while (WiFi.status() != WL_CONNECTED) { // Esperar por la coneccion - delay(500); - Serial.print("."); - } - - Serial.println(); - Serial.println("WiFi connected"); - Serial.print("IP address: "); - Serial.println(WiFi.localIP()); -} - -// Volver a conectarse con el cliente -void reconnect() { - // Bucle hasta que nos volvamso a conectar - while (!client.connected()) { - Serial.print("Attempting MQTT connection..."); - // intenta conectarte - if (client.connect(ID)) { - Serial.println("connected"); - Serial.print("Publishing to: "); - Serial.println(TOPIC); - Serial.println('\n'); - - } else { - Serial.println(" try again in 5 seconds"); - // esperar 5 segundos antes de volver a intentar - delay(5000); - } - } -} - -void setup() { - Serial.begin(115200); // Inicie la comunicacion en serie a 115200 baudios - pinMode(Pir_Pin,INPUT); // Configurar los sensores como entrada - pinMode(SENSOR, INPUT); - pinMode(buzzer_pin, OUTPUT); - delay(100); - setup_wifi(); - client.setServer(broker, 1883); -} - -void loop() { - if (!client.connected()) // Vuelve a conectar si se pierde la conexion - { - reconnect(); - } - client.loop(); - - // Si el detector de movimiento capta algo - if(digitalRead(Pir_Pin) == HIGH) - { - digitalWrite(buzzer_pin, HIGH); - Serial.println("¡Intrusos!"); - state = !state; //alternar estado - if(state == 1) // Prendido - { - client.publish(TOPIC, "on"); - Serial.println((String)TOPIC + " => on"); - } - else - { - digitalWrite(buzzer_pin, LOW); - Serial.println("Modo vigilante"); - client.publish(TOPIC, "off"); - Serial.println((String)TOPIC + " => off"); - } - digitalWrite(buzzer_pin, !digitalRead(SENSOR)); - { - state = !state; //alternar estado - if(state == 1) // Prendido - { - client.publish(TOPIC, "on"); - Serial.println((String)TOPIC + " => on"); - } - else - { - Serial.println("Modo vigilante"); - client.publish(TOPIC, "off"); - Serial.println((String)TOPIC + " => off"); - } - yield(); - delay(20); - } - } -} +#include +#include + +const char PROGMEM *SSID = "LOTUS"; // Nombre del WiFi +const char PROGMEM *password = "tupapatetocaen64"; // Contraseña del Wifi + +int Pir_Pin = 2; // Pines que controlan los sensores +int SENSOR = 3; +int buzzer_pin = 4; +const char PROGMEM *ID = "Alarma"; //Nombre del dispositivo +const char PROGMEM *TOPIC = "Sistema de Alarmas"; //Nombre del topico suscrito + +IPAddress broker(192,168,1,15); //Direccion ip del corredor MQTT +WiFiClient wclient; + +PubSubClient client(wclient); //Configurar el cliente MQTT +bool state=0; + +// Conectar al Wifi------------------------- +void setup_wifi() { + Serial.print("\nConnecting to "); + + + WiFi.begin("LOTUS", "tupapatetocaen64"); // Conectarse a la RED + + while (WiFi.status() != WL_CONNECTED) { // Esperar por la coneccion + delay(500); + Serial.print("."); + } + + Serial.println(); + Serial.println("WiFi connected"); + Serial.print("IP address: "); + Serial.println(WiFi.localIP()); +} + +// Volver a conectarse con el cliente------------------------ +void reconnect() { + // Bucle hasta que nos volvamso a conectar----------------- + while (!client.connected()) { + Serial.print("Attempting MQTT connection..."); + // intenta conectarte + if (client.connect(ID)) { + Serial.println("connected"); + Serial.print("Publishing to: "); + Serial.println(TOPIC); + Serial.println('\n'); + + } else { + Serial.println(" try again in 5 seconds"); + // esperar 5 segundos antes de volver a intentar + delay(5000); + } + } +} +//Comienzo del codigo principal---------------- +void setup() { + Serial.begin(115200); // Inicie la comunicacion en serie a 115200 baudios + pinMode(Pir_Pin,INPUT); // Configurar los sensores como entrada + pinMode(SENSOR, INPUT); + pinMode(buzzer_pin, OUTPUT); + delay(100); + setup_wifi(); + client.setServer(broker, 1883); +} + +void loop() { + if (!client.connected()) // Vuelve a conectar si se pierde la conexion + { + reconnect(); + } + client.loop(); + + // Si el detector de movimiento capta algo------------------ + if(digitalRead(Pir_Pin) == HIGH) + { + digitalWrite(buzzer_pin, HIGH); + Serial.println("¡Intrusos!"); + state = !state; //alternar estado + if(state == 1) // Prendido + { + client.publish(TOPIC, "on"); + Serial.println((String)TOPIC + " => on"); + } + else + { + digitalWrite(buzzer_pin, LOW); + Serial.println("Modo vigilante"); + client.publish(TOPIC, "off"); + Serial.println((String)TOPIC + " => off"); + } + //Si el detector magnetico capta algo-------- + digitalWrite(buzzer_pin, !digitalRead(SENSOR)); + { + state = !state; //alternar estado + if(state == 1) // Prendido + { + client.publish(TOPIC, "on"); + Serial.println((String)TOPIC + " => on"); + } + else + { + Serial.println("Modo vigilante"); + client.publish(TOPIC, "off"); + Serial.println((String)TOPIC + " => off"); + } + } + } +}