Мазмұны:

ESP32 қолданатын Интернет -радио: 7 қадам (суреттермен)
ESP32 қолданатын Интернет -радио: 7 қадам (суреттермен)

Бейне: ESP32 қолданатын Интернет -радио: 7 қадам (суреттермен)

Бейне: ESP32 қолданатын Интернет -радио: 7 қадам (суреттермен)
Бейне: Lesson 07: Getting Additional 5V and GND from Arduino 2024, Қыркүйек
Anonim
Image
Image
ESP32 көмегімен Интернет -радио
ESP32 көмегімен Интернет -радио
ESP32 көмегімен Интернет -радио
ESP32 көмегімен Интернет -радио

Құрметті достар, тағы бір нұсқаулыққа қош келдіңіздер! Бүгін біз арзан ESP32 тақтасын қолдана отырып, үлкен 3,5 дюймдік дисплейі бар Интернет -радио құрылғысын құрастырмақпыз. Сенесіз бе, сенбейсіз, біз қазір Интернет -радионы 10 минуттан аз уақыт ішінде және 30 доллардан аз құра аламыз. Алда көп нәрсе бар, бастайық!

Бірнеше ай бұрын мен Arduino FM радио жобасын аяқтадым, ол өте жақсы жұмыс істейді және менің ойымша одан да жақсы көрінеді. Егер сіз бұл жобаны қалай құрғанымды білгіңіз келсе, нұсқаулықты мына жерден оқи аласыз. Мәселе мынада, бұл радио керемет болып көрінгенімен, бұл практикалық емес, өйткені мен Грецияның оңтүстігіндегі шағын қалада тұрамын және мен тыңдағанды жақсы көретін грек радиостанцияларында бұл жерде таратқыштар жоқ. Сонымен, мен ноутбукте немесе планшетте компьютерде сүйікті радио тыңдаймын, бұл да практикалық емес. Сонымен, мен бүгін бүкіл әлемнің сүйікті радиостанцияларын тыңдай алу үшін Интернет -радио құрылғысын жасамақпын!

Көріп отырғаныңыздай, жобаның бірінші нұсқасы тақтада дайын. Оны қуаттандырайық. Көріп отырғаныңыздай, жоба Интернетке қосылады, содан кейін алдын ала анықталған радиостанциялардан музыка жібереді.

Мен Афинадан Real FM радиостанциясын баптадым және осы түймелердің көмегімен біз тыңдайтын радиостанцияны өзгерте аламыз. Мен сүйікті радиостанцияларды ESP32 жадына сақтадым, сондықтан оларға оңай қол жеткізе аламын. Бұл потенциометрдің көмегімен мен динамиктің дыбыс деңгейін өзгерте аламын. Мен тыңдайтын радиостанцияның атауын ретро интерфейсі бар үлкен 3,5 дюймдік дисплейде көрсетемін. Жоба жақсы жұмыс істейді және оны құру өте оңай.

Сіз бір жобаны 10 минуттан аз уақыт ішінде жасай аласыз, бірақ сізге біраз тәжірибе қажет. Егер бұл сіздің бірінші жобаңыз болса, тәжірибе жинау үшін алдымен қарапайым құрылысты қарастырыңыз. Қарапайым жобалық идеялар үшін менің нұсқаулықтарымды тексеріңіз және Arduino сізге ыңғайлы болған кезде электроника осы керемет жобаны жасау үшін оралады. Енді жеке интернет -радио құруды бастайық.

6/6/2019 ЖАҢАРТУ

Шу мәселесі изоляторлық трансформаторды қосу арқылы шешілді. Жаңартылған схемалық диаграмманы қараңыз. Рахмет!

1 -қадам: барлық бөлшектерді алыңыз

Барлық бөлшектерді алыңыз
Барлық бөлшектерді алыңыз

Бізге келесі бөліктер қажет болады:

  • ESP32 ▶
  • MP3 декодері ▶
  • Оқшаулау трансформаторы ▶
  • Күшейткіш ▶
  • 3W динамигі ▶
  • 3,5 «Nextion дисплейі ▶
  • Түймешіктер ▶
  • Нан тақтасы ▶
  • Сымдар ▶

Жобаның жалпы құны шамамен 40 доллар, бірақ егер сіз дисплейді пайдаланбасаңыз, жобаның құны шамамен 20 доллар. Таңғажайып заттар. Біз бар болғаны 20 долларға өзіміздің интернет -радиомызды жасай аламыз!

2 -қадам: ESP32 тақтасы

Image
Image
ESP32 тақтасы
ESP32 тақтасы
ESP32 тақтасы
ESP32 тақтасы

Жобаның жүрегі, әрине, қуатты ESP32 тақтасы. Егер сіз онымен таныс болмасаңыз, ESP32 чипі - біз бұрын бірнеше рет қолданған әйгілі ESP8266 чипінің мұрагері. ESP32 - бұл жануар! Ол 160 МГц жиілігінде жұмыс істейтін 32 биттік екі ядроны, жадының үлкен көлемін, WiFi, Bluetooth және бағасы шамамен 7 доллар болатын көптеген басқа мүмкіндіктерді ұсынады! Керемет заттар!

Осы тақтаға мен дайындаған егжей -тегжейлі шолуды қараңыз. Мен осы нұсқаулыққа бейнені қостым. Бұл чиптің біздің заттар жасау тәсілімізді неге өзгертетінін түсінуге көмектеседі! ESP32-дегі ең қызықты нәрселердің бірі-бұл өте қуатты болса да, ол тек 10 мОц токты қажет ететін терең ұйқы режимін ұсынады. Бұл ESP32 микросхемасын аз қуатты қосымшалар үшін тамаша етеді.

Бұл жобада ESP32 тақтасы Интернетке қосылады, содан кейін ол біз тыңдайтын радиостанциядан MP3 деректерін қабылдайды және дисплейге кейбір командаларды жібереді.

3 -қадам: MP3 декодері

MP3 декодері
MP3 декодері
MP3 декодері
MP3 декодері

MP3 деректері SPI интерфейсі арқылы MP3 декодер модуліне жіберіледі. Бұл модуль VS1053 IC пайдаланады. Бұл IC арнайы аппараттық MP3 декодері болып табылады. Ол MP3 деректерін ESP32 -ден алады және оны аудио сигналға айналдырады.

Бұл дыбыс ұясында шығатын дыбыстық сигнал әлсіз және шулы, сондықтан оны шудан тазартып, күшейтуіміз қажет. (Егер сіз құлаққапты қолдансаңыз, сигналды шуылдан тазартудың немесе күшейтудің қажеті жоқ.) Сондықтан мен дыбысты шудан тазарту үшін оқшаулау трансформаторын және дыбыстық сигналды күшейту үшін PAM8403 дыбыс күшейткішін қолданамын. спикерге. Мен ESP32 -ге екі түймені біз алатын MP3 ағыны мен біз тыңдайтын радиостанцияны көрсету үшін Nextion дисплейін өзгерту үшін қостым.

4 -қадам: Келесі дисплей

Image
Image
Барлық бөлшектерді қосу
Барлық бөлшектерді қосу

Мен бұл жоба үшін Nextion дисплейін пайдалануды таңдадым, себебі оны қолдану өте оңай. Біз оны басқару үшін тек бір сымды қосуымыз керек.

Nextion дисплейлері - бұл дисплейлердің жаңа түрі. Олардың артқы жағында дисплейді басқаруға және пайдаланушының графикалық интерфейсін құруға жауап беретін өздерінің ARM процессоры бар. Сонымен, біз оларды кез келген микроконтроллермен қолдана аламыз және керемет нәтижелерге қол жеткізе аламыз. Мен осы Nextion дисплейіне егжей -тегжейлі шолуды дайындадым, онда олар қалай жұмыс істейтіні, оларды қалай қолдану керектігін және олардың кемшіліктері түсіндіріледі. Сіз оны осы жерден оқи аласыз немесе қоса берілген бейнені көре аласыз.

5 -қадам: барлық бөлшектерді қосу

Барлық бөлшектерді қосу
Барлық бөлшектерді қосу
Барлық бөлшектерді қосу
Барлық бөлшектерді қосу

Енді бізге барлық схемалық схемаға сәйкес барлық бөлшектерді қосу керек. Схемалық схеманы мына жерден табуға болады. Байланыс тікелей.

Ескеретін екі нәрсе бар. MP3 декодер модулі стерео сигнал шығарады, бірақ мен бұл жобада тек бір дыбыстық арнаны қолданамын. Дыбыстық сигналды алу үшін мен модульдің аудио ұясына аудио кабель жалғап, ішіндегі төрт сымды ашу үшін кесіп алдым. Мен екі сымды жалғадым. Олардың бірі - GND, екіншісі - екі дыбыстық арнаның біреуінің дыбыстық сигналы. Қаласаңыз, екі арнаны да күшейткіш модуліне қосып, екі динамикті басқаруға болады.

Әрбір дыбыстық арна күшейткішке қосылмас бұрын кез келген шуды тазарту үшін оқшаулау трансформаторынан өтуі керек

Деректерді дисплейге жіберу үшін бізге тек ESP32 TX0 істігіне бір сымды қосу керек. Бөлшектерді қосқаннан кейін біз кодты ESP32 -ге жүктеуіміз керек, ал GUI -ді Nextion дисплейіне жүктеуіміз керек.

GUI -ді Nextion дисплейіне жүктеу үшін мен сізбен бөлісетін InternetRadio.tft файлын бос SD картасына көшіріңіз. SD картасын дисплейдің артындағы SD картасының ұясына салыңыз. Содан кейін дисплейді қосыңыз, содан кейін GUI жүктеледі. Содан кейін SD картасын шығарып, қуатты қайта қосыңыз.

Кодты сәтті жүктегеннен кейін, жобаны іске қосамыз. Ол дисплейде бірнеше секунд бойы «Қосылуда …» мәтінін көрсетеді. Интернетке қосылғаннан кейін жоба алдын ала анықталған радиостанцияға қосылады. Жабдық күтілгендей жұмыс істейді, бірақ қазір жобаның бағдарламалық жағын қарастырайық.

6 -қадам: Жобаның коды

Жобаның кодексі
Жобаның кодексі
Жобаның кодексі
Жобаның кодексі

Алдымен сізге бір нәрсені көрсетуге рұқсат етіңіз. Жобаның коды 140 код кодынан аз. Ойлап көріңізші, біз 3,5 дюймдік дисплейі бар 140 радиодан тұратын Интернет -радио құра аламыз, бұл таңқаларлық. Біз мұның бәріне әрине мыңдаған код жолдары бар әр түрлі кітапханалардың көмегімен қол жеткізе аламыз. Бұл Arduino мен Ашық көзі бар қауымдастықтың күші. Бұл жасаушыларға жағдайды жеңілдетеді.

Бұл жобада мен ESP32 тақтасы үшін VS1053 кітапханасын қолданамын.

Алдымен біз SSID мен Wi-Fi желісінің құпия сөзін анықтауымыз керек. Әрі қарай, біз мұнда кейбір радиостанцияларды сақтауымыз керек. Бізге хост URL мекенжайы, ағын орналасқан жол және бізге қажет порт қажет. Біз барлық ақпаратты осы айнымалыларға сақтаймыз.

char ssid = «yourSSID»; // сіздің желі SSID (аты) char pass = «yourWifiPassword»; // сіздің желі құпия сөзіңіз

// Бірнеше радиостанциялар

char *хост [4] = {«149.255.59.162», «radiostreaming.ert.gr», «realfm.live24.gr», «secure1.live24.gr»}; char *path [4] = {«/1», «/ert-kosmos», «/realfm», «/skai1003»}; int порт [4] = {8062, 80, 80, 80};

Мен бұл мысалға 4 радиостанцияны қостым.

Орнату функциясында біз үзілістерді түймелерге қосамыз, MP3 декодер модулін инициализациялаймыз және Wi-Fi желісіне қосыламыз.

жарамсыз орнату () {

Serial.begin (9600); кешіктіру (500); SPI.begin ();

pinMode (алдыңғыButton, 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, байтты оқу); }}

Бар болғаны! Пайдаланушы түймені басқанда, үзіліс орын алады және қай ағынға қосылу керектігін айтатын айнымалының мәнін өзгертеді.

жарамсыз IRAM_ATTR previousButtonInterrupt () {

статикалық белгісіз ұзақ last_interrupt_time = 0;

белгісіз ұзақ interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = үзіліс_ уақыты; }

Дисплейді жаңарту үшін біз бірнеше командаларды сериялық портқа жібереміз.

void drawRadioStationName (int id) {String пәрмені; switch (id) {0 жағдай: команда = «p1.pic = 2»; Serial.print (команда); endNextionCommand (); үзіліс; // 1940 Ұлыбритания радиосы 1 жағдай: команда = «p1.pic = 3»; Serial.print (команда); endNextionCommand (); үзіліс; // KOSMOS GREEK 2 жағдай: команда = «p1.pic = 4»; Serial.print (команда); endNextionCommand (); үзіліс; // REAL FM GREEK 3 жағдай: команда = «p1.pic = 5»; Serial.print (команда); endNextionCommand (); үзіліс; // СКАЙ 100.3 ГРЕК}}

Енді Nextion Display GUI -ге назар аударайық. Nextion GUI фондық суреттен және радиостанцияның атын көрсететін суреттен тұрады. ESP32 тақтасы ендірілген суреттерден радиостанция атауын өзгертуге пәрмендер жібереді. Бұл өте оңай. Қосымша ақпарат алу үшін мен жақында дайындаған Nextion дисплей оқулығын қараңыз. Егер сіз қаласаңыз, өзіңіздің GUI -ді тез жасай аласыз және онда көп нәрсені көрсете аласыз.

Әдеттегідей, сіз осы нұсқаулықта берілген жобаның кодын таба аласыз.

7 -қадам: Қорытынды ойлар мен жақсартулар

Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар
Қорытынды ойлар мен жақсартулар

Бұл жоба өте қарапайым. Мен Интернет -радио жобасының қарапайым қаңқасымен жұмыс жасағым келді. Енді жобаның бірінші нұсқасы дайын, біз оны жақсарту үшін оған көптеген мүмкіндіктерді қоса аламыз. Ең алдымен, мен барлық электрониканы орналастыратын қоршауды жобалауым керек.

Ең әдемі радиолар туралы осы кітапта осы жобаның корпусы ретінде таңдауға болатын керемет радиостанциялар бар. Менің ойымша, мен осы керемет Art Deco радиосының айналасында қоршау саламын деп ойлаймын. Сіз қалай ойлайсыз, сізге осы радионың келбеті ұнай ма, әлде сізге қазіргі заманға сай нәрсе ұнайды ма? Сізде басқа қоршау идеялары бар ма? Сонымен қатар, сізге осы Интернет -радио жобасы ұнай ма және оны пайдалы ету үшін оған қандай мүмкіндіктерді қосу керек деп ойлайсыз? Мен сіздің ойларыңыз бен идеяларыңызды оқығым келеді, сондықтан оларды төмендегі түсініктеме бөліміне орналастырыңыз.

Ұсынылған: