Pular para o conteúdo principal

Grove - Sensor de Movimento PIR

pir

Este sensor permite que você detecte movimento, geralmente movimento humano em seu alcance. Basta conectá-lo ao Grove - Base shield e programá-lo; quando alguém se mover em seu alcance de detecção, o sensor irá gerar nível ALTO no seu pino SIG.

pir

Recursos

  • Interface compatível com Grove
  • Distância de detecção ajustável
  • Tempo de retenção ajustável
dica

Para mais detalhes sobre os módulos Grove, consulte o Grove System

Especificação

ParâmetroValor/Faixa
Tensão de Operação3V–5V
Corrente de Operação (VCC = 3V)100uA
Corrente de Operação (VCC = 5V)150uA
Faixa de Medição0,1 - 6m
Distância de detecção padrão3m
Tempo de Retenção1 - 25s
Comprimento de Onda de Trabalho7 - 14um
Ângulo de Detecção120 graus

Plataformas Suportadas

ArduinoRaspberry Pi

pir

pir

cuidado

As plataformas mencionadas acima como suportadas são uma indicação de compatibilidade de software ou teórica do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software/código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários precisam escrever sua própria biblioteca de software.

Primeiros Passos

nota

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.

Brincar com Arduino

Hardware

  • Passo 1. Prepare os itens abaixo:
Seeeduino V4.2Grove - PIR Motion SensorBase Shield

pir

pir

pir

Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove - PIR Motion Sensor à porta D2 do Grove-Base Shield.

  • Passo 3. Conecte o Grove - Base Shield ao Seeeduino.

  • Passo 4. Conecte o Seeeduino ao PC através de um cabo USB.

pir

nota

Se não tivermos o Grove Base Shield, também podemos conectar diretamente o Grove-PIR Motion Sensor ao Seeeduino como abaixo.

SeeeduinoGrove - PIR Motion Sensor
5VVermelho
GNDPreto
Não ConectadoBranco
D2Amarelo

Software

  • Copie o código abaixo para a IDE do Arduino e faça o upload. Se você não souber como enviar o código, verifique how to upload code.
/*
macro definitions of PIR motion sensor pin
Use pin 2 to receive the signal from the module
*/
#define PIR_MOTION_SENSOR 2


void setup()
{
pinMode(PIR_MOTION_SENSOR, INPUT);
Serial.begin(9600);

}

void loop()
{
// If it detects moving people
// To know more about why digital numbers are used as boolean, check https://www.techtarget.com/whatis/definition/Boolean#:~:text=The%20Boolean%20data,1%20or%200
if(digitalRead(PIR_MOTION_SENSOR))
Serial.println("Hi,people is coming");
else
Serial.println("Watching");

delay(200);
}

nota

A distância de detecção e o tempo de retenção podem ser ajustados adicionando dois potenciômetros extras na placa. Para mais detalhes, consulte o Eagle V1.2 abaixo. O módulo também pode ser configurado como re-disparável ou não re-disparável alterando o jumper.

O resultado deve ser como:

pir

dica

Use um jumper para curto-circuitar dois pinos a fim de acionar um gatilho repetível ou não repetível. Se você usar GND e o pino 1, a combinação resulta em um gatilho não repetível (padrão). Se você usar o pino 1 e VCC, o gatilho é repetível. Um gatilho não repetível significa que o evento ocorre uma vez dentro de um ciclo (geralmente alguns segundos). No caso do exemplo deste wiki, trata-se de um gatilho não repetível.

Brincar com Codecraft

Hardware

Passo 1. Conecte um Grove - PIR Motion Sensor à porta D2 de um Base Shield.

Passo 2. Conecte o Base Shield ao seu Seeeduino/Arduino.

Passo 3. Conecte o Seeeduino/Arduino ao seu PC através de um cabo USB.

Software

Passo 1. Abra o Codecraft, adicione o suporte a Arduino e arraste um procedimento principal para a área de trabalho.

nota

Se esta é a primeira vez que você usa o Codecraft, veja também o Guide for Codecraft using Arduino.

Passo 2. Arraste os blocos como na figura abaixo ou abra o arquivo cdc que pode ser baixado no final desta página.

pir

Envie o programa para o seu Arduino/Seeeduino.

success

Quando o código terminar de ser enviado, o LED acenderá quando uma pessoa se aproximar.

Brincar com Raspberry Pi (Com Grove Base Hat para Raspberry Pi)

Hardware

  • Passo 1. Itens usados neste projeto:
Raspberry piGrove Base Hat for RasPiGrove - PIR Motion Sensor

pir

pir

pir

Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o Grove Base Hat ao Raspberry.
  • Passo 3. Conecte o sensor de movimento PIR à porta 12 do Base Hat.
  • Passo 4. Conecte o Raspberry Pi ao PC através de um cabo USB.

pir

nota

No passo 3 você pode conectar o sensor de movimento PIR a qualquer porta GPIO, mas certifique-se de alterar o comando com o número de porta correspondente.

Software

  • Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
  • Passo 2. Baixe o arquivo-fonte clonando a biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py

  • Passo 3. Execute os comandos abaixo para rodar o código.
cd grove.py/grove
python grove_mini_pir_motion_sensor.py 12

A seguir está o código grove_mini_pir_motion_sensor.py.


import time
from grove.gpio import GPIO


class GroveMiniPIRMotionSensor(GPIO):
def __init__(self, pin):
super(GroveMiniPIRMotionSensor, self).__init__(pin, GPIO.IN)
self._on_detect = None

@property
def on_detect(self):
return self._on_detect

@on_detect.setter
def on_detect(self, callback):
if not callable(callback):
return

if self.on_event is None:
self.on_event = self._handle_event

self._on_detect = callback

def _handle_event(self, pin, value):
if value:
if callable(self._on_detect):
self._on_detect()

Grove = GroveMiniPIRMotionSensor


def main():
import sys

if len(sys.argv) < 2:
print('Usage: {} pin'.format(sys.argv[0]))
sys.exit(1)

pir = GroveMiniPIRMotionSensor(int(sys.argv[1]))

def callback():
print('Motion detected.')

pir.on_detect = callback

while True:
time.sleep(1)


if __name__ == '__main__':
main()

success

Se tudo correr bem, você poderá ver o seguinte resultado


pi@raspberrypi:~/grove.py/grove $ python grove_mini_pir_motion_sensor.py 12
Motion detected.
Motion detected.
Motion detected.
^CTraceback (most recent call last):
File "grove_mini_pir_motion_sensor.py", line 84, in <module>
main()
File "grove_mini_pir_motion_sensor.py", line 80, in main
time.sleep(1)
KeyboardInterrupt

Você pode sair deste programa simplesmente pressionando ++ctrl+c++.

Brinque com Raspberry Pi (com GrovePi_Plus)

Hardware

  • Passo 1. Prepare os seguintes itens:
Raspberry piGrovePi_PlusGrove - PIR Motion Sensor

pir

pir

pir

Adquira agoraAdquira agoraAdquira agora
  • Passo 2. Conecte o GrovePi_Plus ao Raspberry.

  • Passo 3. Conecte o sensor à porta D8 do GrovePi_Plus.

  • Passo 4. Conecte o Raspberry ao PC por meio de um cabo USB.

pir

Software

dica

Neste wiki usamos o caminho ~/GrovePi/ em vez de /home/pi/Desktop/GrovePi, você precisa se certificar de que o Passo 2 e o Passo 3 usem o mesmo caminho.

nota

Sugerimos fortemente que você atualize o firmware, caso contrário, para alguns sensores você poderá obter erros.

nota

Se você estiver usando Raspberry Pi com Raspberrypi OS >= Bullseye, você tem que usar esta linha de comando apenas com Python3.

  • Passo 3. Dê git clone no repositório do Github.
cd ~
git clone https://github.com/DexterInd/GrovePi.git

  • Passo 4. Execute os comandos abaixo para usar o PIR Motion Sensor para monitorar o movimento de pessoas.
cd ~/GrovePi/Software/Python
sudo python3 grove_pir_motion_sensor.py

Aqui está o código grove_pir_motion_sensor.py.

import time
import grovepi

# Connect the Grove PIR Motion Sensor to digital port D8
# SIG,NC,VCC,GND
pir_sensor = 8

grovepi.pinMode(pir_sensor,"INPUT")

while True:
try:
# Sense motion, usually human, within the target range
if grovepi.digitalRead(pir_sensor):
print 'Motion Detected'
else:
print '-'

# if your hold time is less than this, you might not see as many detections
time.sleep(.2)

except IOError:
print "Error"

O resultado deve ser como:

pi@raspberrypi:~/GrovePi/Software/Python $ sudo python3 grove_pir_motion_sensor.py

-
-
-
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
Motion Detected
-
-

FAQs

P1: Como tornar a distância ajustável?

R1: R2: usado para ajustar a distância de detecção (o coeficiente AMP, 2MΩ). R6: usado para ajustar o tempo de retenção (o ciclo de trabalho do disparo, 100KΩ).

A distância de detecção pode ser ajustada de 6 metros até apenas alguns centímetros. Se o potenciômetro estiver ajustado para uma das extremidades, o módulo será sensível demais e poderá ser disparado pela atmosfera mesmo quando não houver pessoas se movendo à sua frente. O tempo de retenção também pode ser ajustado pelo potenciômetro Delay_time, o valor é de aproximadamente 25s a 1s.

Se R2 e R6 estiverem soldados, certifique-se de que R13 e R14 estejam vazios.

nota

Existe o risco de que a placa possa ser danificada. Por favor, pense bem antes de fazer essa modificação.

pir

Visualizador de Esquemático Online

Recursos

Projetos

Alarme contra roubo com PIR Motion Sensor: Este artigo explica alarmes contra roubo com um PIR Motion Sensor.

Suporte Técnico & Discussão sobre o Produto

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...