Raspberry Pi - Türsensor - Relais

Diese Anleitung zeigt Ihnen, wie Sie den Raspberry Pi und einen Türsensor zur Steuerung eines Relais verwenden. Durch die Verbindung des Relais mit einem Magnetschloss, einer Glühbirne, einem LED-Strip, Motor oder Stellantrieb... können wir einen Türsensor verwenden, um diese zu steuern. Wir werden zwei verschiedene Anwendungen lernen:

Anwendung 1 - Das Relais wird aktiviert, wenn die Tür geöffnet ist, und das Relais wird deaktiviert, wenn die Tür geschlossen ist. Der Relaiszustand ist mit dem Türsensorzustand synchronisiert. Im Detail:

Anwendung 2 - Der Relaiszustand wird jedes Mal umgeschaltet, wenn die Tür geöffnet wird. Genauer gesagt:

Hardware Erforderlich

1×Raspberry Pi 5
1×Türsensor
1×Relais
1×Breadboard (Steckplatine)
1×Jumper Wires (Überbrückungsdrähte)
1×(Optional) Magnetschloss
1×(Optional) 12V Netzteil
1×(Optional) DC Strombuchse
1×(Empfohlen) Schraubklemmenblock-Shield für Raspberry Pi
1×(Empfohlen) Raspberry Pi Prototyping-Grundplatte & Breadboard-Kit
1×(Empfohlen) HDMI-Touchscreen-Monitor für Raspberry Pi

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über Relais und Türsensor

Wenn Sie mit Relais und Türsensor (einschließlich Pinbelegung, Funktionsweise und Programmierung) nicht vertraut sind, können Ihnen die folgenden Tutorials helfen:

Schaltplan

Raspberry Pi Türsensor Relais Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Raspberry Pi Schraubklemmenblock-Shield

Anwendung 1 - Der Relaiszustand ist mit dem Türsensorzustand synchronisiert

Schnelle Schritte

  • Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
  • Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, wenn Sie einige Bibliotheken installieren müssen.
  • Wenn Sie zum ersten Mal einen Raspberry Pi verwenden, sehen Sie sich an, wie man den Raspberry Pi einrichtet
  • Verbinden Sie Ihren PC über SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe wie Sie Ihren PC über SSH mit dem Raspberry Pi verbinden.
  • Stellen Sie sicher, dass Sie die RPi.GPIO-Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Erstellen Sie eine Python-Skriptdatei door_sensor_relay.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/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()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
python3 door_sensor_relay.py
  • Öffnen und schließen Sie die Tür
  • Überprüfen Sie die Änderung im Zustand des Relais. Sie werden sehen, dass der Relaiszustand mit dem Türsensorzustand synchronisiert ist.

Das Skript läuft in einer Endlosschleife kontinuierlich weiter, bis Sie Strg + C im Terminal drücken.

Code-Erklärung

Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!

Anwendung 2 - Türsensor schaltet Relais um

Schnelle Schritte

  • Erstellen Sie eine Python-Skriptdatei door_toggle_relay.py und fügen Sie den folgenden Code hinzu:
# Dieser Raspberry Pi Code wurde von newbiely.de entwickelt # Dieser Raspberry Pi Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. # Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: # https://newbiely.de/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()
  • Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
python3 door_toggle_relay.py
  • Öffnen und schließen Sie die Tür mehrmals.
  • Überprüfen Sie die Änderung im Zustand des Relais. Sie werden bemerken, dass das Relais ein- oder ausschaltet, jedes Mal wenn Sie die Tür öffnen.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Kommentare

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!