ESP32 - Schallsensor

Der Geräuschsensor kann die Anwesenheit von Geräuschen in seiner Umgebung erkennen. Er kann verwendet werden, um trendige schallreaktive Projekte zu erstellen, wie Lichter, die sich bei einem Klatschen einschalten, oder einen Tierfutterspender, der auf Geräusche reagiert.

In diesem Tutorial lernen wir, wie man den ESP32 und einen Schallsensor verwendet, um Schall zu erkennen. Wir befassen uns mit Folgendem:

ESP32-Schallsensor

Daraufhin haben Sie die Flexibilität, den Code so anzupassen, dass eine LED oder ein Licht (über ein Relais) bei der Geräuschdetektion ausgelöst wird, oder sogar einen Servomotor rotieren lässt.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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×Digitaler Schallsensor
1×Analoger Schallsensor
1×Breadboard
1×Verbindungskabel
1×(Optional) 5V Power Adapter for ESP8266
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 (30 Sensoren/Displays)
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.

Über Schallsensor

Der Schallsensor kann verwendet werden, um Schall in der Umgebung zu erkennen. Es gibt zwei Arten von Schallsensor-Modulen:

  • Digitales Schallsensor-Modul: gibt den digitalen Signalwert aus (AN/AUS)
  • Analoges Schallsensor-Modul: gibt sowohl analoge als auch digitale Signalwerte aus

Die Empfindlichkeit des digitalen Ausgangs kann durch die Verwendung eines eingebauten Potentiometers eingestellt werden.

Die Pinbelegung des digitalen Schallsensors

Der digitale Schallsensor umfasst drei Pins:

  • VCC-Pin: muss mit VCC verbunden werden (3,3 V bis 5 V)
  • GND-Pin: muss mit GND verbunden werden (0 V)
  • OUT-Pin: ist ein Ausgangspin: HIGH, wenn kein Geräusch vorhanden ist, und LOW, wenn Geräusch erkannt wird. Dieser Pin muss mit dem Eingangspin des ESP32 verbunden werden.
Schallsensor-Pinbelegung
image source: diyables.io

Der Schallsensor verfügt über ein praktisches, eingebautes Potentiometer, mit dem Sie die Empfindlichkeit ganz einfach einstellen können. Zusätzlich verfügt er über zwei LED-Indikatoren:

  • Eine LED-Anzeige zeigt den Stromstatus an.
  • Eine weitere LED-Anzeige zeigt den Geräuschstatus an und leuchtet, wenn Geräusche erkannt werden, und geht aus, wenn es still ist.

Pinbelegung des analogen Geräuschsensors

Der analoge Klangsensor verfügt über vier Anschlüsse:

  • + Pin: muss mit 5V verbunden werden
  • G Pin: muss mit GND (0V) verbunden werden
  • DO Pin: ist ein digitaler Ausgangspin: HIGH, wenn ruhig und LOW, wenn Geräusch erkannt wird. Dieser Pin muss mit dem digitalen Eingangspin des ESP32 verbunden werden.
  • AO Pin: ist ein analoger Ausgangspin: gibt den analogen Wert des gemessenen Geräuschpegels aus. Dieser Pin muss mit dem analogen Eingangspin des ESP32 verbunden werden.
Pinbelegung eines analogen Schallsensors
image source: diyables.io

Der analoge Schallsensor verfügt über ein praktisches integriertes Potentiometer, das es Ihnen ermöglicht, seine Empfindlichkeit für den digitalen Ausgang bequem einzustellen. Zusätzlich ist er mit zwei LED-Anzeigen ausgestattet:

  • Eine LED-Anzeige zeigt den Stromstatus.
  • Eine weitere LED-Anzeige signalisiert den Geräuschstatus und leuchtet, wenn ein Geräusch erkannt wird, und erlischt, wenn es ruhig ist.

Wie es funktioniert

Das Modul verfügt über ein praktisches integriertes Potentiometer, mit dem Sie die Geräuschempfindlichkeit einstellen können. So verhält sich der Ausgangspin des Sensors:

  • Wenn Ton erkannt wird, wird der Ausgangspin auf LOW gesetzt.
  • Wenn kein Ton erkannt wird, wird der Ausgangspin auf HIGH gesetzt.

Verdrahtungsdiagramm

  • Wie man ESP32 und Schallsensor mit Steckbrett verbindet
ESP32-Schallsensor Verdrahtungsdiagramm

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 Schallsensor.

Wie man für einen Schallsensor programmiert

  • Initialisiert den ESP32-Pin in den digitalen Eingabemodus, indem die Funktion pinMode() verwendet wird. Zum Beispiel der Pin GPIO18.
pinMode(18, INPUT);
  • Liest den Zustand des ESP32-Pins durch die Verwendung der digitalRead()-Funktion.
int soundState = digitalRead(18);

ESP32-Code - Das Geräusch erkennen

/* * 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-sound-sensor */ #define SENSOR_PIN 18 // ESP32 pin GPIO18 connected to the OUT pin of the sound sensor int lastState = HIGH; // the previous state from the input pin 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 the ESP32's input pin currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The sound has been detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The sound has disappeared"); // save the the last state lastState = currentState; }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich an, wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino-IDE, um den Code auf den ESP32 hochzuladen.
  • Klatschen Sie vor dem Lautsensor.
  • Sehen Sie das Ergebnis im seriellen Monitor.
COM6
Send
The sound has been detected The sound has disappeared The sound has been detected The sound has disappeared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Bitte beachten Sie, dass der LED-Status auch dann konstant ein- oder ausgeschaltet bleiben kann, wenn Geräusche vorhanden sind; möglicherweise müssen Sie das Potentiometer einstellen, um die Geräuschempfindlichkeit des Sensors fein abzustimmen.

Jetzt haben wir die Freiheit, den Code zu personalisieren und ihn so zu programmieren, dass er eine LED oder eine Leuchte auslöst, wenn ein Ton erkannt wird. Wir können sogar einen Servomotor entsprechend dem Tonsignal drehen lassen. Für detailliertere Hinweise und Schritt-für-Schritt-Anleitungen kannst du die am Ende dieses Tutorials bereitgestellten Anleitungen verwenden.

Fehlerbehebung

Falls Sie Probleme mit der Funktionsfähigkeit des Schallsensors feststellen, ziehen Sie bitte die folgenden Schritte zur Fehlerbehebung in Betracht:

  • Vibrationen reduzieren: Mechanische Vibrationen und Windgeräusche können die Leistung des Schallsensors beeinträchtigen. Um diese Störungen zu minimieren, versuchen Sie, den Schallsensor auf einer stabilen Oberfläche zu montieren.
  • Beachten Sie den Erfassungsbereich: Bedenken Sie, dass dieser spezielle Schallsensor einen begrenzten Erfassungsbereich von etwa 25,4 cm hat. Für genaue Messwerte versuchen Sie, Schall näher am Sensor zu erzeugen.
  • Stromversorgung prüfen: Stellen Sie sicher, dass die Stromversorgung sauber und frei von Störungen ist, da der Schallsensor aufgrund seiner analogen Natur empfindlich gegenüber Störungen der Stromversorgung ist.

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

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