ESP8266 - Schallsensor

Der Schallsensor ist in der Lage, die Anwesenheit von Schall in seiner Umgebung zu erkennen. Er kann eingesetzt werden, um Projekte zu erstellen, die auf Geräusche reagieren, wie Lichter, die sich bei einem Klatschen einschalten, oder ein Tierfutterautomat, der auf Geräusche reagiert.

Dieses Tutorial erklärt, wie man den ESP8266 und einen Schallsensor verwendet, um Geräusche zu erkennen. Wir werden Folgendes untersuchen:

ESP8266 NodeMCU NodeMCU-Schallsensor

Anschließend haben Sie die Möglichkeit, den Code so zu ändern, dass bei Geräuscherkennung die Aktivierung einer LED oder eines Lichts (über ein Relais) ausgelöst wird, oder sogar einen Servomotor drehen lässt.

Erforderliche Hardware

1×ESP8266 NodeMCU
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×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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 seiner Umgebung zu erkennen. Es gibt zwei Arten von Schallsensor-Modulen:

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

Die Empfindlichkeit des digitalen Ausgangs kann durch ein eingebautes Potentiometer eingestellt werden.

Die Pinbelegung des digitalen Schalldetektors

Der Schallsensor hat drei Anschlüsse:

  • 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 Ausgabepin: HIGH, wenn es ruhig ist, und LOW, wenn Geräusch erkannt wird. Dieser Pin muss mit dem Eingangspin des ESP8266 verbunden werden.
Schallsensor-Pinbelegung
image source: diyables.io

Der Schallsensor wird mit einem praktischen Potentiometer geliefert, mit dem Sie seine Empfindlichkeit einfach einstellen können. Darüber hinaus verfügt er über zwei LED-Indikatoren:

  • Eine LED zeigt den Betriebsstatus
  • Eine weitere LED zeigt den Tonstatus: Sie leuchtet, wenn Ton erkannt wird, und erlischt, wenn Ruhe herrscht.

Die Pinbelegung des analogen Schallsensors

Der analoge Schallsensor verfügt über vier Pins:

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

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 Sensor:

  • Wenn Schall erkannt wird, wird der Ausgangspin des Sensors auf LOW gesetzt.
  • Wenn kein Schall erkannt wird, wird der Ausgangspin des Sensors auf HIGH gesetzt.

Verdrahtungsdiagramm

  • Das Verdrahtungsdiagramm zwischen ESP8266 und Schallsensor bei Betrieb über den USB-Port
ESP8266 NodeMCU-Schallsensor-Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

  • Der Schaltplan zwischen dem ESP8266 und dem Schallsensor bei Stromversorgung über Vin
ESP8266 NodeMCU Schallsensor Vin Verdrahtungsdiagramm

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

Wie man für einen Schallsensor programmiert

  • Initialisiert den ESP8266-Pin in den digitalen Eingabemodus, indem die Funktion pinMode() verwendet wird. Zum Beispiel Pin D7
pinMode(D7, INPUT);
  • Liest den Zustand des ESP8266-Pins mithilfe der digitalRead()-Funktion.
int soundState = digitalRead(D7);

ESP8266 Code - Das Geräusch erkennen

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-sound-sensor */ #define SENSOR_PIN D7 // The ESP8266 pin D7 connected to the OUT pin of the sound sensor int prev_state = HIGH; // The previous state from the input pin int sound_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP8266's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the ESP8266's input pin sound_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && sound_state == LOW) Serial.println("The sound has been detected"); else if (prev_state == LOW && sound_state == HIGH) Serial.println("The sound has disappeared"); // save the the last state prev_state = sound_state; }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir die Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, falls du ESP8266 zum ersten Mal verwendest.
  • Verdrahte die Bauteile wie im Diagramm gezeigt.
  • Schließe das ESP8266-Board mit deinem Computer über ein USB-Kabel an.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den jeweiligen COM-Port.
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE.
  • Klicke im Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den ESP8266 hochzuladen.
  • Klopfe mit deiner Hand vor dem Schallsensor.
  • Schau dir das Ergebnis im Serial Monitor an.
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 Sie, falls Ihnen auffällt, dass die LED ständig ein- oder ausgeschaltet ist, unabhängig davon, ob Ton vorhanden ist, die Empfindlichkeit des Schallsensors durch das Einstellen des Potentiometers anpassen können.

Nun, da der Code angepasst ist, können wir ihn so einstellen, dass er eine LED oder eine Lichtquelle aktiviert, wenn ein Ton erkannt wird. Wir können sogar einen Servomotor drehen lassen. Für detaillierte Anweisungen und weitere Informationen verweisen Sie bitte auf die am Ende dieses Leitfadens bereitgestellten Tutorials.

Fehlerbehebung

Wenn Sie Probleme damit haben, dass der Schallsensor nicht ordnungsgemäß funktioniert, versuchen Sie die folgenden Schritte zur Fehlerbehebung:

  • Vibrationen reduzieren: Mechanische Vibrationen und Windgeräusche können die Leistung des Schallsensors beeinträchtigen. Die Montage auf einer stabilen Oberfläche kann dazu beitragen, diese Störungen zu minimieren.
  • Den Erfassungsbereich berücksichtigen: Beachten Sie, dass dieser spezielle Schallsensor einen begrenzten Erfassungsbereich von etwa 10 Zoll hat. Um genaue Messwerte zu erhalten, versuchen Sie, Geräusche näher am Sensor zu erzeugen.
  • Stromversorgung überprüfen: Stellen Sie sicher, dass die Stromversorgung sauber und frei von Störungen ist, da der Schallsensor aufgrund seiner analogen Bauweise 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

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!