Arduino - MP3-плеер с веб-интерфейсом
Компоненты и расходные материалы
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Об этом проекте
У меня есть аналогичный проект, использующий здесь только PHPoC.
MP3-плеер может быть полезен в музее или на выставке для предоставления голосовой информации посетителям по запросу. В этом проекте показано, как управлять MP3 через веб-страницу с помощью Arduino Uno.
Если вы новичок, вы можете узнать об Arduino здесь.
Последовательный MP3-плеер
Последовательный MP3-плеер имеет два интерфейса:
- разъем к динамику
- интерфейс к микроконтроллеру (в этом проекте - Arduino)
При получении команды от микроконтроллера (например, PLAY, PAUSE, VOLUME UP ...) MP3-плеер считывает файл .mp3 с SD-карты и выполняет действия в соответствии с командой.
Перед использованием необходимо скопировать файлы .mp3 на SD-карту и подключить к MP3-плееру.
Электропроводка
- Стек PHPoC Shield на Arduino
- Подключите контакты GND, VCC TX и RX MP3-плеера к GND, 5V, контактам 8 и 9 Arduino соответственно.
Поток данных
Веб-браузер ---> PHPoC WiFi Shield ---> Arduino
Веб-приложение в веб-браузере будет отправлять команды и данные на основе события касания или щелчка на экран PHPoC через WebSocket. При получении команды щит PHPoC передает ее Arduino. Arduino отправляет команду MP3-плееру в соответствии с командой, полученной от PHPoC Shield.
Набор команд
Где XX - значение объема.
Обратите внимание: В PHPoC shield есть встроенная программа для передачи данных из веб-браузера в Arduino. Поэтому нам не нужно об этом заботиться.
Что нам нужно делать
- Установить информацию о Wi-Fi для экрана PHPoC (SSID и пароль)
- Загрузить новый интерфейс на PHPoC Shield
- Напишите код Arduino
Настройка информации о Wi-Fi для PHPoC Shield
См. Эту инструкцию.
Загрузите новый веб-интерфейс в PHPoC Shield
- Загрузите исходный код PHPoC remote_mp3.php (в разделе кода).
- Загрузите его на экран PHPoC Shield с помощью отладчика PHPoC в соответствии с этой инструкцией.
Обратите внимание: Этот веб-интерфейс содержит набор команд для отправки в Arduino.
Написать код Arduino
- Установите библиотеку для Arduino в Arduino IDE (см. инструкцию) и перезапустите Arduino IDE.
- В среде Arduino IDE выберите Файл -> Примеры -> Phpoc -> WebRemoteSlide.
- Я изменил пример (см. исходный код в разделе кода).
Тестирование
- Нажмите кнопку последовательного порта в среде Arduino IDE, чтобы увидеть IP-адрес.
- Откройте веб-браузер, введите
http://
replace_ip_address
/remote_mp3.php
- Нажмите кнопку подключения и проверьте ее.
Лучший стартовый комплект Arduino для начинающих
См. «Лучший комплект Arduino для начинающих»
Ссылки на функции
- Serial.begin ()
- Serial.println ()
- delay ()
- миллис ()
- цикл для
- цикл while
- если еще
- цикл ()
- setup ()
- String.toInt ()
- String.substring ()
- String.indexOf ()
- String.remove ()
- String.equals ()
Код
- Код Arduino
- Веб-интерфейс пользователя (remote_mp3.php)
Код Arduino Arduino
#include "SPI.h" #include "Phpoc.h" #include#define ARDUINO_RX 8 // должен подключаться к TX модуля последовательного MP3-плеера #define ARDUINO_TX 9 // подключаться к RX из модульAltSoftSerial mySerial (ARDUINO_RX, ARDUINO_TX); статические int8_t Send_buf [8] ={0}; #define CMD_PLAY_NEXT 0x01 # определить CMD_PLAY_PREV 0x02 # определить CMD_PLAY_W_INDEX 0x03 # определить CMD_SET_VOLUME 0x06 # определить CMD_SEL_DEV 0x09 # определить CMD_PLAY_W_VOL 0x22 # определить CMD_PLAY 0x0D # определить CMD_PAUSE 0x0E # определить CMD_SINGLE_CYCLE 0x19 # определить DEV_TF 0x02 # define SINGLE_CYCLE_ON 0x00 # define SINGLE_CYCLE_OFF 0x01 // веб-сервер Arduino PhpocServer server (80); char name; int value; void setup () {mySerial.begin (9600); задержка (500); // ожидание завершения инициализации микросхемы sendCommand (CMD_SEL_DEV, DEV_TF); // выбираем задержку TF карты (200); // ждем 200 мс Serial.begin (9600); в то время как (! серийный); Phpoc.begin (PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin (); server.beginWebSocket ("удаленный_ слайд"); Serial.print ("Адрес сервера WebSocket:"); Serial.println (Phpoc.localIP ());} void loop () {// ждем нового клиента:PhpocClient client =server.available (); если (клиент) {String slideStr =client.readLine (); если (slideStr) {имя =slideStr.charAt (0); значение =slideStr.substring (1) .toInt (); if (name =='P') {Serial.println ("Воспроизвести mp3"); sendCommand (CMD_PLAY, 0x0000); } if (name =='S') {Serial.println ("Приостановить mp3"); sendCommand (CMD_PAUSE, 0x0000); } if (name =='N') {Serial.println ("Воспроизвести следующий mp3"); sendCommand (CMD_PLAY_NEXT, 0x0000); } if (name =='B') {Serial.println ("Воспроизвести предыдущий mp3"); sendCommand (CMD_PLAY_PREV, 0x0000); } if (name =='V') {Serial.print ("Изменить громкость на"); Serial.println (значение); sendCommand (CMD_SET_VOLUME, значение); }}}} void sendCommand (команда int8_t, int16_t dat) {задержка (20); Send_buf [0] =0x7e; // начальный байт Send_buf [1] =0xff; // версия Send_buf [2] =0x06; // количество байтов команды без начального и конечного байтов Send_buf [3] =command; // Send_buf [4] =0x00; // 0x00 =нет обратной связи, 0x01 =обратная связь Send_buf [5] =(int8_t) (dat>> 8); // данныеh Send_buf [6] =(int8_t) (dat); // данные Send_buf [7] =0xef; // конечный байт для (uint8_t i =0; i <8; i ++) {mySerial.write (Send_buf [i]); }}
Web IU (remote_mp3.php) PHP
PHPoC Shield - IoT MP3 Player
Веб-пульт дистанционного управления / MP3-плеер IoT
WebSocket: null
Схема
Производственный процесс