Dieses Repository enthält die Firmware für einen autarken HTTP-WAV-Audiostreamer auf Basis eines **ESP32-WROOM-32U DevKits** (mit externer Antenne) und eines I2S-MEMS-Mikrofons (z. B. INMP441 oder ICS-43434).
Der Streamer erfasst Audio mit 48 kHz / 16 Bit Mono und stellt es über einen unterbrechungsfreien HTTP-Webserver direkt im Netzwerk bereit. Dieser Stream kann nativ von **BirdNET-Go** (z. B. im Docker-Container auf einem NAS) oder im Browser/VLC verarbeitet werden.
* **HTTP WAV Streaming:** Direkte, standardkonforme Bereitstellung der Rohdaten über HTTP (Port 80) ohne Overhead durch komplexe RTSP-Protokolle.
* **Asynchrones Dual-Core Processing:** Nutzt die mächtige [arduino-audio-tools](https://github.com/pschatzmann/arduino-audio-tools) Bibliothek. Das Auslesen des Mikrofons und das Senden über WLAN laufen asynchron. Das verhindert TCP-Fragmentierung und eliminiert Audio-Aussetzer ("schwarze vertikale Balken") im BirdNET-Spektrogramm vollständig.
* **Hohe WLAN-Reichweite:** Ausgelegt auf das ESP32-WROOM-32U Modul mit U.FL-Anschluss und externer Stabantenne für den stabilen Langzeiteinsatz im Garten.
> 1. Löte einen Elektrolytkondensator (470 µF oder 1000 µF) nah am ESP32 zwischen **3V3** und **GND**. Das fängt Stromspitzen der WLAN-Antenne beim Senden ab und verhindert interne Spannungsabfälle sowie Rauschen im Audiosignal.
> 2. Die externe Antenne muss auf dem U.FL-Port aufgesteckt sein, bevor das Board mit Strom versorgt wird.
Da die Audio-Bibliothek sehr umfangreich ist und einige ESP32-Boards spezielle Speichereinstellungen benötigen, müssen folgende Parameter unter **Werkzeuge** in der Arduino IDE gesetzt werden:
* **Board:** `ESP32 Dev Module`
* **Partition Scheme:** `Huge APP (3MB No OTA/1MB SPIFFS)`*(Zwingend erforderlich für die Audio-Bibliothek!)*
Wenn während des Uploads in der Konsole `Connecting........` erscheint, muss die winzige **"BOOT"**-Taste auf dem ESP32-Board für 1-2 Sekunden gedrückt gehalten werden, um den Flash-Vorgang manuell zu starten.