Grove - Sensor de Movimento 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.
Recursos
- Interface compatível com Grove
- Distância de detecção ajustável
- Tempo de retenção ajustável
Para mais detalhes sobre os módulos Grove, consulte o Grove System
Especificação
| Parâmetro | Valor/Faixa |
|---|---|
| Tensão de Operação | 3V–5V |
| Corrente de Operação (VCC = 3V) | 100uA |
| Corrente de Operação (VCC = 5V) | 150uA |
| Faixa de Medição | 0,1 - 6m |
| Distância de detecção padrão | 3m |
| Tempo de Retenção | 1 - 25s |
| Comprimento de Onda de Trabalho | 7 - 14um |
| Ângulo de Detecção | 120 graus |
Plataformas Suportadas
| Arduino | Raspberry Pi |
|---|---|
|
|
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
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.2 | Grove - PIR Motion Sensor | Base Shield |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira 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.

Se não tivermos o Grove Base Shield, também podemos conectar diretamente o Grove-PIR Motion Sensor ao Seeeduino como abaixo.
| Seeeduino | Grove - PIR Motion Sensor |
|---|---|
| 5V | Vermelho |
| GND | Preto |
| Não Conectado | Branco |
| D2 | Amarelo |
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);
}
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:

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.
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.

Envie o programa para o seu Arduino/Seeeduino.
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 pi | Grove Base Hat for RasPi | Grove - PIR Motion Sensor |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira 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.

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()
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 pi | GrovePi_Plus | Grove - PIR Motion Sensor |
|---|---|---|
|
|
|
| Adquira agora | Adquira agora | Adquira 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.

Software
-
Passo 1. Siga Setting Software para configurar o ambiente de desenvolvimento.
-
Passo 2. Siga Updating the Firmware para atualizar o firmware mais recente do GrovePi.
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.
Sugerimos fortemente que você atualize o firmware, caso contrário, para alguns sensores você poderá obter erros.
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.
Existe o risco de que a placa possa ser danificada. Por favor, pense bem antes de fazer essa modificação.

Visualizador de Esquemático Online
Recursos
- [Eagle] Grove - PIR Motion Sensor Eagle File v1.2
- [PDF] Grove - PIR Motion Sensor v1.2 Schematics
- [PDF] Grove - PIR Motion Sensor Eagle V1.2 PCB
- [Library] Repositório Github para PIR Motion Sensor
- [Datasheet] BISS0001 Datasheet
- [Datasheet] Fresnel lens 8120 Datasheet
- [Codecraft] Arquivo CDC
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.








