ESP32 - Bewegungssensor

Dieses Tutorial zeigt Ihnen, wie Sie die Anwesenheit von Menschen mit einem HC-SR501-Bewegungssensor und einem ESP32 unter MicroPython erkennen. Im Einzelnen lernen wir:

ESP32 MicroPython Bewegungssensor

Überblick über HC-SR501 Motion Sensor

HC-SR501 Bewegungssensor

Der HC-SR501-PIR-Sensor ist ein Bewegungsmelder, der die Bewegung von Menschen oder Tieren erkennen kann. Er wird häufig in verschiedenen Anwendungen eingesetzt, zum Beispiel:

  • Automatische Beleuchtung: Licht bei Bewegung ein- und ausschalten.
  • Türsteuerung: Türen automatisch öffnen und schließen.
  • *Rolltreppensteuerung: Rolltreppen aktivieren oder deaktivieren.
  • Sicherheitssysteme: Eindringlinge erkennen.

Pinbelegung

Der HC-SR501-Bewegungssensor hat drei Pins.

  • GND-Pin: Mit Masse (0V) verbinden.
  • VCC-Pin: Mit der Stromversorgung (5V) verbinden.
  • OUTPUT-Pin: Gibt ein LOW-Signal aus, wenn keine Bewegung erkannt wird, und ein HIGH-Signal, wenn Bewegung erkannt wird. Verbinden Sie diesen Pin mit einem Eingangspin des ESP32.

Der HC-SR501-Sensor verfügt über einen Jumper und zwei Potentiometer, mit denen Sie seine Einstellungen anpassen können. Weitere Details finden Sie unter Erweiterte Nutzung des Bewegungssensors.

HC-SR501 Bewegungssensor Pinbelegung

Funktionsweise

Der HC-SR501-Sensor erkennt Bewegung, indem er Änderungen der Infrarotstrahlung wahrnimmt. Damit der Sensor ein Objekt erkennen kann, müssen zwei Bedingungen erfüllt sein:

  • Das Objekt muss sich bewegen.
  • Das Objekt muss Infrarotstrahlung aussenden.

Daher gilt:

  • Objekte, die sich bewegen, aber keine Infrarotstrahlung aussenden (wie manches Spielzeug), werden nicht erkannt.
  • Objekte, die Infrarotstrahlung aussenden, sich aber nicht bewegen (wie eine stillstehende Person), werden nicht erkannt.

Da Menschen und Tiere Infrarotstrahlung aussenden, kann der Sensor ihre Bewegungen erkennen.

Verhalten des Ausgangspins:

  • Keine Bewegung: Wenn sich keine Person und kein Tier im Erfassungsbereich des Sensors befindet, bleibt der OUTPUT-Pin LOW.
  • Bewegung erkannt: Wenn eine Person oder ein Tier den Erfassungsbereich betritt, wechselt der OUTPUT-Pin von LOW auf HIGH.
  • Bewegung beendet: Wenn die Person oder das Tier den Erfassungsbereich verlässt, wechselt der OUTPUT-Pin von HIGH zurück auf LOW.

Das Video zeigt, wie der Bewegungssensor grundsätzlich funktioniert. In der Praxis kann das Verhalten je nach Einstellungen leicht abweichen, wie im Abschnitt zur erweiterten Nutzung erklärt.

ESP32 - HC-SR501-Bewegungssensor

Wenn Sie einen Pin des ESP32 als digitalen Eingang konfigurieren, kann er erkennen, ob sich das angeschlossene Objekt im Zustand LOW oder HIGH befindet.

Verbinden Sie den Pin des ESP32 mit dem OUTPUT-Pin des HC-SR501-Sensors. Programmieren Sie dann den ESP32 so, dass er den Wert des OUTPUT-Pins überwacht und Bewegung erkennt.

Verdrahtungsdiagramm

  • So verbinden Sie ESP32 und Bewegungssensor über ein Breadboard (Stromversorgung über USB-Kabel)
ESP32 MicroPython Bewegungssensor Schaltplan

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

  • So verbinden Sie ESP32 und Bewegungssensor über ein Breadboard (Stromversorgung über Vin-Pin)
ESP32 MicroPython Bewegungssensor Schaltplan

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

So verbinden Sie ESP32 und Bewegungssensor
So verdrahten Sie ESP32 und Bewegungssensor

Grundeinstellung

ZeitverzögerungsreglerVollständig gegen den Uhrzeigersinn drehen.
ErfassungsbereichsreglerVollständig im Uhrzeigersinn drehen.
Wiederholungs-Trigger-WahlschalterJumper wie im Bild gezeigt setzen.
Bewegungssensor Grundeinstellung

So programmieren Sie den Bewegungssensor

  • Konfigurieren Sie einen ESP32-Pin als digitalen Eingang.
HC_SR501 = Pin(SENSOR_PIN, Pin.IN)
  • Prüfen Sie den Zustand des OUTPUT-Pins des Sensors.
motion_state = HC_SR501.value()

ESP32 MicroPython-Code

/* * Dieser ESP32 MicroPython Code wurde von newbiely.de entwickelt * Dieser ESP32 MicroPython 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/esp32-micropython/esp32-micropython-motion-sensor */ from machine import Pin import utime # Constants for pin and state SENSOR_PIN = 19 # The ESP32 pin GPIO19 connected to the HC-SR501 motion sensor # Setup the motion sensor pin HC_SR501 = Pin(SENSOR_PIN, Pin.IN) # Initialize state variables motion_state = 0 prev_motion_state = 0 # Main loop while True: prev_motion_state = motion_state # Store the previous state motion_state = HC_SR501.value() # Read the current state from the motion sensor # Check for motion detection (transition from LOW to HIGH) if prev_motion_state == 0 and motion_state == 1: print("Motion detected!") # Optional: Additional actions when motion is detected # Check for motion cessation (transition from HIGH to LOW) elif prev_motion_state == 1 and motion_state == 0: print("Motion stopped!") # Optional: Additional actions when motion stops utime.sleep(0.1) # Sleep for 100 milliseconds

Schnelle Schritte

So richten Sie Ihren MicroPython-Code auf dem ESP32 mit der Thonny IDE ein und führen ihn aus:

  • Stellen Sie sicher, dass die Thonny IDE auf Ihrem Computer installiert ist.
  • Vergewissern Sie sich, dass die MicroPython-Firmware auf Ihrem ESP32-Board installiert ist.
  • Wenn Sie zum ersten Mal einen ESP32 mit MicroPython verwenden, lesen Sie die Anleitung ESP32 MicroPython Erste Schritte mit Schritt-für-Schritt-Anweisungen.
  • Verbinden Sie Ihr ESP32-Board wie im Schaltplan gezeigt mit dem HC-SR501-Bewegungssensor.
  • Verbinden Sie Ihr ESP32-Board über ein USB-Kabel mit Ihrem Computer.
  • Öffnen Sie die Thonny IDE auf Ihrem Computer.
  • Gehen Sie in der Thonny IDE zu Tools Options.
  • Wählen Sie im Tab Interpreter aus dem Dropdown-Menü MicroPython (ESP32) aus.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, eventuell müssen Sie ihn aber manuell auswählen (z. B. COM12 unter Windows oder /dev/ttyACM0 unter Linux).
  • Kopieren Sie den bereitgestellten MicroPython-Code und fügen Sie ihn in den Editor von Thonny ein.
  • Speichern Sie den Code auf Ihrem ESP32:
    • Klicken Sie auf die Schaltfläche Save oder drücken Sie Ctrl+S.
    • Wählen Sie im Speicherdialog MicroPython device.
    • Nennen Sie die Datei main.py.
  • Klicken Sie auf die grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Bewegen Sie Ihre Hand vor dem Sensor.
  • Sehen Sie sich die Meldung in der Shell unten in der Thonny IDE an, um die Ausgabe zu prüfen.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot Motion detected! Motion stopped!
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

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.

Verwandte Tutorials

※ 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!