page-title-bg2
  >  Blog   >  Alarma de movimiento con notificación al móvil
alarma de movimiento

Alarma de movimiento con notificación al móvil

Comparte en RRSS
 

En este tutorial vamos a crear nuestra propia alarma de de movimiento que nos envíe una notificación al móvil si alguien entra en nuestra habitación o escondite secreto.

Para esto lo que necesitamos es un Sensor de Movimiento PIR, una placa de Arduino y el servicio de Blynk, en tutoriales anteriores hemos usado este servicio, así que puedes volver a mirarlo haciendo click aquí.

¿Qué es el Sensor de Movimiento PIR?

El sensor PIR (sensor infrarrojo pasivo) es un sensor que mide la luz infrarroja radiada de los objetos que se encuentran en su campo de visión.

Su funcionamiento es simple, todos los objetos que su temperatura sobrepasa el creo absoluto, emiten calor y por lo tanto emiten una radiación infrarroja, esta radiación es invisible a vista del ojo humano, pero los dispositivos PIR sí son capaces de detectarla.

El sensor esta compuesto por varias partes, tenemos el receptor que es que detecta la luz infrarroja.

Optica PIR

Y este receptor lo recubre la óptica del sensor, que es una cúpula de plástico que estamos acostumbrados a ver cada vez que vemos un sensor de movimiento que su función es dividir el espacio por zonas y enfoca la radiación infrarroja al receptor.

Sensor PIR

Si a este sensor le damos la vuelta, veremos que tiene varias partes que podemos diferenciar, según nuestras necesidades lo podemos configurar a nuestro gusto

Esquema sensor PIR


¿Qué materiales necesitamos para nuestra alarma de movimiento?

Todos los materiales los puedes encontrar en nuestra tienda online.


Creación del circuito

Para conectar todo a nuestra placa de Arduino lo tenemos que hacer de la siguiente manera:

  • Sensor PIR
    • VCC -> 5v
    • GND -> GND
    • OUT -> D2
  • LED -> D12

Si tenemos dudas de los pines del sensor de movimiento sí quitamos la óptica del sensor podemos ver cuáles son los pines.

Sensor PIR sin optica

 

 

 

 

 

 

Todo el circuito se debería de ver así:

Circuito completado alarma de movimiento

Esquema del circuito alarma de movimiento


Configuración de Blynk

En nuestro proyecto de Blynk solo lo que tenemos que poner es un Botón que va funcionar para activar o desactivar la alarma y que tiene que ir al pin V1 (Virtual 1) y también le tenemos que poner el Widget de Notificación para que nos notifique al móvil.

Configuración botón

Configuración Notificación


¡Hora de programar!

Ahora tenemos que programar la placa para que el circuito funcione, puedes descargar el código haciendo click aquí

#define BLYNK_PRINT DebugSerial

#include <SoftwareSerial.h>
SoftwareSerial DebugSerial(0, 1); // RX, TX

#include <BlynkSimpleStream.h>

char auth[] = "Tu Token de Blynk";

// PIR sensor tester

int ledPin = 12; // Establecemos el pin del LED
int inputPin = 2; // Establecemos el Pin del PIR
int pirState = LOW;
int val = 0;
int pinValue = 0;

// Establecemos una variable virtual de blynk para poder encender el PIR Cuando queramos
BLYNK_WRITE(V1)
{
pinValue = param.asInt();
}

void setup()
{
DebugSerial.begin(9600);

Serial.begin(9600);
// pir setup
pinMode(ledPin, OUTPUT);
pinMode(inputPin, INPUT);

Blynk.begin(Serial, auth);
}

void loop()
{
if(pinValue == 1){
val = digitalRead(inputPin);
digitalWrite(12, HIGH);
if (val == HIGH) {
Blynk.notify("Detecto movimiento, eres tú?");
}
}else{
digitalWrite(12, LOW);
}
Blynk.run();
}


Resultado Final de la Alarma de movimiento con notificación al móvil

Si hemos seguido los pasos correctamente tan solo nos queda poner en marcha el servidor de Blynk y activar la arma desde el móvil, si el sensor detecta algún movimiento nos notificara al móvil.

En el siguiente video para mostrar el funcionamiento se ha activado la alarma desde otro dispositivo al que se ha compartido el proyecto de Blynk.

Si te ha gustado este proyecto y quieres reproducirlo, compártelo por las redes sociales y etiquétanos para verlo! Facebook y Twitter

Comments

  • Luis
    10/08/2021

    Hola
    Recién me estoy iniciando en este mundo de Arduino y me parece genial.

    He intentado hacer este proyecto, copio literalmente el código pero al subirlo me indica:
    “Arduino:1.8.15 (Windows Store 1.8.49.0) (Windows 10), Tarjeta:”Arduino Uno”

    PIR_Blynk:2:1: error: ‘SoftwareSerial’ does not name a type; did you mean ‘HardwareSerial’?

    SoftwareSerial DebugSerial(0, 1); // RX, TX #include char auth[] = “Tu Token de Blynk”; // PIR sensor tester int ledPin = 12; // Establecemos el pin del LED

    ^~~~~~~~~~~~~~

    HardwareSerial

    PIR_Blynk:7:13: error: expected constructor, destructor, or type conversion before ‘(‘ token

    BLYNK_WRITE(V1)

    ^

    PIR_Blynk:7:12: error: expected constructor, destructor, or type conversion before ‘(‘ token

    BLYNK_WRITE(V1)

    ^

    D:\ARDUINO\PIR_Blynk\PIR_Blynk.ino: In function ‘void setup()’:

    PIR_Blynk:12:1: error: ‘DebugSerial’ was not declared in this scope

    DebugSerial.begin(9600); Serial.begin(9600);

    ^~~~~~~~~~~

    D:\ARDUINO\PIR_Blynk\PIR_Blynk.ino:12:1: note: suggested alternative: ‘Serial’

    DebugSerial.begin(9600); Serial.begin(9600);

    ^~~~~~~~~~~

    Serial

    PIR_Blynk:14:9: error: ‘ledPin’ was not declared in this scope

    pinMode(ledPin, OUTPUT);

    ^~~~~~

    D:\ARDUINO\PIR_Blynk\PIR_Blynk.ino:14:9: note: suggested alternative: ‘ldiv’

    pinMode(ledPin, OUTPUT);

    ^~~~~~

    ldiv

    PIR_Blynk:15:27: error: ‘Blynk’ was not declared in this scope

    pinMode(inputPin, INPUT); Blynk.begin(Serial, auth);

    ^~~~~

    PIR_Blynk:15:47: error: ‘auth’ was not declared in this scope

    pinMode(inputPin, INPUT); Blynk.begin(Serial, auth);

    ^~~~

    D:\ARDUINO\PIR_Blynk\PIR_Blynk.ino:15:47: note: suggested alternative: ‘auto’

    pinMode(inputPin, INPUT); Blynk.begin(Serial, auth);

    ^~~~

    auto

    D:\ARDUINO\PIR_Blynk\PIR_Blynk.ino: In function ‘void loop()’:

    PIR_Blynk:22:1: error: ‘Blynk’ was not declared in this scope

    Blynk.notify(“Detecto movimiento, eres tú?”);

    ^~~~~

    PIR_Blynk:27:1: error: ‘Blynk’ was not declared in this scope

    Blynk.run();

    ^~~~~

    exit status 1

    ‘SoftwareSerial’ does not name a type; did you mean ‘HardwareSerial’?”

    Espero me puedan ayudar, estoy muy emocionado con poder realizarlo

    Reply

Post a Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.