Conectando Sensor de Movimento no Raspberry Pi

Sensores de presença e movimento, são conhecidos por sua larga utilização em alarmes residenciais e sistemas de iluminação automática com base na movimentação de um determinado recinto.

Teremos uma série de posts cobrindo os mais comuns, como os apresentados abaixo. Neste de hoje falarei apenas do sensor de movimento (primeiro da esquerda para direita).

img_1940
Sensores da esq. para dir.: Movimento, GPS, Luminosidade e Temperatura

HC-SR501 Sensor de Presença e Movimento

1430565428dsc1517
Sensor de Presença e Movimento PIR | HC-SR501

Observando a pinagem abaixo, algo que chama a atenção é o fato de termos 2 modos de atuação do sensor relacionados as indicações ‘No Reset’ e ‘Auto Reset’:

  • Modo H | Auto Reset (default de fábrica): após cada evento o sensor restart o ‘tempo de saída’ e retoma a função de detecção após este tempo.
  • Modo L | No Reset: após detectar o primeiro evento não é necessário efetuar o reset do sensor para que detecte um novo evento.

. Encontrei outros sensores do mesmo modelo e fabricante que vem com 3 pinos e um jumper para facilitar a troca dos modos. o meu veio exatamente como na foto abaixo.

hc-sr501-labelled-alt.png

Os ajustes de ‘Tempo de Saída’ (Output timing) e ‘Sensibilidade’ (Sensitivity) podem ser feitos manualmente e são da seguinte forma:

pir

 

Para o correto posicionamento é necessário identificar o campo de atuação do sensor PIR. Segue figura para referência:

pir-range

Para quem quiser conhecer mais profundamente sobre este tipo de sensor PIR, segue uma ótima referência: http://henrysbench.capnfatz.com/henrys-bench/arduino-sensors-and-input/arduino-hc-sr501-motion-sensor-tutorial/

It’s Coding Time!

Vamos utilizar da simplificada biblioteca Python GPIOZERO para fazermos as primeiras leituras do sensor PIR e testar algumas variações de sensibilidade e tempo de saída.

Pinos utilizados:

  • GPIO25 – Saída Digital PIR
  • 5V – VCC PIR
  • GND- GND PIR

Obs: não alterei os pinos de modos, deixei como vieram.

#!usr/bin/python

from gpiozero import MotionSensor
from gpiozero import LED

led = LED(3)
pir = MotionSensor(pin=25)

while(True):
         if(pir.motion_detected):
                 led.on()
         else:
                 led.off()

Este simples código faz um laço infinito e verificar pela flag ‘motion_detected’ que verificar se foi detectado algum movimento e como consequência ativa um led que coloquei no GPIO3 para ficar mais fácil de identificar a sensibilidade e tempos do sensor.

Mais simples impossível.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s