Sensor HC-SR501 con Arduino.

Alarma mediante un sensor PIR.

INTRODUCCIÓN.

Todo emite cierta radiación de bajo nivel, y cuanto más caliente es algo, mayor radiación es emitida. La presencia de personas, animales u objetos desprenden calor, son la base de cualquier sistema de detección de intrusos, escaleras comunitarias o aseos públicos para encender la luz en cuanto detecta el movimiento.

Los sensores infrarrojos pasivos son ideales para proyectos de detección de dichos movimientos. El sensor HC-SR501, sólo funciona cuando alguien se mueve en la franja que puede barrer su detector. Puede detectar movimiento de 3 hasta 7 metros de distancia. Este sensor de movimiento PIR tiene 3 pines, VCC, OUTPUT y GND, 2 potenciómetros para ajustar la sensibilidad y la demora. El retardo se puede configurar entre 5 y 300 segundos mientras que el potenciómetro de sensibilidad ajusta el rango de detección de aproximadamente 3 metros a 7 metros.

sensor_pir.jpg hc-sr501-labelled.gif
Fig. 1 Sensor HC-SR501

Como se ha dicho tiene dos trimers el sensor PIR, estos trimers ajustan el tiempo de retardo y la sensibilidad, de forma individual. También hay un puente de selección de modo de disparo.

H (re-activación): la salida permanece alta cuando el sensor se dispara repetidamente y baja cuando está inactivo.
L (Normal): la salida aumenta de alta a baja cuando se activa. El movimiento continuo da como resultado un pulso alto bajo repetido.

El sensor en un detector de movimiento está en realidad dividido en dos mitades. La razón de esto es que para detectar el movimiento estamos buscando (modificar) no los niveles promedio de IR. Las dos mitades están conectadas de tal manera que se anulan entre sí. Si una mitad ve más o menos radiación IR que la otra, la salida oscilará a alto o bajo.

Usted tiene a su alcance una gran variedad de artículos que hablan sobre los sensores de infrarrojos pasivos (PIR), en su mayoría utilizando un Arduino, un sensor PIR, un LED, un buzzer y un relé, con el que conectar (con este último) una alarma. Y se preguntará que necesidad tiene de leer este artículo, está bien, tendrá que perder un poco de su tiempo si lo quiere saber.

La idea del proyecto es crear una alarma lo más simple y pequeña posible, de modo que usted pueda ponerla en servicio en cualquier lugar sin llamar la atención, (lo que contribuirá a su camuflaje) para pasar desapercibida por cualquiera ajeno al lugar. Vayamos por partes.

Para detectar el movimiento se va ha utilizar un sensor de movimiento PIR y un programa para Arduino capaz de leer la señal del sensor y encender la luz durante unos segundos, en la versión más corta. La versión larga, consiste en algo más que lo descrito, ya que con las posibilidades que nos ofrecen los conocidos micros ESPXXXX en sus distintos modelos realizaremos un detector más avanzado, de modo que sigamos por este sendero.

Este sensor tiene dos modos de trabajo, disparo único y disparo repetido, veremos los dos tipos, como ya debe saber tiene un radio de acción que se puede ajustar mediante un trimer.

Un circuito muy sencillo capaz de servir en muchos casos, puede verse en la figura 2, el cual se sirve de un par de transistores NPN y un relé además de los componentes necesarios para su normal funcionamiento. Pero nosotros queremos algo más sofisticado ciertamente.

pir_rele.gif
Fig. 2 Esquema.

Por lo tanto, para detectar el movimiento utilizando un sensor de movimiento PIR y un programa para Arduino capaz de leer la señal del sensor y a su vez encender la luz durante un tiempo, en la versión más corta. La versión larga, consiste en algo más que lo descrito, ya que aprovecharemos las posibilidades que nos ofrecen los conocidos micros ESP8266 en sus distintos modelos como veremos en otro momento, de modo que, sigamos.

Estos son los componentes que vamos a utilizar en este artículo y siguientes.


Fig. 3 Componentes.

Para entrar en materia, la idea es desarrollar la alarma mediante Arduino y si alguien quiere puede utilizar un pequeño micro como puede ser un ATtiny85, aunque también se puede utilizar un ESP8266-01 que será más interesante, es muy económico, y se puede conectar vía WI-FI, pero eso ya se verá.

CIRCUITO INICIAL.

Vamos a presentar el circuito inicial del que sacaremos conclusiones dependiendo de los resultados obtenidos y las experiencias adquiridas.

arduino_pir3.gif
Fig. 4 Circuito.

El esquema como se aprecia es muy sencillo, en el que se ve el sensor PIR, un Arduino y un relé de salida para activar algún objeto como una luz o sirena y un diodo LED, los pines utilizados no son relevantes. Pondremos varios bocetos por el momento uno que no sea nada complicado, eso lo veremos a continuación.

PRIMER BOCETO.

Debo decir que este sensor PIR, según los datos del fabricante, requiere un tiempo para estabilizar su normal funcionamiento, por dicho motivo el boceto para activar el sensor PIR hace una pausa en su ‘arranque’ inicio.

El siguiente es un boceto sencillo y al mismo tiempo eficaz. Detecta y avisa de cualquier movimiento en su campo de acción.

Sensor de movimiento PIR

Este boceto funciona bien, aunque es muy simple y rudimentario sin duda que a alguien le puede ser de interés, pues cumple con la parte de detectar cualquier movimiento y activa el relé de alerta. No obstante, queremos un sistema que sea más completo, capaz de calibrarse, además de detectar cualquier movimiento en su radio de acción.

SEGUNDO BOCETO.

En este segundo boceto hemos tenido en cuenta los tiempos de calibración según recomienda el fabricante y le hemos dispuesto un LED de aviso de funcionamiento y que se ejecute nuevamente después de que una nueva secuencia de movimiento se haya detectado.

Sensor de movimiento.

El resultado de este boceto, se muestra en este corto vídeo en el que se aprecia cuando se activa el LED del pin 13.


Fig. 5 Vídeo.

Como se aprecia en el vídeo anterior, un movimiento delante del sensor, produce una activación de la salida y si la salida está activa, el tiempo de activación se alarga la salida activa por un nuevo periodo de tiempo, no se considera una nueva detección. Se considera nueva detección después de una transición a BAJO, es decir, mientras los pulsos de detección se produzcan en el estado alto de Tx, se alarga el estado alto, sólo después de una transición a bajo Ti, entonces se activa un nuevo Tx, ver la imagen de tiempos.

proximity_non-retriggerable.gif
Fig. 6 Tiempos y señales.

Demos un paso más, hasta aquí como ejemplo parece correcto y ya es hora de pensar en realizar un boceto que nos alerte de cualquier movimiento, por ejemplo en nuestra casa y que lo haga mediante una alarma «silenciosa», es decir, una señal personalizada, como un e-mail que puede alertarnos y así, si lo consideramos avisemos a la policía.

Para realizar un sistema con estas características, aprovechamos las posibilidades que nos ofrece el Internet de las cosas, simplemente  necesitamos un nodeMCU ESP-12, es cierto que podríamos usar un ESP8266-01, sin embargo, éste sólo dispone de 2 pines GPIO y en miras a una eventual ampliación de funciones, es el motivo por el que me he decidido por el nodeMCU.

En otro artículo tratare la versión con un NodeMCU y el envío de una email.

Nota. Al utilizar un NodeMCU que trabaja a 3’3V, la conexión del PIR directamente al NodeMCU no es aconsejable, aunque puede funcionar. Los pines de entrada tienen protección contra sobretensión, no obstante, recuerde que también debería limitar la corriente (al menos debe añadir una resistencia de 100 ó 200Ω en serie con la salida PIR. Sin esta resistencia, su circuito funcionará al principio, pero se podría «freir». Un circuito electrónico varía mucho y a veces un chip puede trabajar y otro no.

Por lo tanto, trabajará mejor dentro de la gama de parámetros nominales y no cerca del máximo. De modo que lo mejor es utilizar un adaptador de tensión.

Esto es todo, por este simple tutorial. Si tiene alguna pregunta hágala trataré de responder en breve.

2 thoughts on “Sensor HC-SR501 con Arduino.”

    1. Hola israel castro.

      Esos parámetros están relacionados con la detección y mantenimiento de la activación, por lo que tendrás que ajustar los dos potenciómetros que lleva incorporado el propio sensor, es bastante tedioso ese trabajo, supongo que te refieres a ese punto.

      Saludos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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