Raspberry Pi - Deursensor - LED

Deze tutorial laat u zien hoe u de Raspberry Pi en een deursensor gebruikt om een LED te besturen. We behandelen twee verschillende toepassingen:

Toepassing 1 - De LED gaat aan wanneer de deur open is en uit wanneer de deur gesloten is. De LED-status is gesynchroniseerd met de status van de deursensor. In detail:

Toepassing 2 - De LED-status wordt omgeschakeld elke keer dat de deur wordt geopend. Meer specifiek:

Hardware Benodigd

1×Raspberry Pi 5
1×Deursensor
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden
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 LED en Deursensor

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

Bedradingsschema

Raspberry Pi Deursensor LED bedradingsschema

This image is created using Fritzing. Click to enlarge image

Toepassing 1 - De LED-status is gesynchroniseerd met de deursensorstatus

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi-compatibel besturingssysteem geïnstalleerd heeft op uw Pi.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi internettoegang heeft als u libraries moet installeren.
  • Als dit de eerste keer is dat u een Raspberry Pi gebruikt, zie hoe u de Raspberry Pi installeert
  • Verbind uw pc via SSH met de Raspberry Pi met behulp van de ingebouwde SSH-client op Linux/macOS of PuTTY op Windows. Zie hoe u via SSH verbinding maakt met Raspberry Pi.
  • Controleer of de RPi.GPIO library 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_led.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-led import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin numbers for the door sensor and the LED DOOR_SENSOR_PIN = 18 LED_PIN = 20 # Setup the GPIO pin for the door sensor as an input with pull-up resistor GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Setup the GPIO pin for the LED as an output GPIO.setup(LED_PIN, GPIO.OUT) 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") GPIO.output(LED_PIN, GPIO.HIGH) # Turn on the LED else: print("Door is CLOSED") GPIO.output(LED_PIN, GPIO.LOW) # Turn off the LED 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 Python-script uit door het volgende commando in de terminal te gebruiken:
python3 door_sensor_led.py
  • Open en sluit de deur.
  • Bekijk de veranderingen in de LED-status. U zult zien dat de LED-status synchroon loopt met de deursensorstatus.

De script draait 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 LED aan/uit (toggle)

Snelle Stappen

  • Maak een Python-scriptbestand met de naam door_sensor_toggle_led.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-led import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin numbers for the door sensor and the LED DOOR_SENSOR_PIN = 18 LED_PIN = 20 # Setup the GPIO pin for the door sensor as an input with pull-up resistor GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Setup the GPIO pin for the LED as an output GPIO.setup(LED_PIN, GPIO.OUT) # Variable to keep track of the previous door state prev_door_state = GPIO.input(DOOR_SENSOR_PIN) # Variable to keep track of the LED state led_state = False # False for LED off, True for LED on 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") led_state = not led_state # Toggle the LED state GPIO.output(LED_PIN, led_state) # Update the LED state # Update the previous door state 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 Python-script uit door het volgende commando in de terminal te gebruiken:
python3 door_sensor_toggle_led.py

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

  • Open en sluit de deur meerdere keren.
  • Bekijk de veranderingen in de LED-status. U zult zien dat de LED-status telkens wordt omgeschakeld als de deur open gaat.

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!