基于ESP32的网络收音机

模拟收音机在这个数字世界中逐渐消失,因为今天从电影到歌曲的所有内容都直接从互联网流式传输。让我们看看如何通过利用一些简单的数字电子设备、编码和有效的互联网连接来制作互联网收音机。
互联网收音机可以创建为通过互联网运行的独立设备,也可以创建为通过与互联网连接的计算机运行的软件。在这里,我们将制作一个独立的设备,它将连接到 wi-fi,访问互联网,最后播放音频。为了构建我们的esp32 网络广播,我们选择了 esp32 开发板(显然)和 max98357a i2s 放大器。如果您正在寻找可以离线工作的简单 fm 收音机,那么您应该查看链接的文章。
构建 esp32 网络收音机所需的组件
您将需要以下组件来使用 esp32 构建我们的网络收音机。大多数零件应该很容易获得。
esp32 开发套件
max98357a
8 欧姆扬声器,额定功率为 0.5w 至 1w。
usb电缆
5v 1a充电器
活跃的互联网连接
esp32 和 i2s 通信
正如我们大多数人所知,esp32 是一款成本极低、低功耗的片上系统微控制器,集成了 wi-fi 和双模蓝牙。我们之前已经构建了很多esp32 项目,有兴趣的可以去看看。但是,我们不会在这里使用 esp32 的蓝牙功能,但我们仍然选择了 esp32,原因如下所列。
它有wi-fi模块
成本低
它具有 i2s 外设支持。
现在,为什么 i2s 很重要?
集成 ic间声音总线 (i2s)是一种串行总线接口标准,用于连接数字音频设备。它由飞利浦半导体制造。此接口最常用于音频 adc 和 dac 组件。
由于要运行收音机,我们需要使用扬声器并需要产生模拟输出,因此我们需要某种数模转换器。这是该项目有趣的部分。max98357a 模块。它提供了一个数字 d 类放大器,该放大器使用数字音频接口或 i 2 s 与微控制器单元进行通信。
max98357a i2s模块的优势如下:
效率高达 92%
可在 5v 下向 4 欧姆负载提供 3.2w 输出功率
点击和弹出式降噪
短路和热保护
支持左、右或(左/2 + 右/2)输出
工作电压为 2.5v 至 5.5v。
我们在这个项目中使用的 max98357a i2s 模块如下图所示。
max98357a i2s模块与 esp32接口的电路图
原理图很简单。max98357 连接如下表所示。
由于增益引脚与 gnd 相连,因此增益为 12db。
esp32 的网络电台代码
嗯,这个项目使用了github 上提供的esp32-audioi2s 库。在我们进入代码之前,请确保从以下链接下载库并将其添加到 arduino ide。
esp32 音频 i2s 库
本页底部提供了完整代码,您可以直接复制和使用代码,但如果您需要它的解释,请进一步阅读。 
首先,包含项目所需的库,如下图。
#include arduino.h #include wifi.h #include audio.h  
然后,指定 max98357a 的引脚排列。如果您使用的是与上面显示的完全相同的模块,则可以将其保留为如下所示。
#define max98357a_i2s_dout 25 #define max98357a_i2s_bclk 27 #define max98357a_i2s_lrc 26音频音频;  
输入您的 wi-fi ssid 和密码,这允许 esp32 连接到互联网。
string ssid = 你的用户名; 字符串密码 = 您的密码;  
在设置中,正在设置 wifi 密码和 ssid,并启动 wifi。连接 wi-fi 后,选择音频引脚,音量也设置为最大。
audio.setpinout(max98357a_i2s_bclk, max98357a_i2s_lrc, max98357a_i2s_dout); 音频.setvolume(100);  
在此处设置流媒体 url,您可以选择任何您选择的流媒体 url,如果需要,您还可以引入一个电位器在多个流媒体通道之间切换。
audio.connecttohost(http://vis.media-ice.musicradio.com/capitalmp3); }  
在所有这些之后,使用下面的代码在 void 循环中连续播放音频。
无效循环(){ 音频.循环();}  
测试我们的 esp32 网络广播播放器
电路按照原理图正确连接,并与 wi-fi 连接。一旦设置启动,它就会连接到互联网并开始从程序中提到的 url 流式传输音频。
#include arduino.h
#include wifi.h
#include audio.h
#define i2s_dout 25
#define i2s_bclk 27
#define i2s_lrc 26
音频音频;
字符串 ssid = sourav;
字符串密码 = 87654321;
无效设置(){
wifi.disconnect();
wifi.mode(wifi_sta);
wifi.begin(ssid.c_str(), password.c_str());
而(wifi.status()!= wl_connected)
延迟(1500);
audio.setpinout(i2s_bclk, i2s_lrc, i2s_dout);
音频.setvolume(100);
audio.connecttohost( http://vis.media-ice.musicradio.com/capitalmp3 );
}

在将可解释的人工智能变成现实之前 需要了解以下四件事
诺基亚:wp7新版本Tango现身
边缘计算市场迎大爆发 将进一步提升智能家居体验
从今年的半导体收购,看代理商的未来走势
ML与传感,软硬件结合的传感技术又将升级机器人感知能力
基于ESP32的网络收音机
小米8 SE性能如何以及联想Z5多少钱?
华为正式发布了业务创建智能中心(SCC)解决方案
如何上架HarmonyOS应用
东芯股份拟布局无线通信芯片业务,设立子公司和分公司
数据中心场景下的内存交换技术TMO应用研究
特斯拉未来很长一段时间仍将是电动汽车领域的领导者
vivox9s、vivox9splus发布会最新消息:vivox9s、vivox9splus发布会倒计时,外观、配置、性能、摄像有何升级?
两年前折戟创业板,如今剑指科创板,云涌科技何时能圆上市梦?
凌力尔特推出升压型DC/DC控制器LTC3872的H级版本
DacomHF002蓝牙耳机怎么样 值不值得买
世博国家电网馆:打开“魔盒”点亮梦想
数字孪生智慧校园Web 3D可视化监测
小米6、荣耀V9对比评测:小米6遭遇“充电门”缺货黄牛还加价,华为荣耀V9笑了
数字电路基础知识分享2