ESP32 - SW-420 Vibrationssensor

Das SW-420-Vibrationssensormodul kann Stöße, Klopfen und Schütteln in seiner Umgebung erfassen und eine einfache mechanische Störung in ein digitales Signal umwandeln, auf das Ihr ESP32 reagieren kann.

In diesem Tutorial lernen wir, wie man den ESP32 und einen SW-420-Vibrationssensor verwendet, um Vibrationen zu erkennen. Wir behandeln im Detail Folgendes:

ESP32 SW-420 Vibrationssensor

Sobald die grundlegende Erkennung funktioniert, können Sie den Code erweitern, um einen Summer ertönen zu lassen, eine LED blinken zu lassen oder eine Benachrichtigung zu senden, wann immer eine Vibration erfasst wird.

Über den SW-420-Vibrationssensor

Das SW-420-Vibrationssensormodul ist dafür gebaut, Stöße und Erschütterungen an dem Objekt zu bemerken, an dem es befestigt ist. Im Inneren des Moduls sitzt ein kleiner federbasierter Vibrationsschalter in der Nähe eines Metallkontakts; ein Onboard-LM393-Komparator überwacht diesen Schalter und gibt ein sauberes digitales Signal aus, sobald Vibrationen oder Stöße ihn stören, während Sie mit einem Onboard-Potentiometer einstellen können, wie viel Erschütterung nötig ist, um den Ausgang auszulösen.

Pinbelegung des SW-420-Vibrationssensors

Der SW-420-Vibrationssensor hat drei Pins:

  • VCC-Pin: muss mit VCC (3,3V bis 5V) verbunden werden
  • GND-Pin: muss mit GND (0V) verbunden werden
  • DO-Pin: ist ein Ausgangspin: LOW, wenn der Sensor im Ruhezustand ist, und HIGH, wenn Vibrationen oder Stöße erkannt werden. Dieser Pin muss mit einem Eingangspin des ESP32 verbunden werden.
Pinbelegung des SW-420-Vibrationssensors
image source: diyables.io

Das SW-420-Vibrationssensormodul hat zwei LED-Anzeigen:

  • Eine LED-Anzeige zeigt den Stromversorgungsstatus an.
  • Eine weitere LED-Anzeige leuchtet auf, sobald der DO-Pin auf HIGH geht, und signalisiert damit, dass eine Vibration erkannt wurde.

Funktionsweise

So verhält sich der Ausgangspin des Sensors:

  • Wenn das Modul ruhig liegt, bleibt der interne Schalter offen und der Ausgangspin ist auf LOW gesetzt.
  • Wenn Vibrationen oder Stöße das Modul stören, schließt sich der interne Schalter kurzzeitig und der Ausgangspin wird auf HIGH gesetzt.

Verdrahtungsdiagramm

  • So verbinden Sie ESP32 und SW-420-Vibrationssensor mit einem Steckbrett
ESP32 SW-420 Vibrationssensor Schaltplan

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

So verbinden Sie ESP32 und SW-420-Vibrationssensor

Wie man den SW-420-Vibrationssensor programmiert

  • Initialisieren Sie den ESP32-Pin mit der Funktion pinMode() im digitalen Eingangsmodus. Zum Beispiel Pin GPIO18
pinMode(18, INPUT);
  • Lesen Sie den Zustand des ESP32-Pins mit der Funktion digitalRead() aus.
int vibrationState = digitalRead(18);

ESP32-Code - Erkennen der Vibration

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-sw-420-vibration-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the DO pin of the SW-420 vibration sensor int lastState = LOW; // the previous state from the input pin (idle/resting state) int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP32's input pin currentState = digitalRead(SENSOR_PIN); if (lastState == LOW && currentState == HIGH) Serial.println("Vibration detected"); else if (lastState == HIGH && currentState == LOW) Serial.println("Vibration stopped"); // save the the last state lastState = currentState; }

Schnelle Schritte

  • Wenn Sie den ESP32 zum ersten Mal verwenden, sehen Sie sich an, wie man die Umgebung für den ESP32 in der Arduino IDE einrichtet.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP32 hochzuladen
  • Klopfen Sie auf den SW-420-Sensor oder schütteln Sie ihn
  • Sehen Sie sich das Ergebnis im Seriellen Monitor an.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Vibration detected Vibration stopped Vibration detected Vibration stopped
Ln 11, Col 1
ESP32 Dev Module on COM15
2

Von hier aus können Sie den Code nach Belieben anpassen, sodass er einen Summer ertönen lässt, eine LED blinken lässt oder eine Warnung sendet, sobald eine Vibration erkannt wird. Ausführlichere Hinweise und Schritt-für-Schritt-Anleitungen finden Sie in den Tutorials am Ende dieses Tutorials.

Fehlerbehebung

Wenn Sie Probleme mit der Funktion des SW-420-Vibrationssensors haben, beachten Sie bitte die folgenden Schritte zur Fehlerbehebung:

  • Empfindlichkeit einstellen: Drehen Sie das Onboard-Potentiometer, um den Sensor empfindlicher oder unempfindlicher zu machen, falls er zu leicht oder gar nicht auslöst.
  • Von Umgebungsvibrationen isolieren: Montieren Sie den Sensor fern von Motoren, Lüftern oder Oberflächen, die ständig vibrieren, da dies zu dauerhaften Fehlauslösungen führen kann.
  • Verdrahtung prüfen: Stellen Sie sicher, dass die Pins VCC, GND und DO korrekt angeschlossen sind.
  • Stromversorgung prüfen: Stellen Sie sicher, dass die Stromversorgung sauber und stabil ist, um gleichbleibende Messwerte zu erhalten.

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.

Funktionsreferenzen

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!