#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"); 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"); Serial.println((String)TOPIC + " => off"); } } } }