FC-04 Soundmodul – ESP32 Tutorial
Einleitung
In diesem Tutorial erfährst du, wie du das Soundmodul FC-04 erfolgreich mit einem ESP32 verbindest und programmierst, um Schallereignisse zu erkennen. Wir führen dich Schritt für Schritt durch den gesamten Prozess, beginnend bei den benötigten Komponenten bis hin zur fertigen Anwendung.
Du lernst, wie der physikalische Aufbau deiner Schaltung funktioniert und welche Pins du miteinander verbinden musst. Anschließend widmen wir uns der Softwareseite: Der Code wird detailliert in der Arduino IDE erklärt, sodass du genau verstehst, wie das Soundmodul FC-04 ausgelesen und die erfassten Daten verarbeitet werden. Abschließend zeigen wir dir die praktische Anwendung und wie du die Ergebnisse auf dem seriellen Monitor siehst.
Verschaltung
Teile
1x ESP32
1x Soundmodul FC-04
3x Verbindungskabel
Bibliotheken
–
Code
Übersicht
Bevor wir ins Detail gehen, schauen wir uns an, was du für dein Soundmodul ESP32 Projekt benötigst. Die gute Nachricht ist: Es ist nicht viel und die Komponenten sind leicht erhältlich.
Hier ist eine kurze Liste der benötigten Materialien:
1x ESP32
1x Soundmodul FC-04
3x Verbindungskabel (Dupont-Kabel)
Das Soundmodul FC-04 ist ideal, um Geräusche und Lautstärken zu erkennen, während der ESP32 die perfekte Basis bietet, um diese Daten zu verarbeiten und bei Bedarf sogar ins Internet zu senden. Mit nur drei Verbindungskabeln ist die Verdrahtung zudem denkbar einfach.

Pinout – Soundmodul FC-04
Das Soundmodul FC-04 ist erfreulich unkompliziert, was seine Anschlüsse betrifft. Du findest an dem Soundmodul insgesamt drei Pins, die du mit deinem ESP32 verbinden musst. Es handelt sich hierbei um die Standardanschlüsse für die Spannungsversorgung und den Ausgang für das Signal.
Hier ist eine kurze Übersicht der Pins:
VCC: Dies ist der Pin für die Stromversorgung.
GND: Dies ist der Masse-Anschluss.
OUT: Über diesen Pin erhältst du das digitale Ausgangssignal des Sensors.

Ganz oben befindet sich auf dem Modul das tatsächliche Mikrofon.
Zudem findet sich weiter unten eine “Power LED”, welche signalisiert, dass die Versorgungsspannung korrekt anliegt. Daneben findet sich die “Status LED”, welche signalisiert, wenn ein Ton erkannt wird. Über das blaue Potentiometer kann die Empfindlichkeit eingestellt werden. Beispielsweise, ob bereits ein leiser Ton detektiert werden muss oder erst bei einem lauten Ton, das Sensor-Modul eine Rückmeldung gibt.
Des Weiteren befindet sich auf dem Modul ein LM393. Hierbei handelt es sich um einen Chip, in welchem 2 Operationsverstärker enthalten sind – konkret zwei Komparatoren.
Der LM393 hat die Aufgabe, das analoge Signal des Mikrofons in ein digitales Signal umzuwandeln. Das Mikrofon erzeugt ein kleines, variables analoges Spannungssignal, das sich je nach Lautstärke und Art des Tons ändert. Der LM393 vergleicht dieses analoge Signal mit einem festen Referenzwert. Dieser ist über ein Potentiometer auf dem Modul einstellbar.
Hardware Aufbau / Verkabelung / Schaltungsaufbau
Der Aufbau deiner Schaltung mit dem Soundmodul FC-04 und dem ESP32 ist denkbar einfach und schnell erledigt. Du musst lediglich drei Verbindungen herstellen: Verbinde den VCC-Pin deines Moduls mit dem 3,3V-Ausgang deines ESP32. Als Nächstes schließt du den GND-Pin des Soundmoduls FC-04 an den GND-Pin deines ESP32 an. Zuletzt verbindest du den OUT-Pin des Moduls mit dem digitalen Pin D15 deines ESP32. So ist sichergestellt, dass die Datenübertragung reibungslos funktioniert.
ESP32 3,3V → Soundmodul FC-04 Vcc-Pin
ESP32 GND → Soundmodul FC-04 GND-Pin
ESP32 D15 → Soundmodul FC-04 OUT-Pin

Die korrekte und sorgfältige Verdrahtung ist entscheidend, damit der ESP32 die Signale des Soundmoduls FC-04 richtig erfassen kann. Wenn du diese Verbindungen erfolgreich hergestellt hast, kannst du mit der Programmierung fortfahren. Im nächsten Abschnitt gehen wir detailliert darauf ein, wie du die nötige Bibliothek einbindest und den Code für das Soundmodul FC-04 schreibst.
Software Programmierung – Soundmodul FC-04
Sobald der Hardware-Aufbau erfolgreich abgeschlossen ist, widmen wir uns der ESP32 Programmierung. In diesem Abschnitt beleuchten wir detailliert die notwendigen Schritte zur Codeerstellung und erklären die Schlüsselfunktionen, die du verwenden wirst.
Schritt 1: IDE Projekt
Zuerst öffnest du die Arduino-IDE und erstellst ein neues Projekt. Um mit der Arduino-IDE zu arbeiten, startest du einfach die Anwendung auf deinem Computer. Falls du die Arduino-IDE noch nicht installiert hast, findest du unter folgendem Link eine Anleitung dazu:
>
Nachdem du die Arduino-IDE geöffnet hast, erstellst du ein neues Projekt, indem du auf „Datei“ und dann auf „Neu“ klickst. Daraufhin öffnet sich ein neues Sketch-Fenster, in das du deinen Code eingeben kannst.
// Hier kommt dein Code
void setup()
{
// Initialisierung
}
void loop()
{
// Schleife
}
Schritt 2: Bibliothek einbinden
Für das Soundmodul FC-04 benötigst du in diesem Fall keine spezielle Bibliothek, da wir direkt die digitalen Pins des ESP32 auslesen. Das macht das Ganze noch einfacher! Dadurch hast du direkt alle erforderlichen Funktionen, um die Signale des Sensors zu erfassen und auszuwerten.
Schritt 3: Initialisierung
Im Bereich vor dem void setup() definieren wir wichtige Konstanten und Variablen, die für das reibungslose Funktionieren deines Projekts notwendig sind. Zuerst legen wir fest, welcher Pin deines ESP32 mit dem Soundmodul FC-04 verbunden ist. Anschließend deklarieren wir zwei Integer-Variablen, um den vorherigen und aktuellen Zustand des Sensors zu speichern. Diese sind entscheidend, um Änderungen im Signal des Soundmoduls FC-04 erkennen zu können.
#define SENSOR_PIN 15 // Daten-Pin des Sensors
int lastState = HIGH; // Variable für den vorherigen Sensor-Zustand
int currentState; // Variable für den aktuellen Sensor-Zustand
Schritt 4: Void Setup
Innerhalb der void setup()-Funktion initialisieren wir die serielle Kommunikation, damit dein ESP32 Nachrichten an deinen Computer senden kann, was besonders beim Debugging hilfreich ist. Außerdem definieren wir den Pin, an dem das Soundmodul FC-04 angeschlossen ist, als Eingang. Das bedeutet, dass der ESP32 an diesem Pin Signale empfangen wird.
void setup() {
Serial.begin(9600); // Serielle Kommunikation initialisieren - 9600 bits pro Sekunde
pinMode(SENSOR_PIN, INPUT); // Definiere den Daten-Pin als Eingang
}
Schritt 5: Loop Setup
Der void loop()-Bereich ist das Herzstück deines Programms und wird kontinuierlich ausgeführt. Hier lesen wir den aktuellen Status des Soundmodul FC-04 aus. Anschließend vergleichen wir diesen Status mit dem vorherigen Zustand, um zu erkennen, ob ein Ton erkannt oder ob der Ton verschwunden ist. Je nachdem, welche Änderung auftritt, wird eine entsprechende Nachricht über die serielle Schnittstelle ausgegeben. Zum Schluss speichern wir den aktuellen Zustand, damit er im nächsten Durchlauf als vorheriger Zustand zur Verfügung steht.
void loop() {
currentState = digitalRead(SENSOR_PIN); // Status des Sensors einlesen
if (lastState == HIGH && currentState == LOW) // Hat sich der Sensor-Zustand geändert?
Serial.println("Der Ton wurde erkannt");
else if (lastState == LOW && currentState == HIGH)
Serial.println("Der Ton ist verschwunden");
lastState = currentState; // Aktueller Sensor-Zustand speichern
}
Gesamter Code
Hier zur besseren Übersicht der gesamte Programmier-Code für dein Soundmodul FC-04 und ESP32 Projekt:
#define SENSOR_PIN 15 // Daten-Pin des Sensors
int lastState = HIGH; // Variable für den vorherigen Sensor-Zustand
int currentState; // Variable für den aktuellen Sensor-Zustand
void setup() {
Serial.begin(9600); // Serielle Kommunikation initialisieren - 9600 bits pro Sekunde
pinMode(SENSOR_PIN, INPUT); // Definiere den Daten-Pin als Eingang
}
void loop() {
currentState = digitalRead(SENSOR_PIN); // Status des Sensors einlesen
if (lastState == HIGH && currentState == LOW) // Hat sich der Sensor-Zustand geändert?
Serial.println("Der Ton wurde erkannt");
else if (lastState == LOW && currentState == HIGH)
Serial.println("Der Ton ist verschwunden");
lastState = currentState; // Aktueller Sensor-Zustand speichern
}
Ausführung / Anwendung
Nachdem du den Code in die IDE eingegeben hast, muss dieser noch ausgeführt und auf deinen ESP32 übertragen werden. Das ist ganz einfach und in wenigen Schritten erledigt:
Schritt 1: Kompilieren (Haken-Symbol):
Klicke zuerst auf das Häkchen-Symbol in der Arduino-IDE. Dadurch wird dein Code kompiliert und auf mögliche Fehler überprüft. Wenn alles in Ordnung ist, siehst du eine Erfolgsmeldung.
Schritt 2: Hochladen (Pfeil-Symbol):
Als Nächstes klickst du auf den Pfeil, um den kompilierten Code auf deinen ESP32 hochzuladen. Achte darauf, dass dein ESP32 korrekt mit deinem Computer verbunden ist und der richtige Port in der IDE ausgewählt ist.
Schritt 3: Serieller Monitor öffnen:
Sobald der Code erfolgreich hochgeladen wurde, öffne den seriellen Monitor in der Arduino-IDE (oft über das Lupen-Symbol oben rechts).
Schritt 4: Ton-Detektion auf dem Seriellen Monitor:
Im seriellen Monitor siehst du nun Ausgaben, sobald das Soundmodul einen Ton detektiert. Es erscheint dann: „Der Ton wurde erkannt“ sobald der Ton wieder verschwunden ist, erscheint: „Der Ton ist verschwunden“