精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

怎樣用ESP32主板制作一個帶有3.5英寸顯示屏的網絡收音機設備

454398 ? 來源:工程師吳畏 ? 2019-08-21 11:35 ? 次閱讀

第1步:獲取所有部件

怎樣用ESP32主板制作一個帶有3.5英寸顯示屏的網絡收音機設備

我們需要以下部分:

ESP32

MP3解碼器

隔離變壓器

放大器

3W揚聲器

3.5“Nextion Display

按鈕

面包板

Wire

The該項目的總成本約為40美元,但如果您不使用顯示器,該項目的成本約為20美元。令人驚奇的東西。我們可以用20美元建立我們自己的網絡電臺!

第2步:ESP32 Board

項目的核心是,當然,強大的ESP32板。如果您不熟悉它,ESP32芯片是我們過去多次使用的流行的ESP8266芯片的繼承者。 ESP32是一個野獸!它提供兩個32位處理核心,工作頻率為160MHz,大量內存,WiFi,藍牙和許多其他功能,成本約為7美元!驚人的東西!

請觀看我為此委員會準備的詳細評論。我已將視頻附加到此Instructable上。它將有助于理解為什么這個芯片會改變我們永遠做事的方式!關于ESP32最激動人心的事情之一就是即使它非常強大,它也提供深度睡眠模式,只需要10μA的電流。這使ESP32成為低功耗應用的理想芯片。

在這個項目中,ESP32板連接到Internet,然后它從我們正在收聽的無線電臺接收MP3數據,并發送一些命令到顯示器。

步驟3:MP3解碼器

然后MP3數據使用SPI接口發送到MP3解碼器模塊。該模塊使用VS1053 IC。該IC是專用的硬件MP3解碼器。它從ESP32獲取MP3數據并將其快速轉換為音頻信號

它在此音頻插孔輸出的音頻信號很弱且噪音很大,所以我們需要從噪聲中清除它放大它。 (如果你使用耳機,信號不需要從噪聲中清除或放大。)這就是為什么我使用隔離變壓器來清除噪聲中的音頻和PAM8403音頻放大器來放大音頻信號然后發送它發言者我還將兩個按鈕連接到ESP32,只是為了改變我們從中獲取數據的MP3流和用于顯示我們正在收聽的無線電臺的Nextion顯示。

步驟4:Nextion Display

我選擇使用Nextion顯示 此項目,因為它非常易于使用。我們只需要連接一根電線來控制它。

Nextion顯示器是一種新型顯示器。他們在后面有自己的ARM處理器,負責驅動顯示器并創建圖形用戶界面。因此,我們可以將它們與任何微控制器一起使用并獲得驚人的效我已經準備好了這個Nextion顯示器的詳細評論,它深入地解釋了它們如何工作,如何使用它們以及它們的缺點。您可以在這里閱讀,或觀看附加的視頻。

步驟5:連接所有部件

現在我們要做的就是連接根據該示意圖將所有部件組合在一起。您可以在此處找到原理圖。連接很簡單。

但有兩點需要注意。 MP3解碼器模塊輸出立體聲信號,但我在這個項目中只使用一個音頻通道。為了獲得音頻信號,我將音頻線連接到模塊的音頻插孔,并將其切斷以顯示內部的四根線。我連接了兩根電線。其中一個是GND,另一個是兩個音頻通道之一的音頻信號。如果您希望可以將兩個通道連接到放大器模塊并驅動兩個揚聲器。

每個音頻通道必須通過隔離變壓器,以清除連接到放大器之前出現的任何噪聲。

要將數據發送到顯示器,我們只需要將一根線連接到ESP32的TX0引腳。連接部件后,我們必須將代碼加載到ESP32,我們必須將GUI加載到Nextion顯示器。

要將GUI加載到Nextion顯示器,請復制InternetRadio.tft文件I我要和你分享一張空的SD卡。將SD卡放入顯示器背面的SD卡插槽中。然后打開顯示器電源,將加載GUI。然后取出SD卡并重新連接電源。

成功加載代碼后,讓我們啟動項目。它在顯示屏上顯示文本“正在連接。..”幾秒鐘。連接到互聯網后,項目連接到預定義的無線電臺。硬件按預期工作,但現在讓我們看看項目的軟件方面。

步驟6:項目代碼

首先,讓我告訴你一些事情。 T 項目代碼不如 140行代碼。考慮一下,我們可以使用帶有140行代碼的3.5英寸顯示器構建一個網絡電臺,這太棒了。我們可以使用包含數千行代碼的各種庫來實現所有這些。這是Arduino和開源社區的力量。它使制造商變得容易。

在這個項目中,我使用VS1053庫作為ESP32板。

首先,我們必須定義SSID和密碼。 Wi-Fi網絡。接下來,我們必須在這里保存一些電臺。我們需要主機URL,流所在的路徑以及我們需要使用的端口。我們將所有這些信息保存到這些變量中。

char ssid[] = “yourSSID”; // your network SSID (name)

char pass[] = “yourWifiPassword”; // your network password

// Few Radio Stations

char *host[4] = {“149.255.59.162”,“radiostreaming.ert.gr”,“realfm.live24.gr”, “secure1.live24.gr”};

char *path[4] = {“/1”,“/ert-kosmos”,“/realfm”,“/skai1003”};

int port[4] = {8062,80,80,80};

在這個例子中我已經包含了4個電臺。

在設置功能中我們將中斷連接到按鈕,我們初始化MP3解碼器模塊,我們連接到Wi-Fi。

void setup () {

Serial.begin(9600);

delay(500);

SPI.begin();

pinMode(previousButton, INPUT_PULLUP);

pinMode(nextButton, INPUT_PULLUP);

attachInterrupt(digitalPinToInterrupt(previousButton), previousButtonInterrupt, FALLING);

attachInterrupt(digitalPinToInterrupt(nextButton), nextButtonInterrupt, FALLING);

initMP3Decoder();

connectToWIFI();

}

在循環功能中,首先,我們檢查用戶是否選擇了不同于我們從中獲取數據的無線電臺。如果是這樣,我們連接到新的無線電臺,否則我們從流中獲取數據并將它們發送到MP3解碼器模塊。

void loop() {

if(radioStation!=previousRadioStation)

{

station_connect(radioStation);

previousRadioStation = radioStation;

}

if (client.available() 》 0)

{

uint8_t bytesread = client.read(mp3buff, 32);

player.playChunk(mp3buff, bytesread);

}

}

這就是全部!當用戶按下按鈕時,會發生中斷,并更改變量的值,該變量告訴連接哪個流。

void IRAM_ATTR previousButtonInterrupt() {

static unsigned long last_interrupt_time = 0;

unsigned long interrupt_time = millis();

if (interrupt_time - last_interrupt_time 》 200)

{

if(radioStation》0)

radioStation--;

else

radioStation = 3;

}

last_interrupt_time = interrupt_time;

}

要更新顯示,我們只需向其發送一些命令即可。串口。

void drawRadioStationName(int id)

{

String command;

switch (id)

{

case 0: command = “p1.pic=2”; Serial.print(command); endNextionCommand(); break; //1940 UK Radio

case 1: command = “p1.pic=3”; Serial.print(command); endNextionCommand(); break; //KOSMOS GREEK

case 2: command = “p1.pic=4”; Serial.print(command); endNextionCommand(); break; //REAL FM GREEK

case 3: command = “p1.pic=5”; Serial.print(command); endNextionCommand(); break; //SKAI 100.3 GREEK

}

}

現在讓我們來看看Nextion Display GUI。 Nextion GUI由背景圖片和顯示電臺名稱的圖片組成。 ESP32板發送命令以從嵌入的圖像中更改無線電臺的名稱。這很容易。請觀看我前段時間準備的Nextion顯示教程,以獲取更多信息。如果您愿意,可以快速設計自己的GUI并在其上顯示更多內容。

一如既往,您可以找到此Instructable附帶的項目代碼。

第7步:最后的想法和改進

這個項目非常簡單。 我想 一個簡單的Internet廣播項目框架。現在項目的第一個版本已準備好,我們可以添加許多功能來改進它。首先,我需要設計一個可容納所有電子設備的外殼。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 網絡收音機
    +關注

    關注

    1

    文章

    11

    瀏覽量

    7873
  • ESP32
    +關注

    關注

    18

    文章

    960

    瀏覽量

    17114
收藏 人收藏

    評論

    相關推薦

    esp32什么軟件編程

    ESP32款由樂鑫(Espressif)推出的低功耗、高性能的Wi-Fi和藍牙雙模微控制器,廣泛應用于物聯網、智能家居、智能穿戴等領域。要對ESP32進行編程,需要選擇合適的編程軟件和開發環境
    的頭像 發表于 08-19 17:24 ?2963次閱讀

    開源DIY!基于 ESP32-S3 的開源智能手表

    ?MAKER:rahmanshaber 這是基于 ESP32-S3 MCU 的開源智能手表項目。其外觀盡可能借鑒蘋果手表的設計風格,搭載 1.7 英寸
    發表于 07-26 11:30

    想用ESP32-S2接8080顯示屏,對應的引腳需要怎么分配?

    請教下,我想用ESP32-S2接8080顯示屏,對應的引腳需要怎么分配,有沒有相關的參考文檔?
    發表于 07-01 08:28

    ESP32,做了siri?!開源了!

    工程名稱:ESP32直接對話大語言模型人工智能語音助手前言ESP32做了語言模型,就像
    的頭像 發表于 06-29 08:04 ?328次閱讀
    <b class='flag-5'>用</b><b class='flag-5'>ESP32</b>,做了<b class='flag-5'>個</b>siri?!開源了!

    請問ESP32硬定時器可以用來掃描HUB75D的LED32*16的顯示屏嗎?

    1,如題:ESP32硬定時器,可以用來掃描,HUB75D的LED32*16的顯示屏嗎? 2,問題,我使用ESP32來做一個時鐘產品,HUB75D的LED32*16的
    發表于 06-17 07:42

    如何用esp32s3實現驅動rgb顯示屏

    esp32s3實現驅動rgb顯示屏
    發表于 06-13 07:36

    ESP32以太網和SPI顯示屏使用會導致屏幕錯位怎么解決?

    使用的是ESP32 ethernet development kit開發板,在iperf例程的基礎上添加了lvgl, 進行長時間ping包測試和iperf測試會導致顯示屏刷新的元素錯位,在不連接網線的情況下顯示屏就不會錯位了
    發表于 06-07 06:47

    手搓了ESP32墨水閱讀器,蠻簡單的

    工程名稱:3.7墨水閱讀器時鐘溫濕度TXT/Epub前言帥小伙手搓ESP32墨水閱讀器!可輕松續航100天!01閱讀器功能/亮點?1.具有閱讀器、時鐘、溫濕度監測、鬧鐘、番茄鐘功
    的頭像 發表于 05-27 08:04 ?331次閱讀
    手搓了<b class='flag-5'>一</b><b class='flag-5'>個</b><b class='flag-5'>ESP32</b>墨水<b class='flag-5'>屏</b>閱讀器,蠻簡單的

    iPhone 16 Pro Max機模亮相:6.9英寸,4676mAh大電池

    據了解,iPhone 16 Pro Max將配備有史以來最大的Pro Max系列顯示屏——6.9英寸。相比之下,iPhone 15 Pro Max則采用了6.7英寸顯示屏
    的頭像 發表于 05-16 11:19 ?888次閱讀

    【開源項目】ESP32一個數字沙漏

    。 這個項目的構建和編程都相當簡單,只需要你有些基礎的Arduino知識就行。同時,沙漏在外觀設計上也留有很大的發揮空間。 所需材料 ESP32 2 GC9a01 圓形顯示屏
    發表于 04-28 11:44

    款基于ESP32的情侶互動小電視,如何含蓄地告訴你對象你想她了?

    都說工程師里面直男多,但工程師浪漫起來就沒小鮮肉什么事兒了。今天社長帶來的是款基于ESP32的情侶互動小電視:具備天氣時鐘、戀愛紀念日及情話顯示、想你啦互動等功能(天知道單身狗社長抱著怎樣
    發表于 03-28 09:27

    0.96 OLED 顯示屏使用手冊

    電子發燒友網站提供《0.96 OLED 顯示屏使用手冊.pdf》資料免費下載
    發表于 03-19 11:02 ?28次下載

    【開源作品】基于樹莓派4B、ESP32制作的桌面機器人、氣象站、立方光!

    BME280 傳感器: 第 1 步:Inkplate6 彩色電子紙顯示屏 這是6英寸的彩色電子紙顯示板。我已經做了十多年了,我對電子
    發表于 03-05 16:52

    如何使用ESP32和STC51芯片制作小小光立方呢?

    分享ESP32和STC51芯片,以及0805貼片燈珠,手工焊接制作的小小光立方。
    的頭像 發表于 01-09 15:37 ?1844次閱讀
    如何使用<b class='flag-5'>ESP32</b>和STC51芯片<b class='flag-5'>制作</b><b class='flag-5'>一</b><b class='flag-5'>個</b>小小光立方呢?

    LCD顯示屏、LED顯示屏、OLED顯示屏有什么區別?

    LCD顯示屏、LED顯示屏、OLED顯示屏有什么區別? LCD顯示屏、LED顯示屏和OLED顯示屏
    的頭像 發表于 12-11 14:29 ?1.7w次閱讀