Descrição
O sensor de movimento PIR HC-SR501 é um sensor muito económico ideal para projetos DIY com Raspberry e Arduino.
Os sensores “PIR” ou sensores de movimento infravermelho permitem detetar se existe um movimento dentro da sua área de funcionamento, vamos ver como funciona.
Todos os objetos emitem uma pequena quantidade de radiação infravermelha, e quanto mais quente está um objeto, mais radiação infravermelha emite. Os sensores PIR são capazes de detetar pequenas variações no níveis da radiação infravermelha na sua área de deteção (por exemplo, quando uma pessoa entra dentro de uma habitação).
Em tutoriais anteriores, vimos como ativar LEDs e motores mediante um script em Python, com um esquema muito simples ligando a uma das portas GPIO do nosso Raspberry. Neste tutorial, veremos como trabalhar com um sensor PIR montando o circuito e elaborando um simples script em Python para mostrar uma mensagem no ecrã quando o sensor detete movimento. No mesmo script, podem-se adicionar facilmente algumas modificações para ativar um buzzer ou uma luz de alarme que se ative quando o sensor deteta um intruso ativando um segundo pino GPIO.
Vamos usar o sensor de movimento infravermelho HC-SR501 que tem 3 pinos: Terra, saída analógica e 5V (VCC), quando o sensor não detetar movimento, a saída analógica vai-se manter como LOW, quando detetar movimento, a saída analógica vai-se mudar para HIGH a 3.3V e vamos usar um pino GPIO do nosso Raspberry Pi para detetá-lo.
Montagem e ligações com o Sensor Pir
Como pode ver liguei o pino VCC ao pino de 5V do Raspberry Pi e o GND do sensor ao pino GND, com isto já temos o sensor alimentado e enviando sinais. Para que o Raspberry possa receber estes sinais, liguei o pino GPIO nº7 ao pino “saída analógica” do sensor.
Script em Python
Para que o sensor nos avise de atividade suspeita, podemos usar este exemplo de script em Python, está perfeitamente explicado:
import RPi.GPIO as GPIO #Importamos a libraria GPIO import time #Importamos time from time import gmtime, strftime #importamos gmtime y strftime GPIO.setmode(GPIO.BCM) #Configuramos os pinos GPIO como BCM PIR_PIN = 7 #Usaremos o pino GPIO nº7 GPIO.setup(PIR_PIN, GPIO.IN) #Configurámo-lo como entrada #GPIO.setup(17, GPIO.OUT) #Configuramos o pin 17 como saida (para um led) try: while True: #Iniciamos um laço infinito if GPIO.input(PIR_PIN): #Se há sinal no pino GPIO nº7 # GPIO.output(17,True) #Acendemos o led time.sleep(1) #Pausa de 1 segundo timex = strftime("%d-%m-%Y %H:%M:%S", gmtime()) #Criamos una cadeia de texto com a hora print timex + " MOVIMIENTO DETECTADO" #Tiramo-la pelo ecrã time.sleep(1) #Pausa de 1 segundo # GPIO.output(17,False) #Apagamos o led time.sleep(1) #Pausa de 1 segundo e voltamos a começar except KeyboardInterrupt: #Se o utilizador pressiona CONTROL + C... print "quit" #Anunciamos que finalizamos o script GPIO.cleanup() #Limpamos os pinos GPIO e saimos
Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.
Não se esqueçam de fazer like na nossa página no facebook.
Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.