ESP32-S3 AI cam网络收音机
本帖最后由 麦壳maikemaker 于 2025-4-29 20:55 编辑前面写了小白避坑,收集资料学习的过程中,有人做esp32网络收音机,于是让大模型写了一个demo。
首先准备网络音频链接
安装浏览器插件“猫爪”,教程https://cat-catch.bmmmd.com/
打开蜻蜓FM:https://www.qtfm.cn/播放你喜欢的广播或者有声书等
安装arduino库
代码
#include <Arduino.h>
#include <WiFi.h>
#include <WiFiMulti.h>
#include "Audio.h"// 使用ESP32-audioI2S库
// 硬件配置(匹配MAX98357A模块)
#define I2S_BCLK 45// 位时钟
#define I2S_LRC46// 左右声道时钟
#define I2S_DOUT 42// 数据输出
// 网络配置
const char* ssid = "waoo2111280";
const char* password = "waoo2111280";
Audio audio;
WiFiMulti wifiMulti;
void setup() {
Serial.begin(115200);
// 初始化I2S引脚
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(12); // 音量范围0-21
// 连接WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
// 播放网络音频(示例URL)
audio.connecttohost("https://lhttp-hw.qtfm.cn/live/1947/64k.mp3"); // 替换为你的音频流URL
}
void loop() {
audio.loop(); // 必须持续调用以处理音频流
// 通过串口输入新URL(可选功能)
if (Serial.available()) {
audio.stopSong();
String url = Serial.readString();
url.trim();
if (url.length() > 5) {
audio.connecttohost(url.c_str());
}
}
}
// 可选:音频事件回调函数
void audio_info(const char *info) {
Serial.print("Audio Info: "); Serial.println(info);
}
修改音频链接:
编译并上传即可。
https://www.bilibili.com/video/BV1udGmzeEJ8
页:
[1]