Вы находитесь на странице: 1из 4

#include <ESP8266WiFi.

h> //Añadir libreria para controlar el modulo wifi con


arduino
#include <EMailSender.h> //Añadir libreria para lograr el envío de email
automáticamente
EMailSender emailSend("est.camila.charry@unimilitar.edu.co", "Hermosa01@"); // Se
configura el correo y contraseña que se desea usar para el envío de correos
#define ledPin D0 // Se declara variable para controlar el led en el pin D0
#define pirPin D7 // Se declara variable para controlar el sensor en el pin D7
#define buzzerPin D2 // Se declara variable para controlar el sensor en el pin D2
#define luz A0
int valorLuz = 0;
int aux2;

int pirValue = 0; // Se configura la variable para que inicie en 0


int aux; // Se declara la variable aux para asignar el valor del sensor Pir
String ssid = "Alejandro"; // Se configura el nombre de la Red en donde se va a
conectar el módulo
String password = "Alejo81042607126"; // Se escribe la clave del la red wifi
WiFiServer server(80); //Líne exclusiva para la configuración del wifi
int estado = 0; // Se declara variable para controlar estado del botón de la página
web

void setup() //DESDE ESTE LLAVE HASTA LA ÚLTIMA CERRADA SE CONFIGURAN TODOS LOS
COMPONENTES ELECTRÓNICOS Y LA CONEXIÓN A LA RED
{
pinMode(buzzerPin, OUTPUT); //Se configura el buzzer en un pin de salida
pinMode(ledPin, OUTPUT); //Se configura el led en un pin de salida
pinMode(pirPin, INPUT); //Se configura el sensor PIR en un pin de entrada
pinMode (luz, INPUT); //Se configura la fotocelda
Serial.begin (115200); // Se configura el monitor serie para poder verificar los
estados de los componentes

WiFi.begin(ssid, password); //DESDE ESTE ESPACIO SE CONFIGURA LA CONEXIÓN DEL


MÓDULO A WIFI
while (WiFi.status() != WL_CONNECTED )
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("********************************************");
Serial.print("Conectado a la red WiFi: ");
Serial.println(WiFi.SSID());
Serial.print("IP: ");
Serial.println(WiFi.localIP());
Serial.print("macAdress: ");
Serial.println(WiFi.macAddress());
Serial.println("*********************************************");
server.begin(); //begin() levantamos el servidor
digitalWrite(ledPin, 0); //Se inicializa el led apagado
noTone(buzzerPin); //Se inicializa el buzzer apagado

void loop()
{
aux2 = analogRead (luz);
Serial.print("Valor Fotocelda: ");
Serial.println(aux2);
delay (5000);

if(aux2 < 15)


{
valorLuz = 1;
}

if(valorLuz==0){
delay (5000);
loop();

}
if(valorLuz==1)
{ aux = digitalRead(pirPin); //Se leen valores del sensor y se asigna a la variable
aux
Serial.println(aux); //Se muestra en pantalla el valor del sensor (1 si
detecta movimiento - 0 si no detecta movimiento)
if(aux == 1){ //Si el sensor detecta movimiento se le asigna el
valor a una nueva variable, en este caso 1
pirValue = 1;
Serial.println("Alarma activa"); //Se envía mensaje por pantalla indicando que el
sistema detecto movimientos
//EN LA SIGUIENTE LÍNEA SE LLAMA A LA FUNCIÓN EMAIL Y SE ENVÍA ASUNTO, CUERPO DEL
MENSAJE Y REMITENTE
Enviar_Email("ALARMA ACTIVA - URGENTE","El sistema ha dectado movimientos, por
favor revisar sistema de seguridad, notificar a policia e ingresar al siguiente
link para desactivar la alarma:
http://192.168.43.180","hernando.leon@unimilitar.edu.co"); // Asunto, Mensaje,
Correo
delay(1000); //Línea de código que permite que la línea anterior se demore en
ejecutarse 1 segundo (Se programa en milisegundos)
}
}
if(pirValue == 1) //Si la variable pirValue es igual a 1 quiere decir que seguirá

{
digitalWrite(ledPin, 1); //Se enciende el led
tone(buzzerPin, 440);//Se enciende el buzzer
Serial.println("Sigue activa...:"); //Se envía mensaje por pantalla de arduino
que la alarma sigue activa
delay(1000);
}
WiFiClient client = server.available(); //Se realiza la conexión con el servidor
y la página web
// avalaible() detecta un cliente nuevo del objeto de la clase WifiServer
if(!client)
{
return;
}
Serial.println("Nuevo cliente...");
while(!client.available())
{ //espera a un cliente diponible
delay(1);
}
String peticion = client.readStringUntil('\r'); //lee la petición del cliente (si
presionaron un botón de la página)
Serial.println(peticion);
client.flush(); //limpia la peticion del cliente
Serial.println("Accedieron a la página"); //Se envía un mensaje Arduino que
alguien presionó un botón
delay(1000);
if(peticion.indexOf('BOTON1=ON') != -1) //Si presionan botón apagar alarma se
apaga led y sonido
{
Serial.println("Alarma Apagada");
digitalWrite(ledPin, 0); //led apagado
noTone(buzzerPin); //buzzer apagado
pirValue = 0; //se reinicia la variable que valida si el
sensor detecta movimiento para que vuelva a detectar desde 0
estado = 1; //estado 1 para enviar un mensaje en la
pantalla d la página que la alarma fue apagada
}
if(peticion.indexOf('BOTON2=OFF') != -1) //Si presionan botón reiniciar sistema
se vuelve a establcer conexión con el modulo y la red
{
estado = 0; //estado 0 para enviar un mensaje en la
pantalla d la página que el sistema se reinició
setup();
}
client.println("HTTP/1.1 200 OK");
client.println("");
client.println("");
client.println("");
client.println("");

//INICIA LA PAGINA WEB

client.println("<!DOCTYPE html><html lang='en'><head><meta charset='UTF-8'>");


client.println("<meta name='viewport' content='width=device-width, initial-
scale=1.0'>");
client.println("<title>Alarma On Line</title></head>");
client.println("<body style='font-family: Century gothic; width: 800;'><center>");
client.println("<div style='box-shadow: 0px 0px 20px 8px rgba(0,0,0,0.22); padding:
20px; width: 300px; display: inline-block; margin: 30px;'> ");
client.println("<h1>Sistema de Seguridad On Line</h1>");

if(estado==1)
client.println("<h2>Alarma Apagada</h2>");
else
client.println("<h2>Reinciar sistema</h2>");

client.println("<button style='background-color:red; color:white; border-radius:


10px; border-color: rgb(255, 0, 0);' ");
client.println("type='button' onClick=location.href='/BOTON1=ON'><h2>Apagar
alarma</h2>");
client.println("</button> <button style='background-color:blue; color:white;
border-radius: 10px; border-color: rgb(25, 255, 4);' ");
client.println("type='button' onClick=location.href='/BOTON2=OFF'><h2>Reiniciar
Sistema</h2>");
client.println("</button></div></center></body></html>");
//FIN DE LA PAGINA
delay(10);
}
void Enviar_Email(String Asunto, String Mensaje, String Correo){ //TODA LA FUNCIÓN
ENVIAR_EMAIL ES PARA LA CONFIGURACIÓN DEL CORREO ELECTRÓNICO
EMailSender::EMailMessage message;
message.subject = Asunto;
message.message = Mensaje;
// EMAIL DE ENVIO
EMailSender::Response resp = emailSend.send(Correo, message);
Serial.println("Sending status: ");

Serial.println(resp.status);
Serial.println(" Code:");
Serial.println(resp.code);
Serial.println(" Desc:");
Serial.println(resp.desc);
}

Вам также может понравиться