ESP32 - Türsensor

Dieses Tutorial zeigt Ihnen, wie Sie den Türsensor mit dem ESP32 und MicroPython verwenden, um zu prüfen, ob Ihre Tür oder Ihr Fenster offen oder geschlossen ist. Im Einzelnen lernen wir:

ESP32 MicroPython Türsensor

Erforderliche Hardware

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow
1×(Alternativ) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide
1×(Alternativ) ESP32 Uno-form board
1×(Alternativ) ESP32 S3 Uno-form board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Türsensor
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
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.

Überblick über Door Sensor

Pinbelegung

Der Türsensor besteht aus zwei Komponenten:

  • Einem Reedschalter mit zwei Metallanschlüssen
  • Einem Magneten
Türsensor Pinbelegung

Wie bei einem normalen Schalter oder Taster müssen wir uns um die Reihenfolge der beiden Pins des Reedschalters keine Gedanken machen.

Funktionsweise

Der Magnet wird am beweglichen Teil der Tür oder des Fensters befestigt, während der Reedschalter am Türrahmen angebracht wird. Wenn die Tür geschlossen ist, befinden sich Magnet und Reedschalter nahe beieinander.

  • Wenn sich der Magnet in der Nähe des Reedschalters befindet, ist der Stromkreis des Reedschalters geschlossen.
  • Wenn der Magnet vom Reedschalter entfernt ist, ist der Stromkreis des Reedschalters offen.
Türsensor Funktionsweise

※ Notiz:

Der Reedschalter erzeugt selbst keine LOW- oder HIGH-Signale. Er kann nur offen oder geschlossen sein. Wie wir ihn an den ESP32 anschließen, bestimmt, ob der Pin LOW, HIGH oder einen schwebenden Wert (der instabil ist) liest. Um diesen instabilen schwebenden Wert zu vermeiden, sollten wir einen Pull-Up- oder Pull-Down-Widerstand an den Pin des ESP32 anschließen.

Verbinden Sie einen Pin des Reedschalters mit GND und den anderen Pin mit einem Eingangspin des ESP32, unter Verwendung eines Pull-Up-Widerstands. Dieser Widerstand kann eingebaut oder separat hinzugefügt sein.

  • Wenn sich der Magnet in der Nähe des Reedschalters befindet, liest der Eingangspin des ESP32 LOW.
  • Wenn der Magnet vom Reedschalter entfernt ist, liest der Eingangspin des ESP32 HIGH.

Damit können Sie:

  • Durch Auslesen des Eingangspins am ESP32 prüfen, ob die Tür offen oder geschlossen ist:
    • Ist der Pin LOW, ist die Tür geschlossen.
    • Ist der Pin HIGH, ist die Tür offen.
  • Durch Erkennen von Zustandsänderungen am Eingangspin feststellen, wann die Tür geöffnet oder geschlossen wird:
    • Ein Wechsel von LOW auf HIGH bedeutet, dass die Tür geöffnet wird.
    • Ein Wechsel von HIGH auf LOW bedeutet, dass die Tür geschlossen wird.

Verdrahtungsdiagramm

  • So verbinden Sie ESP32 und Türsensor mit einem Steckbrett
ESP32 MicroPython Türsensor Schaltplan

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

So verbinden Sie ESP32 und Türsensor

ESP32 MicroPython-Code - Offen- und Geschlossen-Zustand der Tür prüfen

/* * 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-door-sensor */ from machine import Pin import utime DOOR_SENSOR_PIN = 19 # The ESP32 pin GPIO19 connected to the door sensor # Create a Pin object to handle the input from the door sensor # Input pull-up mode is activated by setting Pin.PULL_UP door_sensor = Pin(DOOR_SENSOR_PIN, Pin.IN, Pin.PULL_UP) while True: # Read the current state of the door sensor door_state = door_sensor.value() # Check if the door is open or closed based on the state if door_state == 1: print("The door is open") else: print("The door is closed") # Sleep for a short period to reduce output flooding utime.sleep(0.5)

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 für eine Schritt-für-Schritt-Anleitung.
  • Schließen Sie das ESP32-Board gemäß dem bereitgestellten Schaltplan an den Türsensor an.
  • Verbinden Sie das 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 Reiter Interpreter die Option MicroPython (ESP32) aus dem Dropdown-Menü.
  • Stellen Sie sicher, dass der richtige Port ausgewählt ist. Die Thonny IDE erkennt ihn normalerweise automatisch, aber eventuell müssen Sie ihn 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.
    • Benennen 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 den Magneten nahe an den Reedschalter und ziehen Sie ihn dann wieder weg.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

ESP32 MicroPython-Code - Öffnungs- und Schließereignisse der Tür erkennen

/* * 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-door-sensor */ from machine import Pin import utime DOOR_SENSOR_PIN = 19 # The ESP32 pin GPIO19 connected to the door sensor # Set up the door sensor pin with input pull-up mode door_sensor = Pin(DOOR_SENSOR_PIN, Pin.IN, Pin.PULL_UP) # Read the initial state of the door sensor door_state = door_sensor.value() prev_door_state = door_state # Initialize previous state to the current state while True: # Update the previous state prev_door_state = door_state # Read the new state of the door sensor door_state = door_sensor.value() # Check for state change from LOW to HIGH (door opening) if prev_door_state == 0 and door_state == 1: print("The door opening is detected") # Add actions here such as turning on an alarm, light, or sending a notification # Check for state change from HIGH to LOW (door closing) elif prev_door_state == 1 and door_state == 0: print("The door closing is detected") # Add actions here such as turning off an alarm, light, or sending a notification # Sleep for a short period to debounce the sensor utime.sleep(0.1)
  • 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 grüne Schaltfläche Run (oder drücken Sie F5), um das Skript auszuführen.
  • Halten Sie einen Magneten nahe an den Reedschalter und bewegen Sie ihn dann weg.
  • Sehen Sie sich die Meldung in der Shell unten in Thonny an.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The door closing is detected The door opening is detected
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!