亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino - 基于网络的 MP3 播放器

组件和用品

Arduino UNO
× 1
适用于 Arduino 的 PHPoC WiFi 扩展板
我们可以使用 PHPoC Shield for Arduino 代替
× 1
来自 Catalex 的串行 MP3 播放器
× 1
微型 SD 卡
× 1
扬声器
× 1

关于这个项目

我有一个类似的项目,这里只使用 PHPoC。

MP3 播放器在博物馆或展览中很有用,可根据需要向参观者提供基于语音的信息。该项目展示了如何使用 Arduino Uno 通过网页控制 MP3。

如果您是初学者,您可以在这里了解 Arduino。

串行 MP3 播放器

串口MP3播放器有两个接口:

  • 插孔至扬声器
  • 微控制器接口(在这个项目中是 Arduino)

当接收到来自微控制器的命令(例如播放、暂停、音量增大...)时,MP3 播放器从 SD 卡读取 .mp3 文件并根据命令执行操作。

使用前需要将.mp3文件复制到SD卡上,并挂载到MP3播放器中。

接线

  • 在 Arduino 上堆叠 PHPoC 扩展板
  • 将 MP3 Player 的 GND、VCC TX 和 RX 引脚分别连接到 Arduino 的 GND、5V、引脚 8 和引脚 9。

数据流

Web 浏览器 ---> PHPoC WiFi Shield ---> Arduino

Web 浏览器上的 Web 应用程序将基于触摸或点击事件通过 WebSocket 向 PHPoC 盾发送命令和数据。收到命令后,PHPoC shield 将其传递给 Arduino。 Arduino根据从PHPoC Shield接收到的命令向MP3播放器发送命令。

命令集

其中,XX为体积值。

注意: PHPoC shield 有一个内置程序可以将数据从网络浏览器传递到 Arduino。因此,我们不需要关心它。

我们需要做什么

  • 为 PHPoC shield 设置 Wifi 信息(SSID 和密码)
  • 将新 UI 上传到 PHPoC shield
  • 编写 Arduino 代码

为 PHPoC Shield 设置 Wifi 信息

请参阅此说明。

将新的 Web UI 上传到 PHPoC Shield

  • 下载 PHPoC 源代码 remote_mp3.php(在代码部分)。
  • 根据此说明使用 PHPoC 调试器将其上传到 PHPoC shield。

注意: 此 Web UI 包含要发送到 Arduino 的命令集。

编写 Arduino 代码

  • 在 Arduino IDE 上安装 Arduino 库(请参阅说明)并重新启动 Arduino IDE。
  • 在 Arduino IDE 上,转到文件 -> 示例 -> Phpoc -> WebRemoteSlide。
  • 我修改了示例(请参阅代码部分中的源代码)。

测试

  • 单击 Arduino IDE 上的串行按钮以查看 IP 地址。
  • 打开网页浏览器,输入http:// replace_ip_address /remote_mp3.php
  • 点击连接按钮并进行测试。

适合初学者的最佳 Arduino 入门套件

查看适合初学者的最佳 Arduino 套件

函数参考

  • Serial.begin()
  • Serial.println()
  • 延迟()
  • millis()
  • for 循环
  • while 循环
  • 否则
  • 循环()
  • 设置()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()

代码

  • Arduino 代码
  • Web IU (remote_mp3.php)
Arduino 代码Arduino
#include "SPI.h"#include "Phpoc.h"#include  #define ARDUINO_RX 8 // 应该连接到串行 MP3 播放器模块的 TX#define ARDUINO_TX 9 // 连接到 RX模块AltSoftSerial mySerial(ARDUINO_RX, ARDUINO_TX);静态中int8_t Send_buf [8] ={0};#定义CMD_PLAY_NEXT 0×01#限定CMD_PLAY_PREV 0×02#限定CMD_PLAY_W_INDEX×03#限定CMD_SET_VOLUME 0×06#限定CMD_SEL_DEV 0×09#限定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 web server 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("remote_slide"); Serial.print("WebSocket 服务器地址:"); Serial.println(Phpoc.localIP());} void loop() { // 等待新客户端:PhpocClient client =server.available(); if (client) { String slideStr =client.readLine(); if(slideStr) { name =slideStr.charAt(0); value =slideStr.substring(1).toInt(); if(name =='P') { Serial.println("播放 mp3");发送命令(CMD_PLAY,0x0000); } if(name =='S') { Serial.println("暂停 mp3");发送命令(CMD_PAUSE,0x0000); } if(name =='N') { Serial.println("播放下一个 mp3");发送命令(CMD_PLAY_NEXT,0x0000); } if(name =='B') { Serial.println("播放上一个 mp3");发送命令(CMD_PLAY_PREV,0x0000); } if(name =='V') { Serial.print("将音量改为"); Serial.println(值);发送命令(CMD_SET_VOLUME,值); } } }} void sendCommand(int8_t command, int16_t dat){ delay(20);发送缓冲区[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); // datah Send_buf[6] =(int8_t)(dat); // datal Send_buf[7] =0xef; // 结束字节 for(uint8_t i=0; i<8; i++) { mySerial.write(Send_buf[i]); }}
Web IU (remote_mp3.php)PHP
PHPoC Shield - IoT MP3 播放器

Web 远程控制/物联网 MP3 播放器

WebSocket :null

示意图


制造工艺

  1. 弹奏钢琴
  2. Arduino Spybot
  3. FlickMote
  4. 自制电视 B-Gone
  5. 主时钟
  6. 找到我
  7. Arduino Power
  8. 在 Arduino 中播放音频
  9. Tech-TicTacToe
  10. Arduino Quadruped
  11. Arduino Joystick
  12. 数控机床