Activación de alarma al abrir puerta o detectar  movimiento

Activación de alarma al abrir puerta o detectar movimiento

  • Autor de la entrada:
  • Categoría de la entrada:Arduino
  • Comentarios de la entrada:Sin comentarios

Si hiciéramos una encuesta a cierto grupo de vecinos con relación a su percepción del problema de la seguridad ciudadana, les aseguro que responderían a una sensación de inseguridad, las causas podríamos inferir que son muchas, una de ellas y quizás la más inmediata es la poca eficiencia de coordinación en los operadores de justicia criminal, motivando pues a tomar nuestras medidas de protección y seguridad.

Para disuadir o prevenir podemos conseguir en el mercado dispositivos o sistemas de seguridad que va de lo básico a sofisticado, claro está siempre a condición de su economía actual. Sin embargo, podemos diseñar un sistema de alarma que sea económico y mejor aún aprendamos a construir uno, ya que el objetivo es diseñar  y crearlos, por su puesto con la ayuda de las herramientas tecnológicas que existen.

Le presentamos un proyecto de sistema de alarma basado en el microcontrolador Arduino uno, que se activará al abrir la puerta principal o ventana, así como detectar el movimiento de un extraño al ingresar al pasillo de entrada de su domicilio, dicho esto a empezar!.

Dispositivos que usaremos:

Un Arduino Uno.
Un sensor ultrasónico HC-SR04.
Un diodo LED.
Un Sumbador eléctrico DC3.
Cuatro resistencias (2  de 220 ohmios y 2 de 1 Kilo ohmio)
Una protoboard.
Un pulsador.
Cables conectores.
Multímetro.

En el el Video 1. se muestra la explicación ilustrativa del sistema de alarma.

Explicación y funcionamiento del sistema

El sistema tendrá dos elementos de entrada que activarán la alarma, el primero es el sensor ultrasónico HC-SR04 que al detectar un cuerpo u obstáculo que atraviese su zona de proyección enviará información mediante un valor o magnitud (distancia) al microcontrolador, si el valor está comprendido dentro del umbral o parámetro establecido se encenderá automáticamente la baliza (representado por el diodo LED) y la sirena (representado por el zumbador eléctrico), ambos conectados a los pines de entrada del Arduino pin 5 y pin 8, respectivamente. El segundo elemento será el pulsador, este al ser acondicionado en la parte de la bisagra de la puerta o punto de apertura de la ventana, enviará una señal en bajo o LOW a través del pin de entrada del Arduino pin 7. Las resistencias son dispositivos de protección para evitar sobre cargas que pudieran dañar nuestro microcontrolador. Es importante señalar que al momento de realizar la prueba en el protoboard, el pulsador debe estar presionado ya que se activará, recuerde que se enciende en estado lógico bajo o LOW.

Figura 1. Diseño y conexión de dispositivos

Explicación del código

Primero abrimos el IDE de Arduino o interfaz de desarrollo, declaramos nuestras variables con los pines que corresponden al microcontrolador Arduino, el pinsumbador es del piezo eléctrico (sirena) y el pininterruptor es del pulsador, asimismo declaramos una variable  val igual a cero para tener el control sobre el pulsador es decir que se encuentre en estado de apagado. El triguer y echo del sensor ultrasónico van a los pines 3 y 4, respectivamente.

int pinled = 5;
int pininterruptor = 7;
int pinsumbador = 8;
int val = 0;
int pinTrig = 3;
int pinEcho = 4;

Declaramos una constante para calcular la distancia, resulta de aplicar el equivalente de la velocidad del sonido 343 metros por segundo (m/s) pero en unidades de centímetros (cm/s.)

const float velsonido = 0.0343;

Ejecutamos  la función setup para la configuración de los pines y por única vez.

void setup(){
 Serial.begin(9600);
 pinMode(pininterruptor, INPUT);
 pinMode(pinled, OUTPUT);
 pinMode(pinsumbador,OUTPUT);
 pinMode(pinTrig, OUTPUT);
 pinMode(pinEcho, INPUT);
}

En el setup podemos ver que las variables que activarán al sistema están configurados como INPUT, son señales de entrada, valga la redundancia. Los elementos de salida están configurados como OUTPUT, tenemos al piezo eléctrico (sirena), LED (baliza) y el disparador Triguer.

void activaTriguer(){
 digitalWrite(pinTrig, LOW);
 delayMicroseconds(2);
 digitalWrite(pinTrig, HIGH);
 delayMicroseconds(10);
 digitalWrite(pinTrig, LOW);
 }

El sensor ultrasónico pose 4 terminales, los terminales TRIG y ECHO son acústicos, el primero emite señales a bajas frecuencias las cuales rebotan al detectar un objeto u obstáculo y el otro las recibe, empero, para que ello suceda este dispositivo debe prepararse previamente, La función que acabamos de declarar justamente es para activar o preparar al sensor ultrasónico. El terminal VCC es la entrada al voltaje que se requiere para activar el sensor y el GND es la puesta a tierra.

A continuación la función principal void loop(), se ejecuta de forma indeterminada, lo primero que hace es activar el sensor ultrasónico para que empiece a enviar ondas ultrasónicas (frecuencias mayores a la velocidad del sonido) a través del emisor o TRIG, cuando esto sucede el pin receptor o ECHO se pone en modo de escucha o estado alto (HIGH) que servirá para determinar el tiempo de ida y venida de la onda ultrasónica, ello es posible con la función PulseIn( ), dicho valor es almacenado en la variable tiempo. Para calcular la distancia usamos la fórmula de la velocidad = espacio / tiempo, despejamos el espacio y luego lo dividimos entre dos (consideramos solo el tiempo hasta el obstáculo).

void loop(){
 activaTriguer();

 long unsigned tiempo = pulseIn(pinEcho, HIGH);
 float distancia = tiempo*velsonido/2;
 Serial.println(distancia);
 delay(200);
 val = digitalRead(pininterruptor);
  if(distancia <=80 or val == LOW){
   digitalWrite(pinled, HIGH);
   digitalWrite(pinsumbador, HIGH);
   delay(3000);
   digitalWrite(pinled, LOW);
   digitalWrite(pinsumbador, LOW);
   delay(500);
  }
  else{
  digitalWrite(pinled, LOW);
  digitalWrite(pinsumbador, LOW);
  }
}

Seguidamente leemos el valor del pulsador para saber si está en estado ALTO o BAJO, lo almacenamos en la variable val; una vez obtenido los dos valores de entrada del sistema de alarma, declaramos una sentencia condicional y lo comparamos, si la distancia del objeto es menor o igual a 80 cmts o val está en bajo (puerta o ventana abierta), entonces que se encienda la baliza(LED) y la sirena (pinsumbador), en caso contrario que los dispositivos se apaguen (LOW).

Bien amigos, como siempre espero haya sido de su interés y haber contribuído en algo, ahora queda expedito para realizar un prototipo real con el diseño de sus placas PBC y activar la sirena y baliza con un relé. No olviden dejar sus comentarios y compartirlo, gracias.

Deja una respuesta