NodeMCU에서 제공하는 웹서버 기능을 이용해서 MP3모듈의 기능을 웹으로 제공합니다.

다양한 스피커들을 모아 봤습니다.

회로를 꾸며보았습니다.

<a href='/prev'>prev</a><br><a href='/next'>next</a><br><a href='/stop'>stop</a><br><a href='/up'>up</a><br><a href='/down'>down</a><br>
입니다.
#include <DFPlayer_Mini_Mp3.h>
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <SoftwareSerial.h>
#include <ESP8266HTTPClient.h>
const char* ssid = "****";
const char* password = "****";
ESP8266WebServer server(80);
#define PULLUP_BTN D3
SoftwareSerial mp3Serial(D1, D2); // RX, TX
int pullUp = 0;
int volume = 30;
void setup () {
Serial.begin (9600);
mp3Serial.begin (9600);
pinMode(PULLUP_BTN , INPUT_PULLUP);
mp3_set_serial (mp3Serial);
mp3_set_volume (volume);
mp3_stop();
// ip 주소 지정하기
IPAddress ipaddr(192,168,0,103);
IPAddress gate(192,168,0,1);
IPAddress subnet(255,255,255,0);
WiFi.mode(WIFI_STA);
WiFi.config(ipaddr, gate, subnet);
WiFi.begin(ssid, password);
while (WiFi.status( ) != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP( ));
// 웹브라우저 접속 주소
server.on("/", [ ]( ){
server.send(200, "text/html", "");
});
// music next
server.on("/next", [ ]( ){
mp3_stop ();
delay(100);
mp3_next ();
Serial.println("Start next...");
delay(1000);
server.send(200, "text/html", "[htmlcode]");
});
// music prev
server.on("/prev", [ ]( ){
mp3_stop ();
delay(100);
mp3_prev ();
Serial.println("Start prev...");
delay(1000);
server.send(200, "text/html", "[htmlcode]");
});
// off
server.on("/stop", [ ]( ){
mp3_stop();
Serial.println("stop...");
server.send(200, "text/html", "[htmlcode]");
});
// play
server.on("/play", [ ]( ){
String no = server.arg("no");
mp3_play(no.toInt());
mp3_play();
server.send(200, "text/plain", "play no : " + no);
});
// volume up
server.on("/up", [ ]( ){
int temp1 = volume + 3;
if(temp1 >= 30 ) {
temp1 = 30;
}
volume = temp1;
mp3_set_volume (volume);
Serial.println("up..." + volume);
server.send(200, "text/html", "[htmlcode]");
});
// volume down
server.on("/down", [ ]( ){
int temp2 = volume - 3;
if(temp2 <= 0 ) {
temp2 = 0;
}
volume = temp2;
mp3_set_volume (volume);
Serial.println("down..." + volume);
server.send(200, "text/html", "<a href='[htmlcode]");
});
//웹서버 시작
server.begin();
Serial.println("HTTP server started");
}
void loop () {
pullUp = digitalRead(PULLUP_BTN);
if(!pullUp) {
mp3_stop ();
delay(500);
mp3_next ();
}
server.handleClient( );//클라이언트 접속을 관리합니다.
}
회로를 꾸며서 테스트해보고 그걸 PCB에 옮겨서 작게 만들었어요


이 정도면 들을만 하죠 ^^
💬 응원 댓글 (0)