산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Arduino - 웹 기반 MP3 플레이어

구성품 및 소모품

Arduino UNO
× 1
Arduino용 PHPoC WiFi 실드
아두이노용 PHPoC 실드를 대신 사용할 수 있습니다.
× 1
Catalex의 직렬 MP3 플레이어
× 1
마이크로 SD 카드
× 1
스피커
× 1

이 프로젝트 정보

여기에 PHPoC만 사용하는 비슷한 프로젝트가 있습니다.

MP3 플레이어는 박물관이나 전시회에서 방문객에게 음성 기반 정보를 요청에 따라 제공하는 데 유용할 수 있습니다. 이 프로젝트는 Arduino Uno를 사용하여 웹페이지를 통해 MP3를 제어하는 ​​방법을 보여줍니다.

초보자라면 여기에서 Arduino에 대해 배울 수 있습니다.

직렬 MP3 플레이어

직렬 MP3 플레이어에는 두 가지 인터페이스가 있습니다.

<울>
  • 스피커에 잭
  • 마이크로 컨트롤러에 대한 인터페이스(이 프로젝트에서는 Arduino)
  • 마이크로 컨트롤러(예:PLAY, PAUSE, VOLUME UP...)에서 명령을 수신하면 MP3 플레이어는 SD 카드에서 .mp3 파일을 읽고 명령에 따라 작업을 수행합니다.

    사용하기 전에 .mp3 파일을 SD 카드에 복사하고 MP3 플레이어에 마운트해야 합니다.

    배선

    <울>
  • Arduino에 PHPoC 실드 스택
  • MP3 Player의 GND, VCC TX, RX 핀을 Arduino의 GND, 5V, 8번 핀, 9번 핀에 각각 연결합니다.
  • 데이터 흐름

    웹 브라우저 ---> PHPoC WiFi 쉴드 ---> Arduino

    웹 브라우저의 웹 앱은 WebSocket을 통해 PHPoC 쉴드에 터치 또는 클릭 이벤트를 기반으로 명령 및 데이터를 보냅니다. 명령을 받으면 PHPoC 쉴드는 아두이노에 전달합니다. 아두이노는 PHPoC Shield에서 받은 명령에 따라 MP3 플레이어에 명령을 보냅니다.

    명령 세트

    여기서 XX는 볼륨 값입니다.

    참고: PHPoC 실드에는 웹 브라우저에서 Arduino로 데이터를 전달하는 프로그램이 내장되어 있습니다. 따라서 신경 쓸 필요가 없습니다.

    우리가 해야 할 일

    <울>
  • PHPoC 쉴드에 대한 Wi-Fi 정보 설정(SSID 및 비밀번호)
  • PHPoC 쉴드에 새로운 UI 업로드
  • Arduino 코드 작성
  • PHPoC 쉴드용 Wi-Fi 정보 설정

    이 지침을 참조하십시오.

    PHPoC Shield에 새로운 웹 UI 업로드

    <울>
  • PHPoC 소스 코드 remote_mp3.php를 다운로드합니다(코드 섹션에 있음).
  • 이 지침에 따라 PHPoC 디버거를 사용하여 PHPoC 쉴드에 업로드합니다.
  • 참고: 이 웹 UI에는 Arduino로 보내도록 설정된 명령이 포함되어 있습니다.

    Arduino 코드 작성

    <울>
  • Arduino IDE에 Arduino용 라이브러리를 설치하고(지침 참조) Arduino IDE를 다시 시작합니다.
  • Arduino IDE에서 파일 -> 예제 -> Phpoc -> WebRemoteSlide로 이동합니다.
  • 예시를 수정했습니다(코드 섹션의 소스 코드 참조).
  • 테스트

    <울>
  • 아두이노 IDE에서 시리얼 버튼을 클릭하면 IP 주소를 볼 수 있습니다.
  • 웹 브라우저를 열고 http://를 입력합니다. replace_ip_address /remote_mp3.php
  • 연결 버튼을 클릭하고 테스트합니다.
  • 초보자를 위한 최고의 Arduino 스타터 키트

    초보자를 위한 최고의 Arduino 키트 보기

    함수 참조

    <울>
  • Serial.begin()
  • Serial.println()
  • 지연()
  • 밀리()
  • for 루프
  • while 루프
  • 다른 경우
  • 루프()
  • 설정()
  • String.toInt()
  • String.substring()
  • String.indexOf()
  • String.remove()
  • String.equals()
  • <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • Arduino 코드
  • 웹 아이유(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); Send_buf int8_t 고정 [8] ={0} #DEFINE의 CMD_PLAY_NEXT하는 0x01 # 1의 0x19 #가 DEV_TF 정의 CMD_SINGLE_CYCLE 정의 CMD_PAUSE 0x0E 번호를 정의 0x22 #가 CMD_PLAY 0x0d로 번호를 정의은 0x09 #가 CMD_PLAY_W_VOL 정의에는 0x06 #가 CMD_SEL_DEV 정의은 0x03 #가 CMD_SET_VOLUME 정의는 0x02 #가 CMD_PLAY_W_INDEX 정의 CMD_PLAY_PREV 정의 0x02#define SINGLE_CYCLE_ON 0x00#define SINGLE_CYCLE_OFF 0x01// 아두이노 웹 서버 PhpocServer 서버(80);문자명;int 값; 무효 설정() { mySerial.begin(9600); 지연(500); // 칩 초기화 완료 대기 sendCommand(CMD_SEL_DEV, DEV_TF); // TF 카드 선택 지연(200); // 200ms 대기 Serial.begin(9600); 동안(! 직렬); Phpoc.begin(PF_LOG_SPI | PF_LOG_NET); //Phpoc.begin(); server.beginWebSocket("원격_슬라이드"); Serial.print("웹소켓 서버 주소 :"); Serial.println(Phpoc.localIP());} void loop() { // 새 클라이언트를 기다립니다. PhpocClient client =server.available(); if (클라이언트) { 문자열 SlideStr =client.readLine(); if(slideStr) { 이름 =SlideStr.charAt(0); 값 =slideStr.substring(1).toInt(); if(이름 =='P') { Serial.println("mp3 재생"); sendCommand(CMD_PLAY, 0x0000); } if(이름 =='S') { Serial.println("mp3 일시 중지"); sendCommand(CMD_PAUSE, 0x0000); } if(이름 =='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, 값); } } }} 무효 sendCommand(int8_t 명령, int16_t 데이터){ 지연(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); // 데이터 Send_buf[6] =(int8_t)(dat); // 데이터 Send_buf[7] =0xef; // 종료 바이트 for(uint8_t i=0; i<8; i++) { mySerial.write(Send_buf[i]); }}
    웹 아이유(remote_mp3.php)PHP
    PHPoC Shield - IoT MP3 플레이어<스타일>본문 { 텍스트 정렬:가운데; 글꼴 크기:15pt; }h1 { 글꼴 두께:굵게; 글꼴 크기:25pt; }h2 { 글꼴 두께:굵게; 글꼴 크기:15pt; }버튼 { 글꼴 두께:굵게; 글꼴 크기:15pt; }

    웹 원격 제어/IoT MP3 플레이어

    웹소켓:null

    회로도


    제조공정

    1. 피아노 연주자
    2. Arduino 스파이봇
    3. FlickMote
    4. 수제 TV B-Gone
    5. 마스터 시계
    6. 나를 찾기
    7. Arduino Power
    8. Arduino에서 오디오 재생
    9. Tech-TicTacToe
    10. Arduino Quadruped