Archivo

Entradas Etiquetadas ‘rele’

Usar un sensor de puerta magnetico en un Raspberry Pi

domingo, 3 de enero de 2016 Sin comentarios

Ya ví cómo controlar un relé, ahora le agregaré un sensor de puerta para que cuando ésta se abra pueda ejecutar una acción, como activar un relé.

Materiales

  • Raspberry Pi (sigo usando el 2, pero también debería servir el 1)
  • Sensor magnético
  • Cable para conectar ambas cosas, se necesitarán varios metros dependiendo de la distancia.

 

 

image

 

Conexión

Por el extremo del sensor se deben conectar los dos cables y se debe instalar junto a la puerta o ventana a monitorear

image

 

En el extremo del Raspberry se debe conectar un cable por un pin GND y el otro en cualquier pin GPIO. Para encontrar los pins y su función puedes usar el siguiente esquema

GPIO_Pi2

Ésta es la conexión que hice

image

Como verán tengo conectadas más cosas, así que destaqué en rojo las conexiones del sensor, que corresponden a los pines 7 (GPIO4) y 9 (GND).

Con las conexiones realizadas ahora pasaré a la parte de software

Programación

Aquí usé la librería de GPIO para python con el siguiente código

import time
import RPi.GPIO as io

io.setmode(io.BCM)

door_pin = 4

io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP)

while True:
        if io.input(door_pin):
                print(«PUERTA ABIERTA!»)
        time.sleep(0.5)

La variable door_pin está fijada con el valor del pin BCM

image

 

Finalmente basta con ejecutar la aplicación con python nombrescript.py y activar el sensor abriendo la puerta, se mostrará el mensaje “PUERTA ABIERTA!” cada 0,5 segundos mientras la puerta esté abierta, si la cierras dejará de aparecer el mensaje.

Ahora modificaré el código para que además de mostrar ese mensaje active un relé

import time
import RPi.GPIO as io

io.setmode(io.BCM)

door_pin = 4
rele_pin = 21

io.setup(door_pin, io.IN, pull_up_down=io.PUD_UP) 
io.setup(rele_pin, io.OUT)

while True:
        if io.input(door_pin):
                print(«PUERTA ABIERTA!»)
                time.sleep(1.5)
                io.output(rele_pin, False)
        else:
                io.output(rele_pin, True)
        time.sleep(0.5)

El relé está configurado para que por defecto esté desactivado, por lo que al activar la puerta enciende el relé y viceversa. En caso de que esté configurado a la inversa el relé basta invertir el valor pasado al pin (io.output(rele_pin, XX) intercambiar False por True y viceversa en las dos veces que aparece en el código)

Aquí están destacados los pines correspondientes al relé en verde

image 

2 = DCC, 39 = GND, 40 = GPIO21

Categories: Raspberry Pi Tags: , ,