Grove - Sensor de Movimiento PIR
Este sensor te permite detectar movimiento, generalmente movimiento humano en su rango. Simplemente conéctalo al Grove - Base shield y prográmalo, cuando alguien se mueva en su rango de detección, el sensor emitirá HIGH en su pin SIG.
Características
- Interfaz compatible con Grove
- Distancia de detección ajustable
- Tiempo de retención ajustable
Para más detalles sobre los módulos Grove, consulta Sistema Grove
Especificaciones
Parámetro | Valor/Rango |
---|---|
Voltaje de Operación | 3V–5V |
Corriente de Operación(VCC = 3V) | 100uA |
Corriente de Operación(VCC = 5V) | 150uA |
Rango de Medición | 0.1 - 6m |
Distancia de detección por defecto | 3m |
Tiempo de Retención | 1 - 25s |
Longitud de Onda de Trabajo | 7 - 14um |
Ángulo de Detección | 120 grados |
Plataformas Soportadas
Arduino | Raspberry Pi |
---|---|
Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.
Primeros Pasos
Si esta es la primera vez que trabajas con Arduino, te recomendamos firmemente que veas Primeros Pasos con Arduino antes de comenzar.
Jugar con Arduino
Hardware
- Paso 1. Prepara los siguientes elementos:
Seeeduino V4.2 | Grove - Sensor de Movimiento PIR | Base Shield |
---|---|---|
Consigue Uno Ahora | Consigue Uno Ahora | Consigue Uno Ahora |
-
Paso 2. Conecta Grove - PIR Motion Sensor al puerto D2 del Grove-Base Shield.
-
Paso 3. Conecta Grove - Base Shield al Seeeduino.
-
Paso 4. Conecta el Seeeduino a la PC mediante un cable USB.
Si no tenemos Grove Base Shield, también podemos conectar directamente Grove-PIR Motion Sensor al Seeeduino como se muestra a continuación.
Seeeduino | Grove - PIR Motion Sensor |
---|---|
5V | Rojo |
GND | Negro |
No Conectado | Blanco |
D2 | Amarillo |
Software
- Copia el código de abajo en Arduino IDE y súbelo. Si no sabes cómo subir el código, por favor revisa cómo subir código.
/*
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);
}
La distancia de detección y el tiempo de retención se pueden ajustar añadiendo dos potenciómetros adicionales en la placa. Para más detalles, consulte el V1.2 Eagle a continuación. El módulo también se puede configurar como re-activable o no re-activable cambiando el puente.
El resultado debería ser así:
Use una tapa de puente para cortocircuitar dos pines para activar un disparador repetible o no repetible. Si usa GND y el pin 1, la combinación resulta en un disparador no repetible (predeterminado). Si usa el pin 1 y VCC, el disparador es repetible. Un disparador no repetible significa que el evento ocurre una vez dentro de un ciclo (generalmente unos pocos segundos). En el caso del ejemplo de la wiki, es un disparador no repetible.
Jugar con Codecraft
Hardware
Paso 1. Conecte un Grove - PIR Motion Sensor al puerto D2 de un Base Shield.
Paso 2. Conecte el Base Shield a su Seeeduino/Arduino.
Paso 3. Conecte Seeeduino/Arduino a su PC mediante un cable USB.
Software
Paso 1. Abra Codecraft, añada soporte para Arduino, y arrastre un procedimiento principal al área de trabajo.
Si esta es su primera vez usando Codecraft, vea también Guía para Codecraft usando Arduino.
Paso 2. Arrastre bloques como en la imagen de abajo o abra el archivo cdc que se puede descargar al final de esta página.
Suba el programa a su Arduino/Seeeduino.
Cuando el código termine de subirse, el LED se encenderá cuando la gente se acerque.
Jugar con Raspberry Pi (Con Grove Base Hat para Raspberry Pi)
Hardware
- Paso 1. Elementos utilizados en este proyecto:
Raspberry pi | Grove Base Hat para RasPi | Grove - PIR Motion Sensor |
---|---|---|
Obtener UNO Ahora | Obtener UNO Ahora | Obtener UNO Ahora |
- Paso 2. Conecta el Grove Base Hat al Raspberry.
- Paso 3. Conecta el sensor de movimiento PIR al puerto 12 del Base Hat.
- Paso 4. Conecta el Raspberry Pi a la PC a través del cable USB.
Para el paso 3 puedes conectar el sensor de movimiento PIR a cualquier GPIO Puerto pero asegúrate de cambiar el comando con el número de puerto correspondiente.
Software
- Paso 1. Sigue Configuración de Software para configurar el entorno de desarrollo.
- Paso 2. Descarga el archivo fuente clonando la biblioteca grove.py.
cd ~
git clone https://github.com/Seeed-Studio/grove.py
- Paso 3. Ejecuta los siguientes comandos para ejecutar el código.
cd grove.py/grove
python grove_mini_pir_motion_sensor.py 12
A continuación se muestra el código de 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()
If everything goes well, you will be able to see the following result
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
Puedes salir de este programa simplemente presionando ++ctrl+c++.
Jugar con Raspberry Pi (con GrovePi_Plus)
Hardware
- Paso 1. Prepara los siguientes elementos:
Raspberry pi | GrovePi_Plus | Grove - PIR Motion Sensor |
---|---|---|
Obtener Uno Ahora | Obtener Uno Ahora | Obtener Uno Ahora |
-
Paso 2. Conecta el GrovePi_Plus al Raspberry.
-
Paso 3. Conecta el sensor al puerto D8 del GrovePi_Plus.
-
Paso 4. Conecta el Raspberry a la PC a través del cable USB.
Software
-
Paso 1. Sigue Setting Software para configurar el entorno de desarrollo.
-
Paso 2. Sigue Updating the Firmware para actualizar el firmware más reciente del GrovePi.
En esta wiki usamos la ruta ~/GrovePi/ en lugar de /home/pi/Desktop/GrovePi, necesitas asegurarte de que el Paso 2 y el Paso 3 usen la misma ruta.
Te sugerimos firmemente que actualices el firmware, o para algunos sensores podrías obtener errores.
Si estás usando Raspberry Pi con Raspberrypi OS >= Bullseye, tienes que usar esta línea de comandos solo con Python3.
- Paso 3. Clona el repositorio de Github con Git.
cd ~
git clone https://github.com/DexterInd/GrovePi.git
- Paso 4. Ejecuta los siguientes comandos para usar el Sensor de Movimiento PIR para monitorear el movimiento de personas.
cd ~/GrovePi/Software/Python
sudo python3 grove_pir_motion_sensor.py
Aquí está el 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"
El resultado debería 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
-
-
Preguntas Frecuentes
P1: ¿Cómo hacer que la distancia sea ajustable?
R1: R2: se usa para ajustar la distancia de detección (el coeficiente AMP, 2MΩ). R6: se usa para ajustar el tiempo de mantenimiento (el ciclo de trabajo del disparador, 100KΩ).
La distancia de detección se puede ajustar desde 6 metros hasta solo varios centímetros. Si el potenciómetro se ajusta a un extremo, el módulo será demasiado sensible para ser activado por la atmósfera incluso cuando no hay personas moviéndose frente a él. El tiempo de mantenimiento también se puede ajustar mediante el potenciómetro Delay_time, el valor es aproximadamente de 25s a 1s.
Si R2 y R6 están soldados, asegúrese de que R13 y R14 estén vacíos.
Existe el riesgo de que la placa pueda ser destruida. Por favor, piénselo bien antes de hacer esta modificación.
Visor de Esquemas en Línea
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] Repositorio Github para PIR Motion Sensor
- [Datasheet] BISS0001 Datasheet
- [Datasheet] Fresnel lens 8120 Datasheet
- [Codecraft] CDC File
Proyectos
Alarma Antirrobo con Sensor de Movimiento PIR: Este artículo explica las Alarmas Antirrobo con un Sensor de Movimiento PIR.
Soporte Técnico y Discusión de Productos
¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.