UART MP3 (обновлено: 26 Mar 2023, 14:19:49)

Управление UART MP3 плеером MP3-TF-16P (YX5200)  и  UART Control Serial MP3 Music Player (YX5300). Очередь треков. Говорящие часы. Произношение данных с датчиков.

Опцию поддерживают чипы ESP8266 и ESP32. НО для ESP32 есть альтернатива - встроенный MP3/WAV плеер в опции SD&SPIFFS !

Плеер на основе MH2024 не поддерживается !


Если в прошивке ESP32 установлена опция SD&SPIFFS с дополнением конструктора фраз, то для работы именно с UART MP3 требуется в настройках SD&SPIFFS выбрать проигрывание конструктора фраз с MP3 UART.

На ESP32 в дополнительных настройках опции необходимо указать номер UART, который не будет пересекаться с номерами других UART устройств.

Подключение плеера YX5200:

VCC -питание от 3.3 до 5 вольт.

USB - , USB + - подключение к USB в качестве flash накопителя.

DAC_R, DAC_L  - не усиленный аудио выход

SPK_1 , SPK_2 - подключение динамика до 3вт.

RX - подключение к ESP8266/ESP32 к GPIO2. У ESP32 вывод можно переназначить в дополнительных настройках!

На ESP8266 RTOS есть возможность менять номер UART , по умолчанию 0 уарт на GPIO 1, 1 - GPIO 2.

TX - передача от MP3 плеера, не используется.

BUSY - подключается обязательно на GPIO 14 (переназначается в дополнительных настройках). Используется для воспроизведения очереди треков

Подключение плеера YX5300

У YX5300 модулей не выведен сигнал BUSY. Но к нему можно подпаяться к выводу 10 микросхемы( информация не проверена!)

Некоторые команды

1 - следующий трек

2 - предыдущий трек

3 - выбор трека по физическому номеру(в порядке записанными на карту). Параметр - номер трека.

6 - управление громкостью. Параметр - уровень громкости 0..30.

7  - эквалайзер. Параметр - пред установка эквалайзера  0/1/2/3/4/5 соответствует Normal/Pop/Rock/Jazz/Classic/Bass

13 - воспроизвести

14 - пауза

18 - выбор трека по номеру имени файла. Параметр - номер трека.

22 - стоп

24 - случайный трек


Управление через GET команду

Управление MP3 плеером осуществляется через GET команду http://[ip адрес]/mp3play?cmd=команда&data=параметр . Список команд смотрите выше.

Для проигрывания очереди треков необходимо подать команду http://[ip адрес]/mp3playqueue?data=номера_треков . Номера треков пишутся через запятую. 0 - пауза, номера больше 1000 - пауза в секундах , например 1010  - 10 секунд. 1005 - 5 секунд. Обязательное подключение BUSY !

Управление через MQTT

Топик  login/hostname/mp3play - проиграть указанный трек.

Топик  login/hostname/mp3queue - проиграть очередь треков указанные через запятую.

Топик  login/hostname/mp3cmd- отправить команду модулю. Список команд смотрите выше

Топик  login/hostname/mp3vol - установить громкость.

Управление через Interpreter

Описание команд в общем списке опции Interpreter.

Управление через планировщик заданий

При установленной функции планировщика заданий возможно включение заданного трека в определенное время, например в качестве музыкального будильника. Подробное описание функции смотреть в соответствующей опции.

Управление через логический модуль (Logic2)

При установленной функции Logic2 возможно звуковое оповещение при срабатывании какого либо события в логической цепочке. Подробное описание функции смотреть в соответствующей опции.

Размещение файлов на SD карте

Необходимо в папку "mp3" скопировать файлы треков с именами вида xxxx.mp3 , например 0001.mp3 , после номера может быть указано название трека.

Набор русскоязычных треков с поддержкой цифр, говорящих часов качаем здесь (обновлено 17.08.16)

В наборе нет треков произношения сотен (файлы 100-109) и тысяч (файлы 110-119) ,  а так же кода ошибки (файл 200).

Говорящие часы

При обращении к GPIO 193 можно вызвать произношение текущего времени из функций прошивки. Номер GPIO зависит от количества установленных фраз, рекомендуется смотреть карту GPIO на устройстве. Не забываем закачать архив звуков на флеш карту.

Конструктор фраз(после 17.04.21)

Модуль прошивки поддерживает конструктор фраз, который позволяет создать фразу из треков на flash карте вместе с произношением данных с датчиков устройства.

В редакторе фраз необходимо через запятую ввести номера треков и метрики датчиков.

Новый формат введен 17.04..21 и использует метрики со справочной вкладки Metrics самого модуля. Дополнительные метрики:

TIME - текущее время.

Px - пауза в секундах, х - необходимое время. Например P3 вставит паузу на 3 секунды. P - англ буква !

Простое число - номер трека для вставки. 

Пример: TIME,P1,42,nm1,P1,41,d2d0101 , синтез фразы используя температуру с Narodmon Get и D2D.

Конструктор фраз(до 17.04.21)

Модуль прошивки поддерживает конструктор фраз, который позволяет создать фразу из треков на flash карте вместе с произношением данных с датчиков устройства.

В редакторе фраз необходимо через запятую ввести номера треков и номера датчиков, ноль - это пауза между словами.

Номера датчиков указываются с буквой впереди:

Sxx - произношение числа, где xx - номер датчика , например S11 произнесет значение датчика ds18b20 .

Txx - произношение числа, где хх - номер датчика, с произношением слова "градусы" в правильном склонении , например T11 произнесет значение датчика ds18b20 вместе со словом "градусов".

Пример строки:

41,T11,0,42,T12 - значит произнесет примерно следующее: "В комнате 30 градусов , на улице 21 градус". 41 - это номер трека "в комнате" , 42 - номер трека "на улице". Первый датчик DS18B20 находится в комнате, второй - на улице.

Список номеров датчиков находится в конце статьи.

Вызов фразы осуществляется через обращение к 190-192 GPIO из функций модуля. Доступна установка трех фраз.

Отладка очереди треков

На странице http://[ip адрес]/mp3queueprint можно посмотреть порядок треков при проигрывании через очередь и при их формировании говорящими часами или конструктором фраз.


Если продавец прислал не рабочий MP3 модуль...

То советую проверить указанный резистор, он должен быть 4.7 Ом (4R7) , а не 4.7кОм(473) . Спасибо olegr70 за подсказку.


Обсуждение на форуме.

Пример уведомления времени или фраз каждый час через Logic2

Время будет произносится каждый час с 7 до 21 часа включительно.

В "Event options" указываем режим GPIO и устанавливаем 193 GPIO (или 190 для первой фразы), который соответствует говорящим часам:

В первом шаге указываем интервал срабатывания логики в 60 минут, если верно, то переходим к следующему шагу, иначе event=0:

Во втором шаге ставим условие, что время срабатывания должно быть меньше 22 часов, если верно, то переходим к следующему шагу, иначе event=0:

В третьем шаге указываем , что время срабатывания должно быть больше 6 часов, если верно, то в GPIO передаем 1, иначе - 0 :


Цифровые метрики для конструктора фраз (до 17.04.21):

Key
- Данные с Device to Device(D2D)
- Apparent Power CSE7766
- Power Factor CSE7766
1-2 Температура датчиков DHT22 DHT11
11-20 Температура датчиков DS18B20
1yx Данные с датчиков Virtual SENS
21-22 Данные с счетчика 60
23 Температура с датчика BME280
24 Влажность с датчика BME280
25 Давление с датчика BME280
3-4 Влажность датчиков DHT22 DHT11
31-35 Принятые данные с датчиков narodmon.ru
3XX Состояние GPIO
5 Температура датчиков BMP180/085
6 Давление датчиков BMP180/085
7 Температура с датчика AM2321
8 Влажность с датчика AM2321
S9 Время