Raspberry Pi - Deursensor - Relay

Deze tutorial legt uit hoe u de Raspberry Pi en een deursensor gebruikt om een relay te besturen. Door de relay aan te sluiten op een solenoïde slot, lamp, LED strip, motor of actuator..., kunnen we deze apparaten bedienen met een deursensor. We leren twee verschillende toepassingen:

Toepassing 1 - De relay wordt geactiveerd wanneer de deur open is en uitgeschakeld wanneer de deur gesloten is. De status van de relay wordt gesynchroniseerd met de status van de deursensor. In detail:

Toepassing 2 - De relay wordt bij elke keer dat de deur opent omgeschakeld (getoggeld). Meer specifiek:

Hardware Benodigdheden

1×Raspberry Pi 5
1×Deursensor
1×Relais
1×Breadboard (experimenteerprint)
1×Jumper wires (jumper draden)
1×(optioneel) Solenoïde slot
1×(optioneel) 12V voedingsadapter
1×(optioneel) DC power jack
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 Relay en Deursensor

Als u niet bekend bent met relay en deursensor (inclusief pinout, werking en programmeren), kunnen de volgende tutorials u helpen:

Bekabelingsdiagram

Raspberry Pi Deursensor relay bekabelingsdiagram

This image is created using Fritzing. Click to enlarge image

Toepassing 1 - De relay status synchroniseert met deursensor status

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi hebt geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw PC.
  • Zorg dat uw Raspberry Pi verbonden is met het internet als u bibliotheken moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie dan hoe u de Raspberry Pi instelt
  • Verbind uw PC met de Raspberry Pi via SSH met de ingebouwde SSH client op Linux en macOS, of PuTTY op Windows. Zie hoe u uw PC via SSH verbindt met Raspberry Pi.
  • Zorg dat u de RPi.GPIO library geïnstalleerd hebt. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Maak een Python scriptbestand door_sensor_relay.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-relay import RPi.GPIO as GPIO # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the relay is connected RELAY_PIN = 20 # Define the GPIO pin number to which the door sensor is connected DOOR_SENSOR_PIN = 18 # Set up the GPIO pins GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Input with pull-up resistor GPIO.setup(RELAY_PIN, GPIO.OUT) # Output try: while True: door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state == GPIO.HIGH: print("The door is open") GPIO.output(RELAY_PIN, GPIO.HIGH) # Turn the relay on else: print("The door is closed") GPIO.output(RELAY_PIN, GPIO.LOW) # Turn the relay off except KeyboardInterrupt: GPIO.output(RELAY_PIN, GPIO.LOW) # Turn off the relay GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit met het volgende commando in de terminal:
python3 door_sensor_relay.py
  • Open en sluit de deur.
  • Controleer de verandering in de status van de relay. U zult zien dat de relay status synchroniseert met de status van de deursensor.

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

Code Uitleg

Bekijk de regel-voor-regel uitleg in de comments van de broncode!

Toepassing 2 - Deursensor schakelt Relay aan/uit (toggle)

Snelle Stappen

  • Maak een Python scriptbestand door_toggle_relay.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-relay import RPi.GPIO as GPIO import time # Constants won't change DOOR_SENSOR_PIN = 18 # The number of the door sensor pin RELAY_PIN = 20 # The number of the relay pin # Variables will change relay_state = GPIO.LOW # The current state of the relay prev_door_state = GPIO.LOW # The previous state of the door sensor door_state = GPIO.LOW # The current state of the door sensor # Set up GPIO GPIO.setmode(GPIO.BCM) # Use BCM GPIO numbering GPIO.setup(RELAY_PIN, GPIO.OUT) # Initialize the relay pin as an output GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Initialize the door sensor pin as a pull-up input try: while True: # Read the state of the door sensor value prev_door_state = door_state # Save the last state door_state = GPIO.input(DOOR_SENSOR_PIN) # Read new state if prev_door_state == GPIO.LOW and door_state == GPIO.HIGH: time.sleep(0.1) # 100 milliseconds debounce time print("The door is closed") # Toggle the state of the relay if relay_state == GPIO.LOW: relay_state = GPIO.HIGH else: relay_state = GPIO.LOW # Control relay according to the toggled state GPIO.output(RELAY_PIN, relay_state) except KeyboardInterrupt: # Clean up GPIO on program exit GPIO.cleanup()
  • Sla het bestand op en voer het Python script uit met het volgende commando in de terminal:
python3 door_toggle_relay.py
  • Open en sluit de deur meerdere keren.
  • Bekijk de verandering in de status van de relay. U ziet dat de relay één keer aan of uit gaat telkens wanneer u de deur opent.

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!