Een handige sensor die je kunt gebruiken op een Raspberry Pi is een bewegingssensor, door beweging te detecteren kun je met behulp van een python-script allerlei acties uitvoeren. In dit stappenplan maken we gebruik van een goedkope HC-SR501 bewegingssensor, deze sensor is op verschillende websites te koop voor slechts 2 á 3 euro. De sensor heeft een bereik van maximaal 7 meter.
Componenten voor dit project
De gebruikte componenten voor dit stappenplan, klik op een component voor meer informatie.
• HC-SR501 Infrarood PIR bewegingssensor (€2,00)
• 3 xDupont verbindingskabel (female/female)
Raspberry Pi 3 model B
Raspbian Jessie (2016-05-27 kernel 4.4)
Aansluitschema Raspberry Pi
Sluit de bewegingssensor aan op je Raspberry Pi volgens onderstaand schema. je kunt hierbij gebruik maken van female/female dupont kabeltjes.
HC-SR501 Pin | Raspberry Pi Pin | Raspberry Pi Functie |
---|---|---|
GND | 6 | GND |
VCC | 2 | 5V |
OUTPUT | 26 | GPIO 7 |
HC-SR501 python script
Om de bewegingssensor aan te kunnen sturen maken we gebruik van een python script en de standaard GPIO library. Belangrijk in het script is dat de bewegingsmelder enkele seconden de tijd wordt gegeven om te kunnen opstarten in het script gebruiken we daar 2 seconden voor.
Als er beweging wordt gedetecteerd dan verschijnt er op het scherm een melding met daarbij de tijd waarop de detectie heeft plaatsgevonden.
#https://raspberrytips.nl import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BOARD) PIN = 26 GPIO.setup(PIN, GPIO.IN) print "Start sensor..." time.sleep(2) print "Sensor activated..." while True: if GPIO.input(PIN): print "Movement detected! " + (time.strftime("%H:%M:%S")) time.sleep(2) time.sleep(0.1)
Download het script met het commando:
wget https://raspberrytips.nl/files/hcsr501.py
Activeer het script:
python hcsr501.py
De bewegingssensor afstellen
De HC-SR501 geeft je mogelijkheid om enkele hardware-matige instellingen aan te passen.
Gevoeligheid: Je kunt de afstand waarover de sensor werkt aanpassen (3m tot 7m).
Output timing: Deze instelling regelt hoe lang de uitgang hoog wordt gehouden na de sensor wordt geactiveerd (5 seconden tot 300 seconden).
Jumper Auto reset: De sensor blijft geactiveerd totdat de beweging stopt.
Jumper Geen reset: De sensor blijft de ingestelde ‘Output timing’ periode geactiveerd bij de detectie van een beweging.
Hoe kun je de output loggen in een log bestand?
Met de onderstaande code kan je van de data de csv file maken.
Die kan je inlezen in excel.
En zo de data in een bestand zetten.
import os
import time
from time import sleep
from datetime import datetime
file = open(“/home/pi/data_log.csv”, “a”)
i=0
if os.stat(“/home/pi/data_log.csv”).st_size == 0:
file.write(“Time,Sensor1,Sensor2,Sensor3,Sensor4,Sensor5\n”)
while True:
i=i+1
now = datetime.now()
file.write(str(now)+”,”+str(i)+”,”+str(-i)+”,”+str(i-10)+”,”+str(i+5)+”,”+str(i*i)+”\n”)
file.flush()
time.sleep(5)file.close()