Nota
¡Hola, bienvenido a la Comunidad de Aficionados a Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
¿Por qué unirse?
Soporte de expertos: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
Aprender y compartir: Intercambia consejos y tutoriales para mejorar tus habilidades.
Vistas previas exclusivas: Obtén acceso anticipado a anuncios de nuevos productos y avances.
Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
Promociones festivas y sorteos: Participa en sorteos y promociones de fiestas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [aquí] y únete hoy!
8.9 Sistema de Notificación de Intrusión Basado en Blynk¶
Este proyecto demuestra un sistema simple de detección de intrusiones en el hogar usando un sensor de movimiento PIR (HC-SR501). Cuando el sistema está configurado en modo «Ausente» a través de la aplicación Blynk, el sensor PIR monitorea el movimiento. Cualquier movimiento detectado activa una notificación en la aplicación Blynk, alertando al usuario de una posible intrusión.
Componentes Necesarios
Para este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
Nombre |
ELEMENTOS EN ESTE KIT |
ENLACE |
|---|---|---|
Kit de Inicio ESP32 |
320+ |
También puedes comprarlos por separado en los enlaces a continuación.
INTRODUCCIÓN AL COMPONENTE |
ENLACE DE COMPRA |
|---|---|
1. Montaje del Circuito¶
2. Configuración de Blynk¶
2.1 Inicializando Blynk
Ve a la página de BLYNK y selecciona Sign Up FREE o Enterprise Solution.
Ingresa tu correo electrónico para comenzar el proceso de registro.
Revisa tu correo electrónico para ver un mensaje, y haz clic en el enlace Create Password en el correo para establecer tu contraseña.
Después de la confirmación, comenzará un Blynk Tour donde podrás aprender rápidamente sobre algunas de las características clave de Blynk.
Después de completar el Blynk Tour, aparecerá una ventana donde podrás elegir explorar Blueprints o hacer clic en Quick Start para conectar rápidamente tu dispositivo. Sin embargo, en este caso, seleccionaremos «Have a look around first».
2.2 Creación de Plantillas
Comienza creando una plantilla en Blynk. Sigue los pasos para configurar la plantilla Intrusion Alert System.
Nombra tu plantilla, elige ESP32 como el Hardware, selecciona WiFi como el Tipo de Conexión, y luego haz clic en Done.
Entra en la plantilla, donde se te indicarán los siguientes pasos. Haz clic en Configure template para subir una imagen de portada, mejorar la descripción y más. Sigue los tres pasos restantes para completar la configuración.
2.3 Configurar Datastreams
Abre la plantilla recién creada y ve a la página de configuración de datastreams.
Haz clic en New Datastream, y en la ventana emergente, selecciona Virtual Pin.
Nombra el Virtual Pin V0 como AwayMode y establece el TIPO DE DATO en Integer, con valores MIN y MAX de 0 y 1.
De manera similar, crea otro Virtual Pin llamado Current Status y establece el TIPO DE DATO en String.
2.4 Configurar el Tablero Web
Arrastra y suelta tanto el Switch widget como el Label widget en el Tablero Web.
Pasa el cursor sobre un widget para ver tres iconos. Utiliza el icono de Configuración para configurar las propiedades del widget.
Configura el Switch widget para que se enlace con el datastream AwayMode(V0), estableciendo las etiquetas ONLABEL y OFFLABEL para mostrar «away home» y «at home» respectivamente.
En la configuración del Label widget, enlázalo con el datastream Current Status(V1).
2.5 Configuración de un Evento
Haz clic en Events & Notifications y luego en Create Event.
Nombra el evento y especifica su código. Elige Warning para TIPO y proporciona una breve descripción para el correo electrónico de notificación. Ajusta la frecuencia de notificación según lo desees.
Nota
Asegúrate de que el CÓDIGO DEL EVENTO esté configurado como
intrusion_detected. Cualquier cambio aquí requiere ajustes correspondientes en el código.
Ve a la sección de Notificaciones para habilitar las notificaciones y configurar los ajustes de correo electrónico.
En Configuración, define con qué frecuencia un evento activa las notificaciones y establece los intervalos según tu preferencia. Recuerda hacer clic en Create para guardar tus configuraciones.
2.6 Guardar la Plantilla
2.7 Crear un Dispositivo
3. Ejecución del Código¶
Antes de ejecutar el código, asegúrate de instalar la biblioteca
Blynkdesde el Administrador de Bibliotecas en el Arduino IDE.Abre el archivo
iot_9_intrusion_alert_system.ino, ubicado en el directorioesp32-starter-kit-main\c\codes\iot_9_intrusion_alert_system. También puedes copiar su contenido en el Arduino IDE.Sustituye los marcadores de posición de
BLYNK_TEMPLATE_ID,BLYNK_TEMPLATE_NAMEyBLYNK_AUTH_TOKENpor tus propios IDs únicos.#define BLYNK_TEMPLATE_ID "TMPxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxx"
También necesitas ingresar el
ssidypasswordde tu red WiFi.char ssid[] = "your_ssid"; char pass[] = "your_password";
Elige la placa correcta (ESP32 Dev Module) y puerto, luego haz clic en el botón Subir.
Abre el Monitor Serial (configura la tasa de baudios a 115200) y espera un mensaje de conexión exitosa.
Tras una conexión exitosa, activar el interruptor en Blynk iniciará la vigilancia del módulo PIR. Cuando se detecte movimiento (estado de 1), dirá, «¡Alguien aquí!» y enviará una alerta a tu correo electrónico.
4. Explicación del Código¶
Configuración & Bibliotecas
Aquí, configuras las constantes y credenciales de Blynk. También incluyes las bibliotecas necesarias para el ESP32 y Blynk.
/* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #define BLYNK_TEMPLATE_ID "xxxxxxxxxxx" #define BLYNK_TEMPLATE_NAME "Intrusion Alert System" #define BLYNK_AUTH_TOKEN "xxxxxxxxxxxxxxxxxxxxxxxxxxx" #include <WiFi.h> #include <WiFiClient.h> #include <BlynkSimpleEsp32.h>
Configuración WiFi
Ingresa tus credenciales WiFi.
char ssid[] = "your_ssid"; char pass[] = "your_password";
Configuración del Sensor PIR
Establece el pin donde está conectado el sensor PIR e inicializa las variables de estado.
const int sensorPin = 14; int state = 0; int awayHomeMode = 0; BlynkTimer timer;
Función setup()
Esta función inicializa el sensor PIR como entrada, configura la comunicación serial, se conecta a WiFi y configura Blynk.
Usamos
timer.setInterval(1000L, myTimerEvent)para establecer el intervalo del temporizador ensetup(), aquí lo configuramos para ejecutar la funciónmyTimerEvent()cada 1000ms. Puedes modificar el primer parámetro detimer.setInterval(1000L, myTimerEvent)para cambiar el intervalo entre ejecuciones demyTimerEvent.
void setup() { pinMode(sensorPin, INPUT); // Set PIR sensor pin as input Serial.begin(115200); // Start serial communication at 115200 baud rate for debugging // Configure Blynk and connect to WiFi Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass); timer.setInterval(1000L, myTimerEvent); // Setup a function to be called every second }
Función loop()
La función loop ejecuta continuamente Blynk y las funciones del temporizador de Blynk.
void loop() { Blynk.run(); timer.run(); }
Interacción con la Aplicación Blynk
Estas funciones se llaman cuando el dispositivo se conecta a Blynk y cuando hay un cambio en el estado del pin virtual V0 en la aplicación Blynk.
Cada vez que el dispositivo se conecta al servidor Blynk, o se reconecta debido a condiciones de red deficientes, se llama a la función
BLYNK_CONNECTED(). El comandoBlynk.syncVirtual()solicita el valor de un Pin Virtual único. El Pin Virtual especificado realizará la llamadaBLYNK_WRITE().Siempre que el valor de un pin virtual en el servidor BLYNK cambia, se activará
BLYNK_WRITE().
// This function is called every time the device is connected to the Blynk.Cloud BLYNK_CONNECTED() { Blynk.syncVirtual(V0); } // This function is called every time the Virtual Pin 0 state changes BLYNK_WRITE(V0) { awayHomeMode = param.asInt(); // additional logic }
Manejo de Datos
Cada segundo, la función
myTimerEvent()llama asendData(). Si el modo ausente está habilitado en Blynk, verifica el sensor PIR y envía una notificación a Blynk si se detecta movimiento.Usamos
Blynk.virtualWrite(V1, "¡Alguien en tu casa! ¡Por favor, revisa!");para cambiar el texto de una etiqueta.Usa
Blynk.logEvent("intrusion_detected");para registrar el evento en Blynk.
void myTimerEvent() { sendData(); } void sendData() { if (awayHomeMode == 1) { state = digitalRead(sensorPin); // Read the state of the PIR sensor Serial.print("state:"); Serial.println(state); // If the sensor detects movement, send an alert to the Blynk app if (state == HIGH) { Serial.println("Somebody here!"); Blynk.virtualWrite(V1, "Somebody in your house! Please check!"); Blynk.logEvent("intrusion_detected"); } } }
Reference










