Artigos

Como ligar um Sensor PIR para detetar movimento

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.

Comments

comments

Deixar uma resposta

Este site utiliza o Akismet para reduzir spam. Fica a saber como são processados os dados dos comentários.