ESP32 + PCM5102A — интернет радио (2) (Arduino)
Ранее в статье http://rcl-radio.ru/?p=111051 рассматривался пример создания интернет-радио на основе ESP32 (ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32) и звукового ЦАП PMC5102A с использованием дисплея LCD1602 + I2C, в этой статье аналогичный пример, но с использованием дисплея 0.96′ I2C 128X64 OLED.
В Интернет радио использованы следующие компоненты:
ESP32 DevKit v1 Wi-Fi Bluetooth ESP32-WROOM-32
DAC PCM5102A
0.96′ I2C 128X64 OLED
Энкодер KY-040 (модуль)
Тактовая кнопка — 2 шт
В OLED дисплее отсутствует дополнительный слой подсветки всей поверхности экрана. Каждый пиксел, формирующий изображение, испускает самостоятельное свечение. При этом картинка получается яркой и контрастной.
Управление OLED дисплеем в данном примере осуществляется при помощи шины I2C.
Параметры дисплея SSD1306:
Технология дисплея: OLED
Разрешение дисплея: 128 на 64 точки
Диагональ дисплея: 0,96 дюйма
Угол обзора: 160°
Напряжение питания: 2.8 В ~ 5.5 В
Мощность: 0,08 Вт
Габариты: 27.3 мм х 27.8 мм х 3.7 мм
ESP32
ESP32 — серия недорогих микроконтроллеров с низким энергопотреблением. Представляют собой систему на кристалле с интегрированным Wi-Fi и Bluetooth контроллерами и антеннами. В серии ESP32 используется микроконтроллерное ядро Tensilica Xtensa LX6 в вариантах с двумя и одним ядром. В систему интегрирован радиочастотный тракт: симметрирующий трансформатор, встроенные антенные коммутаторы, радиочастотные компоненты, малошумящий усилитель, усилитель мощности, фильтры и модули управления питанием. ESP32 создан и разработан компанией Espressif Systems, китайской компанией, расположенной в Шанхае, а производится компанией TSMC по техпроцессу 40 нм. Серия является преемником микроконтроллеров ESP8266.
Характеристики ESP32 DevKit v1:
микроконтроллер: ESP32-WROOM-32
процессор: 2-ядерный Xtensa Dual-Core 32-bit LX6
тактовая частота процессора: 80, 160 или 240 МГц
оперативная память: 520 Кбайт;
флэш-память: 448 Кбайт;
преобразователь USB – UART
количество выводов платы: 30;
Bluetooth: спецификации 4.2 с функциями BR/EDR и Low Energy
WiFi: стандарта IEEE 802.11b/g/n/e/i безопасность WFA, WPA/WPA2 и WAPI на частоте 2,4 ГГц со скоростью до 150 Мбит/с, встроенный стек TCP/IP
антенна: PCB
режимы беспроводной связи: STA/AP/STA+AP
расстояние приема/передачи в идеальных условиях: 400 м;
периферия: АЦП 12 бит до 18 каналов, ЦАП 8 бит 2 канала, датчик температуры, 4x SPI, 2x I2S, 2x I2C, 3x UART, Ethernet контроллер, CAN 2.0, ведущий SD/eMMC/SDIO, ведомый SDIO/SPI, инфракрасный приемопередатчик, ШИМ до 16 каналов, датчик Холла, аналоговый предусилитель, шифровальщики, хешеры, генератор случайных чисел
поддерживаемые среды разработки: Arduino IDE, PlatformIO, Espressif IDF (IoT Development Framework), Micropython, JavaScript, LUA
PCM5102A
Напряжение однополярное … 3,3 В
Отношение сигнал/шум … 112 дБ
Динамический диапазон … 112 дБ
Уровень нелинейных искажений (THD+N) … -93 дБ
Выходное напряжение … 2.1 Vrms
Поддерживаемая частота дискретизации от 8 кГц до 384 кГц
Поддержка входных форматов данных … I2S, Left-Justified / 16, 24 и 32 бит
Схема Интернет радио
Название станции (бегущая строка)
Номер станции и скорость потока
Настройки радио:
Громкость (0…22 уровень)
Баланс (±16 дБ)
Bass (-40…+16 дБ)
Middle (-40…+16 дБ)
Treble (-40…+16 дБ)
Интернет радио не содержит WEB страницы, все параметры и url адреса станций необходимо заносить в скетч:
авторизация в сети
String ssid = "Keenetic-9009"; // ssid сети WI-FI
String password = "32481975"; // пароль от сети WI-FI
список станций
"https://rusradio.hostingradio.ru/rusradio96.aacp",
"https://str.pcradio.ru/funradio_sk_80s90s-hi",
"http://radio.promodj.com:8000/186mph-192",
кол-во станций
#define CH 5 // кол-во станций
Управление Интернет радио осуществляется при помощи энкодера и двух кнопок. Кнопки позволяют переключать каналы станций, а энкодер регулировать параметры громкости, баланса и тембра. Кнопка энкодера осуществляет переход по пунктам меню.
Как добавить ESP32 в среду Ardiuno IDE можно узнать на странице http://rcl-radio.ru/?p=92558
Версия платы должна быть не ниже 1.0.5
Плата ESP32 Dev Module
Скетч - http://rcl-radio.ru/?p=120767