Arduino - MP3 Player baseado na web
Componentes e suprimentos
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Eu tenho um projeto semelhante usando apenas PHPoC aqui.
O tocador de MP3 pode ser útil em museus ou exposições para fornecer informações de voz aos visitantes sob demanda. Este projeto mostra como controlar MP3 via página da web usando o Arduino Uno.
Se você é um iniciante, pode aprender sobre o Arduino aqui.
MP3 player serial

O tocador de MP3 serial tem duas interfaces:
- jack para alto-falante
- interface para microcontrolador (neste projeto é o Arduino)
Ao receber um comando do microcontrolador (por exemplo, PLAY, PAUSE, VOLUME UP ...), o MP3 player lê o arquivo .mp3 do cartão SD e executa a ação com base no comando.
Antes de usar, é necessário copiar os arquivos .mp3 para o cartão SD e montá-lo no MP3 Player.
Fiação
- Empilhar escudo PHPoC no Arduino
- Conecte os pinos GND, VCC TX e RX do MP3 Player ao GND, 5V, pino 8 e pino 9 do Arduino, respectivamente.
Fluxo de dados
Navegador da Web ---> PHPoC WiFi Shield ---> Arduino
O aplicativo da web no navegador da web enviará comandos e dados com base no evento de toque ou clique para o escudo PHPoC via WebSocket. Ao receber o comando, o escudo PHPoC o passa para o Arduino. O Arduino envia o comando para o MP3 player de acordo com o comando recebido do PHPoC Shield.
Conjunto de comandos

Onde, XX é o valor do volume.
Observe que: O escudo PHPoC tem um programa embutido para passar dados do navegador da web para o Arduino. Portanto, não precisamos nos preocupar com isso.
O que precisamos fazer
- Definir informações de Wifi para escudo PHPoC (SSID e senha)
- Carregue uma nova IU para o escudo PHPoC
- Escreva o código do Arduino
Configurando informações de Wi-Fi para PHPoC Shield
Veja esta instrução.
Faça upload da nova IU da web para PHPoC Shield
- Baixe o código-fonte do PHPoC remote_mp3.php (na seção de código).
- Faça o upload para o escudo PHPoC usando o depurador PHPoC de acordo com esta instrução.
Observe que: Esta IU da Web contém um conjunto de comandos para enviar ao Arduino.
Escreva o código do Arduino
- Instale a biblioteca para Arduino no Arduino IDE (consulte as instruções) e reinicie o Arduino IDE.
- No IDE do Arduino, vá para Arquivo -> Exemplos -> Phpoc -> WebRemoteSlide.
- Modifiquei o exemplo (veja o código-fonte na seção de código).
Teste
- Clique no botão serial no Arduino IDE para ver o endereço IP.
- Abra o navegador da web, digite
http://
replace_ip_address
/remote_mp3.php
- Clique no botão conectar e teste.
O melhor Arduino Starter Kit para iniciantes
Veja o melhor kit Arduino para iniciantes
Referências de função
- Serial.begin ()
- Serial.println ()
- atraso ()
- milis ()
- para loop
- while loop
- se mais
- loop ()
- configuração ()
- String.toInt ()
- String.substring ()
- String.indexOf ()
- String.remove ()
- String.equals ()
Código
- Código Arduino
- Web IU (remote_mp3.php)
Código Arduino Arduino
#include "SPI.h" #include "Phpoc.h" #include#define ARDUINO_RX 8 // deve se conectar ao TX do módulo Serial MP3 Player # define ARDUINO_TX 9 // conectar ao RX de o moduleAltSoftSerial mySerial (ARDUINO_RX, ARDUINO_TX); estático int8_t Send_buf [8] ={0}; #define CMD_PLAY_NEXT 0x01 # define CMD_PLAY_PREV 0x02 # define CMD_PLAY_W_INDEX 0x03 # define CMD_SET_VOLUME 0x06 # define CMD_SEL_DEV 0x09 # define CMD_PLAY_W_VOL_W_VOL # define CMD_PLAY_W_INDEX 0x03 # define CMD_SET_VOLUME 0x06 # define CMD_SEL_DEV 0x09D_E define CMD_PLAY_W_VOL # Define CMD_FUSE_W_VOL # 0xCLAY # define CMD_ELAYDefine 0 0xCLAY 0 0x22 0x02 # define SINGLE_CYCLE_ON 0x00 # define SINGLE_CYCLE_OFF 0x01 // Arduino web server PhpocServer server (80); char name; int value; void setup () {mySerial.begin (9600); atraso (500); // espera que a inicialização do chip esteja completa sendCommand (CMD_SEL_DEV, DEV_TF); // seleciona o atraso do cartão TF (200); // aguarde 200 ms Serial.begin (9600); while (! Serial); Phpoc.begin (PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin (); server.beginWebSocket ("remote_slide"); Serial.print ("endereço do servidor WebSocket:"); Serial.println (Phpoc.localIP ());} void loop () {// esperar por um novo cliente:PhpocClient client =server.available (); if (cliente) {String slideStr =client.readLine (); if (slideStr) {name =slideStr.charAt (0); valor =slideStr.substring (1) .toInt (); if (nome =='P') {Serial.println ("Tocar mp3"); sendCommand (CMD_PLAY, 0x0000); } if (name =='S') {Serial.println ("Pausar mp3"); sendCommand (CMD_PAUSE, 0x0000); } if (name =='N') {Serial.println ("Tocar próximo mp3"); sendCommand (CMD_PLAY_NEXT, 0x0000); } if (name =='B') {Serial.println ("Tocar mp3 anterior"); sendCommand (CMD_PLAY_PREV, 0x0000); } if (name =='V') {Serial.print ("Alterar o volume para"); Serial.println (valor); sendCommand (CMD_SET_VOLUME, valor); }}}} void sendCommand (comando int8_t, int16_t dat) {delay (20); Send_buf [0] =0x7e; // byte inicial Send_buf [1] =0xff; // versão Send_buf [2] =0x06; // o número de bytes do comando sem iniciar o byte e finalizar o byte Send_buf [3] =comando; // Send_buf [4] =0x00; // 0x00 =sem feedback, 0x01 =feedback Send_buf [5] =(int8_t) (dat>> 8); // datah Send_buf [6] =(int8_t) (dat); // datal Send_buf [7] =0xef; // byte final para (uint8_t i =0; i <8; i ++) {mySerial.write (Send_buf [i]); }}
IU da Web (remote_mp3.php) PHP
PHPoC Shield - IoT MP3 Player
Controle remoto da Web / Reprodutor de MP3 IoT
WebSocket: nulo
Esquemas

Processo de manufatura