Geplaatst op Geef een reactie

HC-SR501 PIR bewegingssensor met Raspberry Pi gebruiken

raspberry pi HC-SR501 PIR motion sensor

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 je Pi aansluiten. Je hebt ook de basiscode om het outputsignaal van de sensor om te zetten naar bruikbare informatie.

Je Raspberry Pi voorbereiden

Allereerst dien je een Raspberry Pi te hebben die op de nieuwste versie van Raspberry Pi OS 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 “Hoe je eerste Python programma op de Raspberry Pi schrijven” en “Hoe de GPIO pinnen van de Raspberry Pi gebruiken” voor een snelle introductie.

De extra hardware voorbereiden

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)

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

Maak kennis met 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
  • Time Delay Adjust : Als er beweging wordt gedetecteerd, schakelt het uitgangssignaal van LAAG naar HOOG. Deze HOGE positie blijft nog enige tijd staan. Hier kan je deze tijd aanpassen. Draai de potentiometer tegen de klok in om de tijd te verkorten. Voor ons eenvoudig Python-script (zie hieronder), beperken we best de vertragingstijd tot een minimum.
  • 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 HOOG geeft vanwege beweging, deze niet opnieuw zal worden geactiveerd, zelfs als een andere 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 beweging wordt gedetecteerd tijdens de vertragingstijd. Voor elke nieuwe beweging tijdens de vertragingstijd begint dus de vertragingsteller weer vanaf nul te tellen. Als de tijdvertraging op het minimum is ingesteld, maakt de positie van de jumper eigenlijk geen verschil.
  • Sensitivity adjust: om het bereik aan te passen

Stel de hardware op

Let op! Voordat je begint met het aansluiten van draden 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!

raspberry pi HC-SR501 motion sensor
  • 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)
Raspberry Pi HC-SR501 motion sensor

Schrijf de code

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

Voer het script uit

Vooraleer je het programma laat uitvoeren, dien je het een naam te geven en op te slaan.

HC-SR501 PIR bewegingssensorsensor Python script

Eens opgeslagen, klik je op de Start knop. Je ziet op het scherm een boodschap verschijnen wanneer de sensor beweging detecteert.

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

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

Troubleshooting

Als het bericht “Motion Detected” zich continu herhaalt, zelfs als er geen beweging te detecteren valt:

  • Controleer je bedrading.
  • Controleer of je de “Time Delay” potentiometer op een minimale tijd hebt ingesteld (tegen de klok in draaien tot aan de aanslag). Als dit niet het geval is, zal de sensor een hele tijd HOOG blijven. En gedurende al die tijd, zal het script elke seconde “Beweging gedetecteerd” melden. Meer informatie: zie stap “Maak kennis met de HC-SR501 PIR-bewegingssensor” hierboven.

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 4 / 5. Aantal stemmen: 5

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 4 / 5. Aantal stemmen: 5

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

Jammer dat deze tutorial voor jou niet nuttig was!

Laten we deze tutorial verbeteren!

Hoe kunnen we deze tutorial verbeteren?

ontdek hier meer producten

Blijf als eerste op de hoogte van onze nieuwste tutorials en producten door u in te schrijven op onze nieuwsbrief

freva.com respecteert uw privacy. Lees ons privacybeleid over hoe wij omgaan met uw persoonlijke gegevens.