Raspberry Pi - Deursensor

De deursensor is een veelvoorkomende functie binnen beveiligingssystemen. Hij wordt gebruikt om ingangen te detecteren en te monitoren, zoals deuren en ramen. Dit apparaat wordt ook wel contactsensor, ingangssensor of raamsensor genoemd.

In deze tutorial leert u hoe u een Raspberry Pi gebruikt met een deursensor. We behandelen in detail:

Hardware Vereist

1×Raspberry Pi 5
1×Deursensor
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Deursensor

De Pinout van de Deursensor

Een deursensor bestaat uit twee delen:

  • Een reed switch met twee pinnen
  • Een magneet
Deursensor pinout

Net zoals bij een gewone schakelaar/knop hoeft u niet te onderscheiden welke pin van de reed switch welke is.

Hoe Werkt Het

De magneet wordt bevestigd aan de deur of het raam — het beweegbare onderdeel — en de reed switch wordt gemonteerd op het kozijn, het vaste onderdeel. Wanneer de deur gesloten is, zijn beide onderdelen in contact:

  • Als de magneet dicht bij de reed switch is, is het reed switch-circuit gesloten
  • Als de magneet ver weg is van de reed switch, is het reed switch-circuit open
Deursensor werking pinout

※ Notiz:

De reed switch geeft geen LOW- of HIGH-waarden af op zijn pinnen. Deze is óf gesloten óf open. De waarde van de pin die aan de Raspberry Pi is aangesloten kan LOW, HIGH of een zwevende (onvoorspelbare) waarde zijn. Om de zwevende waarde te voorkomen moeten we een pull-up of pull-down weerstand gebruiken op de Raspberry Pi-pin.

Als we één pin van de reed switch aansluiten op GND en de andere pin aansluiten op een Raspberry Pi input-pin met een pull-up weerstand (intern of extern):

  • Als de magneet dicht bij de reed switch is, is de waarde op de Raspberry Pi input-pin LOW
  • Als de magneet ver van de reed switch is, is de waarde op de Raspberry Pi input-pin HIGH

Om de status van de deur te bepalen hoeven we alleen maar de staat van de Raspberry Pi input-pin te controleren:

  • Is de staat LOW, dan is de deur gesloten
  • Is de staat HIGH, dan is de deur open

Om deur-openings/-sluitingsgebeurtenissen te detecteren kunnen we de statuswijziging van de Raspberry Pi input-pin monitoren:

  • Gaat de status van LOW naar HIGH, dan is een deur-opening gedetecteerd
  • Gaat de status van HIGH naar LOW, dan is een deur-sluiting gedetecteerd

Schema voor Bekabeling

Raspberry Pi Deursensor bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe Te Programmeren Voor Deursensor

  • Initialiseer de Raspberry Pi pin als digitale ingang met de GPIO.setup() functie. Bijvoorbeeld, de volgende code initialiseert pin 13 als ingang:
GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  • Gebruik de GPIO.input() functie om de status van de Raspberry Pi pin te lezen.
door_state = GPIO.input(DOOR_SENSOR_PIN)

Raspberry Pi Code – Controleer Deur Open- en Dicht Status

Snelle Stappen

  • Zorg dat u Raspbian of een ander compatibel besturingssysteem geïnstalleerd heeft op uw Raspberry Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbinding met het internet heeft als u libraries moet installeren.
  • Als u voor het eerst een Raspberry Pi gebruikt, bekijk dan onze Raspberry Pi Aan de slag gids om eerst de basis te leren.
  • Verbind uw pc via SSH met de Raspberry Pi, gebruikmakend van de ingebouwde SSH-client op Linux en macOS, of PuTTY op Windows. Zie onze gids hoe verbind ik mijn pc met Raspberry Pi via SSH.
  • Zorg dat de RPi.GPIO bibliotheek geïnstalleerd is. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand aan met de naam door_sensor.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-door-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the sensor is connected DOOR_SENSOR_PIN = 16 # Setup the GPIO pin as an input GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state == GPIO.HIGH: print("Door is OPEN") else: print("Door is CLOSED") time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Sla het bestand op en voer het script uit via de terminal met het volgende commando:
python3 door_sensor.py
  • Breng de magneet dicht bij de reed switch en beweeg deze daarna weg.
  • Bekijk het resultaat in de terminal.
PuTTY - Raspberry Pi
Door is OPEN Door is OPEN Door is OPEN Door is CLOSED Door is CLOSED Door is CLOSED Door is CLOSED Door is CLOSED Door is OPEN Door is OPEN

Het script draait in een oneindige lus totdat u Ctrl + C indrukt in de terminal.

U zult zien dat de code continu de huidige status van de deur print. Als u alleen wilt dat de deur status geprint wordt bij verandering, bekijk dan de volgende sectie.

Raspberry Pi Code – Detecteer Deur-openings- en Deur-sluitingsgebeurtenissen

  • Maak een Python scriptbestand aan met de naam door_sensor_events.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-door-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the sensor is connected DOOR_SENSOR_PIN = 17 # Setup the GPIO pin as an input GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Variable to store the previous state of the door sensor prev_door_state = GPIO.HIGH try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state != prev_door_state: if door_state == GPIO.HIGH: print("Door is OPEN") else: print("Door is CLOSED") prev_door_state = door_state time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Sla het bestand op en voer het script uit via de terminal met het volgende commando:
python3 door_sensor_events.py
  • Breng de magneet dicht bij de reed switch en beweeg deze daarna weg.
  • Bekijk het resultaat in de terminal.
PuTTY - Raspberry Pi
Door is OPEN Door is CLOSED
  • U zult zien dat de status van de deur alleen wordt geprint wanneer de status verandert.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!