174

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 бит

Схема Интернет радио

  1. Название станции (бегущая строка)

  2. Номер станции и скорость потока

  3. Настройки радио:

    • Громкость (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",

"http://live.novoeradio.by:8000/narodnoe-radio-128k",

"http://listen1.myradio24.com:9000/3355",

кол-во станций

#define CH  5  // кол-во станций

Управление Интернет радио осуществляется при помощи энкодера и двух кнопок. Кнопки позволяют переключать каналы станций, а энкодер регулировать параметры громкости, баланса и тембра. Кнопка энкодера осуществляет переход по пунктам меню.

Как добавить ESP32 в среду Ardiuno IDE можно узнать на странице http://rcl-radio.ru/?p=92558

Версия платы должна быть не ниже 1.0.5

Плата ESP32 Dev Module

Скетч - http://rcl-radio.ru/?p=120767

Больше постов читайте по тегу «Программирование». А если хотите изучить новую профессию, посмотрите актуальные курсы от проверенных школ с реальными отзывами на сайте Пикабу Курсы.

TECHNO BROTHER

2.1K пост13.6K подписчиков

Правила сообщества

1-Мы А-политическое сообщество. 2-Запрещено оскорбление: Администрации Пикабу, сообщества, участников сообщества а также родных, близких выше указанных.

3-Категорически запрещается разжигание межнациональной розни или действий, направленных на возбуждение национальной, расовой вражды, унижение национального достоинства, а также высказывания о превосходстве либо неполноценности пользователей по признаку их отношения к национальной принадлежности или политических взглядов. Мат - Нежелателен. Учитесь выражать мысли без матерщины