Sensor de presencia en Raspberry Pi

Podemos hacer uso de la biblioteca de GPIO para Python, conectar sensores digitales y tomar acciones de acuerdo al estado de estos sensores.

PIR Sensor-250x250 (1)

 

El siguiente tutorial nos muestra como instalar la biblioteca GPIO para Python y como conectar un sensor de presencia para mostrar una salida por pantalla cuando se active.

 

 

 

 

Materiales

  • Fuente de poder 5V @ 2A
  • Acceso a Inet
  • Protoboard
  • Conector para Raspberry Pi
  • Sensor de presencia rev. A. mas información en este link

Sobre el Hardware

Los puertos GPIO (General Purpose Input Output) se encuentran junto a la conector de la tarjeta SD, y están etiquetados con P1. Es un puerto de 26 pines. La siguiente figura muestra los pines.

GPIOs

El sensor de presencia o sensor PIR (Passive Infra-Red) es un equipo piroeléctrico que detecta movimiento por la variación en los niveles de de infrarrojo (calor) que emiten los objetos cercanos. Cuando se detecta movimiento. el sensor produce una señal de nivel alto en el pin de salida. Este modelo cuenta con un jumper que permite cambiar la operacion del pin de salida. Nosotros dejamos el jumper en la posición H

La conexión es la siguiente, se indican los pines en la Raspberry Pi

PIN 1 a +
PIN 6 a GND
PIN 26 a Salida

El conector de la Raspberry Pi va al protoboard y se usan cables para conectar a los pines del sensor.

Instalando Software

Instalamos la biblioteca de GPIO para  Python usando los siguientes comandos

sudo wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.0a.tar.gz
tar zxf RPi.GPIO-0.5.0a.tar.gz
cd RPi.GPIO-0.5.0a
sudo python setup.py install

Esta biblioteca ya la habíamos usado antes en el artículo de hola mundo pero esta versión de la biblioteca es más actualizada.

Para verificar usamos los siguientes comandos

sudo python
Python 2.7.3 (default, Jan 13 2013, 11:20:46)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import RPi.GPIO as GPIO
>>> GPIO.RPI_REVISION
2
>>> GPIO.VERSION
'0.5.0a'

 

Codificando en Python

Para importar la biblioteca usamos

import RPi.GPIO as GPIO

Para definir la nomenclatura a usar

GPIO.setmode(GPIO.BCM)

este comando significa que usamos la numeracion original del chip BroadCom

Como ejemplo muy básico de esto es indicar por pantalla si detecta o no una presencia. Usamos el siguiente comando

sudo nano PIR_demo.py

Para insertar el código que se muestra a continuación


# Basic testing on presence sensor
#
# Author : Manuel Carrasco
# Date   : 12/05/2013

# Import required Python libraries
import time
import RPi.GPIO as GPIO

# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)

# Define GPIO to use on Pi
GPIO_PIR = 7

print "PIR Module basic test (CTRL-C to exit)"

GPIO.setwarnings(False)

# Set pin as input
GPIO.setup(GPIO_PIR,GPIO.IN)

try:

    print "Waiting for PIR to settle ..."
    time.sleep(1)
    print "  Ready"

  # Loop until users quits with CTRL-C
    while True :
      if GPIO.input(GPIO_PIR):
        print("Se detecta  presencia")
        time.sleep(0.5)
      else :
        print("No hay presencia")
        time.sleep(0.5)
except KeyboardInterrupt:
        print "  Quit"
  # Reset GPIO settings
GPIO.cleanup()

Para funcionar necesita el siguiente comando

sudo python PIR_demo.py

Obviamente hay muchas variaciones posibles. Se pueden tomar acciones u obtener información de otros sensores.

Bibliografia

http://www.raspberrypi-spy.co.uk/2013/01/cheap-pir-sensors-and-the-raspberry-pi-part-1/
https://code.google.com/p/raspberry-gpio-python/wiki/Main

Author: Manuel Carrasco

Ingeniero Eléctrico, Institutano, instructor certificado Cisco, en twitter @mcarrasco con comentarios y opiniones personales.

6 thoughts

  1. Gracias por la informacion Manuel, solo una pregunta que S.O. usas para la raspberry pi, y la libreria funciona en Python 3.3.2 de antemano gracias.

  2. ¡Hola!

    En primer lugar, enhorabuena por la idea, es cojonuda!

    Quería preguntarte sobre el sensor PIR, es que en la explicación nombras el link pero no te lleva a ningún sitio.

    ¿Sería posible arreglarlo o decir el link?

    ¡Muchas gracias y un saludo!

    1. Estimado, los sensores se conectan a los puertos GPIO, modificando la configuracion de tu raspberry pi puedes llegar a controlar 17 sensores (puertos GPIO).

      Saludos

Deja una respuesta

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