本文主要是介绍【源码+硬件说明+接线】Arduino-ESP32 http访问播放网络mp3音乐并获取获取远程服务器文件并存SD卡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
最近跟浩楠哥接了一个外包,不得不说人总得逼自己一把就可以学到很多东西,这次收获不小,就把一部分困扰我一段时间的部分放出来给大家看看,避免大家踩我相同的坑
1. 硬件准备
1.1 Esp32Wroom
主控使用esp32Wroom,我具备蓝牙,wifi,低功耗蓝牙功能,配合Arduino库作为开发上手非常简单,只需了解部分知识即可上手。
1.2 MAX98357音频放大器模块
注意:除此之外,还需购买一个喇叭来进行发声
1.3 Micro SD卡SPI接口插座
用于存储文件并且进行读写。
1.4 集合照片
1.5 硬件接线图
MAX98357
GND --- GND
VIN --- 3v3
LRC --- D27
BCLK--- D26
DIN --- D25
SDCardSPI连接
3v3 --- 3v3
cs --- D5
SCK --- D18
MOSI --- D23
MISO --- D19
喇叭
正 --- +
负 --- -
2.测试开发
连接好各引脚后,需要对各个功能进行测试,你也不想线全接了不知道到底是哪里报错吧~
2.1 测试SD卡并尝试写入文件,查看文件,再删除文件
#include <SPI.h>
#include <SD.h>
#include <FS.h>
#include <FSImpl.h>
#include <vfs_api.h>
#define SCK 18
#define MISO 19
#define MOSI 23
#define CS 5SPIClass spi = SPIClass(VSPI);/******容量转换*******/
String formatBytes(size_t bytes) {if (bytes < 1024) {return String(bytes) + "B";} else if (bytes < (1024 * 1024)) {return String(bytes / 1024.0) + "KB";} else if (bytes < (1024 * 1024 * 1024)) {return String(bytes / 1024.0 / 1024.0) + "MB";} else {return String(bytes / 1024.0 / 1024.0 / 1024.0) + "GB";}
}/******查看SD卡文件列表*******/
void listDir(fs::FS &fs, const char * dirname, uint8_t levels){Serial.printf("Listing directory: %s\n", dirname);File root = fs.open(dirname);if(!root){Serial.println("Failed to open directory");return;}if(!root.isDirectory()){Serial.println("Not a directory");return;}File file = root.openNextFile();while(file){if(file.isDirectory()){Serial.print(" DIR : ");Serial.println(file.name());if(levels){listDir(fs, file.name(), levels -1);}} else {Serial.print(" FILE: ");Serial.print(file.name());Serial.print(" SIZE: ");Serial.println(file.size());}file = root.openNextFile();}
}
/******SD卡创建文件夹*******/
void createDir(fs::FS &fs, const char * path){Serial.printf("Creating Dir: %s\n", path);if(fs.mkdir(path)){Serial.println("Dir created");} else {Serial.println("mkdir failed");}
}/******删除SD卡中的文件夹*******/
void removeDir(fs::FS &fs, const char * path){Serial.printf("Removing Dir: %s\n", path);if(fs.rmdir(path)){Serial.println("Dir removed");} else {Serial.println("rmdir failed");}
}/******读取SD卡中的文件*******/
void readFile(fs::FS &fs, const char * path){Serial.printf("Reading file: %s\n", path);File file = fs.open(path);if(!file){Serial.println("Failed to open file for reading");return;}Serial.print("Read from file: ");while(file.available()){Serial.write(file.read());}file.close();
}/******向SD卡中的文件写数据*******/
void writeFile(fs::FS &fs, const char * path, const char * message){Serial.printf("Writing file: %s\n", path);File file = fs.ope
这篇关于【源码+硬件说明+接线】Arduino-ESP32 http访问播放网络mp3音乐并获取获取远程服务器文件并存SD卡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!