基于ESP32的网络收音机

基于ESP32的网络收音机,第1张

  模拟收音机在这个数字世界中逐渐消失,因为今天从电影到歌曲的所有内容都直接从互联网流式传输。让我们看看如何通过利用一些简单的数字电子设备、编码和有效的互联网连接来制作互联网收音机。

  互联网收音机可以创建为通过互联网运行的独立设备,也可以创建为通过与互联网连接的计算机运行的软件。在这里,我们将制作一个独立的设备,它将连接到 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)是一种串行总线接口标准,用于连接数字音频设备。它由飞利浦半导体制造。此接口最常用于音频 ADCDAC 组件。

  由于要运行收音机,我们需要使用扬声器并需要产生模拟输出,因此我们需要某种数模转换器。这是该项目有趣的部分。MAX98357A 模块。它提供了一个数字 D 类放大器,该放大器使用数字音频接口或 I 2 S 与微控制器单元进行通信。

  MAX98357A I2S模块的优势如下:

  效率高达 92%

  可在 5V 下向 4 欧姆负载提供 3.2W 输出功率

  点击和d出式降噪

  短路和热保护

  支持左、右或(左/2 + 右/2)输出

  工作电压为 2.5V 至 5.5V。

  我们在这个项目中使用的 MAX98357A I2S 模块如下图所示。

基于ESP32的网络收音机,poYBAGLo6DuAMMWRAAV0KPSxdVA487.png,第2张

  MAX98357A I2S模块与 ESP32接口的电路

基于ESP32的网络收音机,pYYBAGLo6DeANb2JAACc0LTzDVI677.png,第3张

  原理图很简单。MAX98357 连接如下表所示。

基于ESP32的网络收音机,pYYBAGLo6DSAM31nAAAg1rErJdY510.png,第4张

  由于增益引脚与 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 流式传输音频。

基于ESP32的网络收音机,poYBAGLo6C-AWm2yAAaVvrzKY28892.png,第5张

#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 ");





}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2711363.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存