Sensor – AM312 – PIR bewegingssensor
Hardware
Informatie (ENG)
Technische details:
- Operating voltage: DC 2.7-12V;
- Static power consumption: <0.1mA;
- Delay time: 2 seconds;
- Block time: 2 seconds;
- Trigger mode: repeatable;
- Sensing range: ≤ 100 degrees cone angle, 3-5 meters; (according to the specific lens)
- Working temperature: -20 – + 60 ℃
- PCB Dimensions: 10mm * 8mm
- Module lens: small lens
Pinout
Arduino
Sluit de module aan volgens onderstaand overzicht:
Arduino pin: | PIR pin: |
---|---|
+5v | 01 (+5v) |
D2 | 02 (OUT) |
GND | 03 (GND) |
De OUT wordt HIGH (5v) als de PIR een detectie meet, uitlezen van de Arduino is dan vrij simpel en er is geen bibliotheek nodig.
Script
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
// Configureer de pin voor de LED. int ledPin = 13; // Configureer de INPUT pin van de PIR. int inputPin = 2; // Zet de pirstate op LOW, aannemend dat er geen beweging is gedetecteerd wanneer de PIR start. int pirState = LOW; // Een variabele voor de pinstatus van de PIR. int val = 0; void setup() { // Stel de digitale in- of uitgangen in. pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); Serial.begin(9600); } void loop(){ // Uitlezen van de PIR pin, is deze hoog of laag? val = digitalRead(inputPin); // Als de PIR pin HOOG is. if (val == HIGH) { // Zet de LED aan. digitalWrite(ledPin, HIGH); if (pirState == LOW) { //De PIR is AAN. Serial.println("Beweging gedetecteerd!"); // We reageren alleen op de verandering aan de OUT pin, niet de PIR status. pirState = HIGH; } } else { // Zet de LED uit. digitalWrite(ledPin, LOW) if (pirState == HIGH){ // De PIR is UIT. Serial.println("Beweging beëindigd!"); // We reageren alleen op de verandering aan de OUT pin, niet de PIR status. pirState = LOW; } } } |
Raspberry Pi
Sluit de DHT sensor aan zoals aangegeven op onderstaand schema:
Raspberry Pi pin: | PIR pin: |
---|---|
+5v | 01 (+5v) |
GPIO18 | 02 (OUT) |
GND | 03 (GND) |
Scripts
Met onderstaande Python code kan de pin van de PIR uitgelezen worden, maak een bestand aan genaamd pir.py met deze inhoud:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/bin/python # importeer de GPIO bibliotheek. import RPi.GPIO as GPIO # Importeer de time biblotheek voor tijdfuncties. from time import sleep # Definieer pin voor PIR pir_sensor = 18 # Zet de pinmode op Broadcom SOC. GPIO.setmode(GPIO.BCM) # Zet waarschuwingen uit. GPIO.setwarnings(False) # Zet de GPIO pin als ingang. GPIO.setup(pir_sensor, GPIO.IN) try: while True: # Wacht 1/4 van een seconde sleep(.250) # Lees de status van de GPIO pin uit. if GPIO.input(pir_sensor): # Pin is HOOG (beweging gedetecteerd). print "Beweging gedetecteerd!, GPIO status:", GPIO.input(pir_sensor) else: print "GEEN beweging, GPIO status:", GPIO.input(pir_sensor) except KeyboardInterrupt: # GPIO netjes afsluiten GPIO.cleanup() |
En start dit bestand met het commando: sudo python pir.py
Ps. Druk op CTRL+C om het script te stoppen!
Output
1 2 3 4 5 6 7 8 9 |
GEEN beweging, GPIO status: 0 GEEN beweging, GPIO status: 0 GEEN beweging, GPIO status: 0 Beweging gedetecteerd!, GPIO status: 1 Beweging gedetecteerd!, GPIO status: 1 Beweging gedetecteerd!, GPIO status: 1 GEEN beweging, GPIO status: 0 GEEN beweging, GPIO status: 0 GEEN beweging, GPIO status: 0 |
Voorbeeld met buzzer
Bron: pimylifeup.com
Sluit het volgende aan volgens onderstaand schema:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
#!/usr/bin/env python """ Detects motion and outputs a sound via a piezo buzzer. """ import RPi.GPIO as GPIO import time pir_sensor = 11 piezo = 7 GPIO.setmode(GPIO.BOARD) GPIO.setup(piezo,GPIO.OUT) GPIO.setup(pir_sensor, GPIO.IN) current_state = 0 try: while True: time.sleep(0.1) current_state = GPIO.input(pir_sensor) if current_state == 1: print("GPIO pin %s is %s" % (pir_sensor, current_state)) GPIO.output(piezo,True) time.sleep(1) GPIO.output(piezo,False) time.sleep(5) except KeyboardInterrupt: pass finally: GPIO.cleanup() |
En start dit bestand met het commando: sudo python pirnuzzer.py
Ps. Druk op CTRL+C om het script te stoppen!
Bronnen:
community.wolfram.com
raspberrypi-spy.co.uk
classthink.com
Schema
Afmetingen
Teardown
Datasheet
Fritzing
Downloads
GEEN GEGEVENS