Control de Sensor Movimiento
Control de Sensor Movimiento
Control de Sensor Movimiento
El sensor tiene tres pines que necesita conectar al Pi usando cables de puente
hembra / macho. En la siguiente figura, puede ver cmo conectar el pin de 5V
del Pi (pin #2) al pin de alimentacin del sensor, el pin de tierra del Pi (pin #6)
al pin de tierra del sensor. Finalmente, conecte el pin de seal del sensor a un
pin GPIO (PIN #7) en el Pi.
Por lo general, los pines del sensor estn etiquetados. En caso de duda,
observe la ficha de datos del sensor
.
Control de un sensor PIR
Ahora realizaremos el control del sensor usando software. Para la cual usamos el
lenguaje de programacin Python que es fcil de aprender y podemos utilizar la librera
GPi de Raspberry para utilizar los pines del mismo.
El sistema instalado Raspbian ya tiene python, por locual tenemos que instalar el paquete
GPi por lo cual usamos los siguientes comando en la consola.
pi@raspberry:~$ sudo apt-get update
pi@raspberry:~$ sudo apt-get install python-dev python-rpi.gpio
En la primera lnea importamos las funciones GPIO de RPi, para que podamos usarlas en
nuestra Propio cdigo. A continuacin, definimos una nueva clase llamada
sensorMovimiento. Siempre que creamos un nuevo objeto sensorMovimiento, Python
llamar a la funcin _ _init_ _ (). Esta funcin espera dos argumentos: el objeto recin
creado (self) y el Nmero de la clavija a la que hemos conectado el sensor (pin). Python
inicializar automticamente el primer argumento. En la lnea 4, almacenamos el nmero
de pin en el objeto actual, y despus de eso establecemos el esquema de numeracin
para los pines usando la funcin GPIO.setmode (). Se pasa el valor GPIO.BCM, por lo
que la biblioteca RPi interpreta los nmeros de pin utilizando la definicin de Broadcom.
En nuestro caso, el nmero de pin es 23 porque hemos conectado el pin de seal del
sensor al pin GPIO23 en el Pi.
Alternativamente, podemos configurar el modo a GPIO.BOARD. En este caso, RPi
interpreta los nmeros de pin como se definen en la tabla del Raspberr Pi, y tendramos
que usar 16 en su lugar con nuestra configuracin actual. Finalmente, configuramos el
pin al que se conecta el sensor en un pin de entrada llamando a GPIO.setup () en la lnea
6.
Entonces definimos un mtodo llamado movimientoDetectado() que llama a GPIO.input (),
pasndolo nuestro nmero de pin de seal. Dependiendo del resultado de la llamada del
mtodo, devuelve True si el sensor ha detectado un movimiento y False en caso
contrario.
Una vez ms, Python establece el argumento de auto automticamente para
nosotros. Nuestra clase SensorMovimiento est completa ahora, as que vamos
a usarla para construir un detector de movimiento.
El siguiente programa comprueba peridicamente si el sensor PIR ha detectado
movimiento. Imprime un mensaje si alguien se mueve, y tambin imprime un
mensaje si nadie se ha movido por ms de dos segundos.
En las dos primeras lneas, importamos la clase SensorMovimiento y las funciones de
Python para manipular fechas y horas.
Entonces definimos una constante llamada PIN y la fijamos al nmero de nuestro pin de
seal. Utilizamos la constante en la lnea siguiente cuando creamos un nuevo objeto
SensorMovimiento por primera vez. El algoritmo de deteccin comienza en la lnea 7.
Guardamos el ltimo estado del sensor PIR en una variable denominada estado.
Entonces comenzamos un bucle sin fin y verificamos si el sensor PIR ha detectado
actualmente un movimiento. En caso afirmativo, verificamos si se trata de una nueva
mocin o si la hemos detectado antes. Si es nuevo, imprimimos el mensaje "Movimiento
detectado".