I2S Internet Radio op TTGO TM ESP32 – Web Radio

30 december 2022

Op plaatsen waar DAB Radio en FM radio slecht of helemaal niet te ontvangen zijn, biedt internet radio een mooi alternatief. Daarnaast is ook het ontvangen van radio uit andere continenten of het ontvangen van audiostreams is een interessante optie. Eerder deze week heb ik twee exemplaren van de TTGO TM ESP 32 ontvangen. Dit is een development board, gebaseerd op een ESP32, voorzien van een 2.4″ inch TFT ST7789 display, een PCM5102A IS2 DAC, micro SD-card, 4 buttons en een ingebouwde Li-ion/Li-Po lader. De I2S DAC maakt het ideaal platform voor audiotoepassingen, zoals bijvoorbeeld een internet radio. Voor dit project heb ik mezelf ten doel gesteld binnen één middag een werkende internet radio te realiseren.

Voor het realiseren van een internet radio zijn er verschillende componenten die gekoppeld moeten worden. Zo moet er een http connectie worden opgezet met een streaming server. Deze stream moet worden omgezet in een I2S signaal en met de I2S DAC omgezet naar een radio broadcast op de luidspreker. Daarnaast is er ook interactie met de gebruiker noodzakelijk. Een display welke het gekozen kanaal weergeeft en daarnaast de mogelijkheid biedt om het spelende nummer als tekst weer te geven. En natuurlijk een datum en klok weergave. Voor de bediening van een internet radio is het mogelijk om naast fysieke buttons ook een web interface toe te passen. Hier kunnen dan ook direct nieuwe audio streams worden geupload en worden onderhouden.

Voor deze internet radio heb ik gebruik gemaakt van beschikbare libraries en pre-compiled components. Na het flashen van de bin files maakt de radio zich bekend als access point en kunnen de login/password details meegegeven worden om deze in het lokale netwerk op te laten nemen. Na het rebooten is de radio beschikbaar, geeft het radio-kanaal en het gespeelde weer.

Ik merk dat ik het Espressif ESP32 platform steeds vaker inzet. De rekenkracht, beschikbaarheid en brede inzetbaarheid maken het multifunctioneel inzetbaar. Mijn tweede TTGO TM ESP32 ga ik inzetten als CircuitPython REPL board, waarmee ik snel en interactief kan prototypen. Hierover binnenkort meer.