In diesem Artikel zeige ich dir, wie du einen Reed-Magnetsensor am ESP32 anschließen und verwenden kannst. Als kleines Beispielprojekt zeige ich dir, wie du eine LED leuchten lassen kannst, wenn der Kontakt unterbrochen wurde.
Inhalt
Reed Sensoren sind Schalter, welche bei Kontakt mit einem Magneten entweder geschlossen oder geöffnet sind. In diesem Beitrag werde ich solche benutzen, die bei Kontakt geschlossen sind, grundsätzlich funktionieren aber beide Arten gleich.
Was du dafür benötigst:
- einen ESP32
- ein Breadboard
- einen Reed Sensor
- GPIO Jumper Kabel
- ein Micro USB Kabel
- (einen PC)
Für den Nachbau des Beispielprojektes brauchst du eventuell noch:
- eine LED
- einen passenden Vorwiderstand
Sensor anschließen
Es gibt zwei verschiedene Sensor-Module. Bei dieser Anleitung ist egal, welche du benutzt. Achte lediglich darauf, dass wenn du den großen roten Sensor, wie unten auf dem Bild zu sehen, benutzt, du den digitalen Output-Pin benutzt, nicht den analogen.
Der Sensor hat 3 GPIO Pins: VCC, Data (oder Signal) und GND. Schließe nun VCC an 5V, Data (oder Signal) an z.B. GPIO 4 oder GPIO 5 an und verbinde GND mit GND, wie in den Bildern unten zu sehen ist.
Damit ist der Sensor am ESP32 angeschlossen und du kannst mit der Software fortfahren.
Software
Um den Sensor zu verwenden, brauchst du das passende Skript. Zum erstellen und Hochladen auf den ESP32 empfehle ich dir die Arduino-IDE. Lade diese herunter und installiere sie. Erstelle jetzt ein neues Skript. Füge zum Testen folgenden Code ein:
int reedPin = 5;
void setup() {
Serial.begin(115200);
pinMode(reedPin, INPUT);
}
void loop() {
int s = digitalRead(reedPin);
Serial.print(s);
}
Code-Sprache: Arduino (arduino)
Die Nummer des Pins (ganz oben) musst du selbstverständlich noch ändern, wenn du einen anderen verwendest also z.B. “int pirPin = 4;“. Öffne nun den Seriellen Monitor mit der Baudrate 115200.
Schließe jetzt den ESP32, mit dem angeschlossenen Sensor, an den PC an. Du kannst das Skript jetzt auf den Mikrocontroller hochladen.
Jetzt schreibt der serielle Monitor eine 1, wenn der Sensor unterbrochen wurde und eine 0, wenn nicht.
Beispielprojekt
Um das ein bisschen besser zu visualisieren, kannst du eine LED an den ESP32 anschließen, welche dann leuchten soll, wenn der Magnet entfernt wurde.
Schließe die LED dafür an einen freien GPIO Pin an, z.B. 4 oder 5.
Jetzt der Code:
int reedPin = 5;
int ledPin = 4;
void setup() {
Serial.begin(115200);
pinMode(reedPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int s = digitalRead(reedPin);
digitalWrite(ledPin, s);
Serial.print(s);
}
Code-Sprache: Arduino (arduino)
Ich hoffe, dass ich dir mit diesem Artikel weiterhelfen konnte. Schreibe gerne deine Projekte mit einem Reed-Kontakt in die Kommentare ;-).