Geplaatst op Geef een reactie

HC-SR501 PIR bewegingssensor met Raspberry Pi gebruiken

In deze tutorial gebruiken we een PIR-bewegingssensor om aanwezigheid te detecteren. Met een Python-script controleren we of er beweging gedetecteerd wordt. Wanneer je deze tutorial hebt voltooid, kan je de HC-SR501-sensor via de GPIO-pinnen op uw Pi aansluiten. Je hebt ook de basiscode om het outputsignaal van de sensor om te zetten naar bruikbare informatie.

Wat je nodig hebt voor deze tutorial

Allereerst moet je een Raspberry Pi 3 hebben die op de nieuwste versie van Raspbian draait. Deze versie bevat “Thonny”. We zullen deze gebruiksvriendelijke IDE gebruiken om onze Python-code te schrijven. Als je niet bekend bent met Python of met Thonny en de GPIO-pinnen, raad ik je aan onze volgende tutorials te bekijken “Eerste Python programma op de Raspberry Pi” en “Starten met GPIO op de Raspberry Pi” voor een snelle introductie.

Vervolgens heb je wat extra hardware nodig:

    • een breadboard (we gebruiken een breadboard van 400 punten)
    • een HC-SR501 PIR bewegingssensor
    • Dupont jumper kabels
    • een T-cobbler (optioneel)
    • een 40 pins GPIO-kabel (optioneel)

Raspberry Pi GPIO discovery kit

 

Indien je dingen zou missen, aarzel dan niet om onze shop te bezoeken. We hebben een goed bedachte kit die alle nodige componenten bevat .

 

De HC-SR501 PIR bewegingssensorsensor

PIR staat voor passieve infrarooddetectie. De sensor meet variaties van infraroodlicht. Omdat we allen infrarood licht afgeven, zal de sensor infraroodvariaties detecteren wanneer we voor de sensor bewegen. Wanneer dit gebeurt, zal de sensor de output hoog zetten. Aangezien het hoge outputsignaal 3,3 V is, kan het outputsignaal rechtstreeks worden aangesloten op een GPIO-invoerpin van de Raspberry Pi.

De module kan als volgt worden geconfigureerd:

HC-SR501 PIR bewegingssensorsensor
  • Jumper set : de jumper wordt gebruikt om de triggermodus te regelen. Wanneer de jumperkap in de “L” -positie staat, wordt de modus ingesteld als “niet-herhaalde trigger-modus”, wat betekent dat wanneer de module een hoge spanning uitvoert vanwege menselijke beweging, deze niet opnieuw zal worden geactiveerd, zelfs als een andere menselijke beweging wordt uitgevoerd en gedetecteerd. Wanneer de jumperkap zich in de “H” -positie bevindt, wordt de module ingesteld als “herhaalde trigger-modus”, wat betekent dat de vertragingstijd opnieuw wordt berekend wanneer een tweede menselijke beweging wordt gedetecteerd tijdens de vertragingstijd.
  • Sensitivity adjust: om het bereik aan te passen
  • Time Delay Adjust

Het hardware gedeelte opzetten

Voordat je begint met het aansluiten van kabels op de GPIO-pinnen van je Raspberry Pi, dien je ervoor te zorgen dat je de Pi goed afsluit en de voedingskabel van het bordje hebt verwijderd!

HC-SR501 PIR bewegingssensorsensor op Raspberry Pi aansluiten
  • sluit de 40-pins kabel op de GPIO-pinnen van je Pi aan (verwijder indien nodig eerst het deksel van je Pi)
  • sluit de T-cobbler op het breadboard aan zoals wordt weergegeven in de afbeelding hierboven of hieronder
  • sluit het andere uiteinde van de 40-pins kabel aan op de T-cobbler
  • verbind de VCC pin van de sensor met de 5V pin (rode kabel)
  • verbind de OUTPUT pin van de sensor met pin 23 (gele kabel)
  • verbind de GND van de sensor met een GPIO GND pin (zwarte kabel)
HC-SR501 PIR bewegingssensorsensor op Raspberry Pi aansluiten

De code schrijven

Het doel is om hier een heel eenvoudig Python-programma te schrijven dat ons in staat stelt om bewegingen te detecteren en deze info op het scherm weer te geven. Om de code te schrijven, gebruiken we de Thonny IDE. Je kan Thonny vinden in het applicatiemenu van je Raspberry Pi.

Schrijf of plak de volgende code in de IDE:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
PIR_PIN = 23
GPIO.setup(PIR_PIN, GPIO.IN)

print('Starting up the PIR Module (click on STOP to exit)')
time.sleep(1)
print ('Ready')

while True:
if GPIO.input(PIR_PIN):
print('Motion Detected')
time.sleep(1)

Wat verklaringen over de code:

  • GPIO.setmode (GPIO.BCM): De GPIO.BCM-optie betekent dat we naar de pinnen verwijzen via het “Broadcom SOC-kanaal” -nummer, dit zijn de cijfers na “GPIO”
  • GPIO.setwarnings (False): we gebruiken deze coderegel om waarschuwingsberichten te vermijden.
  • GPIO.setup(PIR_PIN,GPIO.IN): We definiëren de PR-pin (= 23) als een invoerpin
  • time.sleep(1) We wachten 1 seconde zodat de sensor tot rust kan komen
  • while True: is een oneindige loop (tot het programma gestopt wordt)
  • Wees voorzichtig, Python is witruimte gevoelig. Verwijder de “tab” niet voor de regel die na de “while” opdracht volgt
  • if GPIO.input(PIR_PIN): als de PIR-pin hoog staat (= sensor heeft beweging gedetecteerd)
  • time.sleep(1) We wachten 1 seconde vooraleer we verder gaan met de loop
HC-SR501 PIR bewegingssensorsensor Python script

Als je klaar bent met de code, klikt op de Start knop. Je ziet op het scherm een boodschap verschijnen wanneer de sensor beweging detecteert.

Om het programma te stoppen, klikt je gewoon op de STOP knop.

Gefeliciteerd! Met deze opstelling kan je nu bewegingsdetectie in je code integreren. Je kan het script verder gebruiken om het resultaat te verwerken in een toepassing waarin je menselijke aanwezigheid wil controleren. Veel plezier ermee!

Deel een reactie

Your email address will not be published. Required fields are marked *

Abonneer u op onze nieuwsbrief

Door u te abonneren, gaat u akkoord met ons privacy beleid.