Subir archivos a ''
This commit is contained in:
parent
cbd131b6a2
commit
8f600768cc
|
@ -0,0 +1,110 @@
|
|||
#include <WiFi.h>
|
||||
#include <PubSubClient.h>
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue