模擬收音機(jī)在這個(gè)數(shù)字世界中逐漸消失,因?yàn)榻裉鞆碾娪暗礁枨乃袃?nèi)容都直接從互聯(lián)網(wǎng)流式傳輸。讓我們看看如何通過利用一些簡單的數(shù)字電子設(shè)備、編碼和有效的互聯(lián)網(wǎng)連接來制作互聯(lián)網(wǎng)收音機(jī)。
互聯(lián)網(wǎng)收音機(jī)可以創(chuàng)建為通過互聯(lián)網(wǎng)運(yùn)行的獨(dú)立設(shè)備,也可以創(chuàng)建為通過與互聯(lián)網(wǎng)連接的計(jì)算機(jī)運(yùn)行的軟件。在這里,我們將制作一個(gè)獨(dú)立的設(shè)備,它將連接到 Wi-Fi,訪問互聯(lián)網(wǎng),最后播放音頻。為了構(gòu)建我們的ESP32 網(wǎng)絡(luò)廣播,我們選擇了 ESP32 開發(fā)板(顯然)和 MAX98357A I2S 放大器。如果您正在尋找可以離線工作的簡單 FM 收音機(jī),那么您應(yīng)該查看鏈接的文章。
構(gòu)建 ESP32 網(wǎng)絡(luò)收音機(jī)所需的組件
您將需要以下組件來使用 ESP32 構(gòu)建我們的網(wǎng)絡(luò)收音機(jī)。大多數(shù)零件應(yīng)該很容易獲得。
ESP32 開發(fā)套件
MAX98357A
8 歐姆揚(yáng)聲器,額定功率為 0.5W 至 1W。
USB電纜
5V 1A充電器
活躍的互聯(lián)網(wǎng)連接
ESP32 和 I2S 通信
正如我們大多數(shù)人所知,ESP32 是一款成本極低、低功耗的片上系統(tǒng)微控制器,集成了 Wi-Fi 和雙模藍(lán)牙。我們之前已經(jīng)構(gòu)建了很多ESP32 項(xiàng)目,有興趣的可以去看看。但是,我們不會(huì)在這里使用 ESP32 的藍(lán)牙功能,但我們?nèi)匀贿x擇了 ESP32,原因如下所列。
它有Wi-Fi模塊
成本低
它具有 I2S 外設(shè)支持。
現(xiàn)在,為什么 I2S 很重要?
集成 IC間聲音總線 (I2S)是一種串行總線接口標(biāo)準(zhǔn),用于連接數(shù)字音頻設(shè)備。它由飛利浦半導(dǎo)體制造。此接口最常用于音頻 ADC 和 DAC 組件。
由于要運(yùn)行收音機(jī),我們需要使用揚(yáng)聲器并需要產(chǎn)生模擬輸出,因此我們需要某種數(shù)模轉(zhuǎn)換器。這是該項(xiàng)目有趣的部分。MAX98357A 模塊。它提供了一個(gè)數(shù)字 D 類放大器,該放大器使用數(shù)字音頻接口或 I 2 S 與微控制器單元進(jìn)行通信。
MAX98357A I2S模塊的優(yōu)勢如下:
效率高達(dá) 92%
可在 5V 下向 4 歐姆負(fù)載提供 3.2W 輸出功率
點(diǎn)擊和彈出式降噪
短路和熱保護(hù)
支持左、右或(左/2 + 右/2)輸出
工作電壓為 2.5V 至 5.5V。
我們在這個(gè)項(xiàng)目中使用的 MAX98357A I2S 模塊如下圖所示。
MAX98357A I2S模塊與 ESP32接口的電路圖
原理圖很簡單。MAX98357 連接如下表所示。
由于增益引腳與 GND 相連,因此增益為 12dB。
ESP32 的網(wǎng)絡(luò)電臺(tái)代碼
嗯,這個(gè)項(xiàng)目使用了GitHub 上提供的ESP32-audioI2S 庫。在我們進(jìn)入代碼之前,請確保從以下鏈接下載庫并將其添加到 Arduino IDE。
ESP32 音頻 I2S 庫
本頁底部提供了完整代碼,您可以直接復(fù)制和使用代碼,但如果您需要它的解釋,請進(jìn)一步閱讀。?
首先,包含項(xiàng)目所需的庫,如下圖。
?
#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 連接到互聯(lián)網(wǎng)。
?
String ssid = "你的用戶名"; 字符串密碼 = "您的密碼";
?
在設(shè)置中,正在設(shè)置 WiFi 密碼和 SSID,并啟動(dòng) WiFi。連接 Wi-Fi 后,選擇音頻引腳,音量也設(shè)置為最大。
?
audio.setPinout(MAX98357A_I2S_BCLK, MAX98357A_I2S_LRC, MAX98357A_I2S_DOUT); 音頻.setVolume(100);
?
在此處設(shè)置流媒體 URL,您可以選擇任何您選擇的流媒體 URL,如果需要,您還可以引入一個(gè)電位器在多個(gè)流媒體通道之間切換。
?
audio.connecttohost("http://vis.media-ice.musicradio.com/CapitalMP3"); }
?
在所有這些之后,使用下面的代碼在 void 循環(huán)中連續(xù)播放音頻。
?
無效循環(huán)() { 音頻.循環(huán)(); }
?
測試我們的 ESP32 網(wǎng)絡(luò)廣播播放器
電路按照原理圖正確連接,并與 Wi-Fi 連接。一旦設(shè)置啟動(dòng),它就會(huì)連接到互聯(lián)網(wǎng)并開始從程序中提到的 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";
無效設(shè)置(){
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 ");
}
評(píng)論