Съдържание:
- Стъпка 1: Вземете всички части
- Стъпка 2: ESP32 Board
- Стъпка 3: MP3 декодер
- Стъпка 4: Nextion дисплей
- Стъпка 5: Свързване на всички части
- Стъпка 6: Кодът на проекта
- Стъпка 7: Последни мисли и подобрения
Видео: Интернет радио с помощта на ESP32: 7 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
Скъпи приятели, добре дошли в друг Instructable! Днес ще изградим устройство за интернет радио с голям 3.5”дисплей, използвайки евтина ESP32 платка. Вярвате или не, сега можем да изградим интернет радио за по -малко от 10 минути и с по -малко от 30 $. Има много за покриване, така че нека започнем!
Преди няколко месеца завърших проект на Arduino FM Radio, който работи чудесно и изглежда още по -добре според мен. Ако искате да видите как изградих този проект, можете да прочетете Instructable тук. Проблемът е, че въпреки че това радио изглежда страхотно, това не е практично, защото живея в малък град в Южна Гърция и големите гръцки радиостанции, които предпочитам да слушам, нямат предаватели тук. Така че слушам любимите си радиостанции онлайн на моя лаптоп или таблет, което също не е толкова практично. И така, днес ще създам устройство за интернет радио, за да мога да слушам любимите си радиостанции от цял свят!
Както можете да видите, първата версия на проекта е готова на макет. Нека го включим. Както можете да видите, проектът се свързва с интернет и след това излъчва музика от предварително дефинирани радиостанции.
Настроих се на радиостанция Real FM от Атина и с помощта на тези бутони можем да променим радиостанцията, която слушаме. Запазил съм любимите си радиостанции в паметта на ESP32, за да имам лесен достъп до тях. С този потенциометър мога да променя силата на звука на високоговорителя. Показвам името на радиостанцията, която слушаме, на голям 3,5 -инчов дисплей с ретро потребителски интерфейс. Проектът работи добре и е много лесен за изграждане.
Можете да изградите същия проект за по -малко от 10 минути, но трябва да имате известен опит. Ако това е първият ви проект, помислете за изграждането на по -опростен първо, за да придобиете известен опит. Проверете моите Instructables за прости идеи за проекти и когато сте по -удобни с Arduino, електрониката се връща, за да изгради този готин проект. Нека сега започнем да изграждаме собствено интернет радио.
АКТУАЛИЗИРАНЕ 6.06.2019г
Проблемът с шума е решен чрез добавяне на изолационен трансформатор. Вижте актуализираната схематична диаграма. Благодаря!
Стъпка 1: Вземете всички части
Ще ни трябват следните части:
- ESP32 ▶
- MP3 декодер ▶
- Изолационен трансформатор ▶
- Усилвател ▶
- 3W високоговорител ▶
- 3.5 "Nextion дисплей ▶
- Бутони ▶
- Платформа ▶
- Проводи ▶
Общата стойност на проекта е около 40 $, но ако не използвате дисплей, цената на проекта е около 20 $. Невероятни неща. Можем да изградим собствено интернет радио само с 20 $!
Стъпка 2: ESP32 Board
Сърцето на проекта е, разбира се, мощната платка ESP32. Ако не сте запознати с него, чипът ESP32 е наследник на популярния чип ESP8266, който сме използвали много пъти в миналото. ESP32 е звяр! Той предлага две 32 -битови процесорни ядра, които работят на 160MHz, огромно количество памет, WiFi, Bluetooth и много други функции на цена от около 7 $! Невероятни неща!
Моля, вижте подробния преглед, който подготвих за тази дъска. Прикачих видеоклипа към тази инструкция. Това ще помогне да се разбере защо този чип ще промени начина, по който правим нещата завинаги! Едно от най-вълнуващите неща за ESP32 е, че въпреки че е толкова мощен, той предлага режим на дълбок сън, който изисква само 10 μΑs ток. Това прави ESP32 идеалният чип за приложения с ниска мощност.
В този проект платката ESP32 се свързва с интернет и след това получава MP3 данни от радиостанцията, която слушаме, и изпраща някои команди до дисплея.
Стъпка 3: MP3 декодер
MP3 данните след това се изпращат към MP3 декодиращия модул, използвайки SPI интерфейса. Този модул използва VS1053 IC. Тази IC е специализиран хардуерен MP3 декодер. Той получава MP3 данните от ESP32 и ги преобразува много бързо в аудио сигнал.
Аудиосигналът, който извежда към този аудио жак, е слаб и шум, така че трябва да го изчистим от шума и да го усилим. (Ако използвате слушалки, не е необходимо сигналът да се изчиства от шума или да се усилва.) Ето защо използвам изолационен трансформатор за изчистване на звука от шума и аудио усилвател PAM8403 за усилване на аудио сигнала и след това го изпращам към говорител. Свързах също два бутона към ESP32, само за да променя MP3 потока, от който получаваме данни, и дисплей Nextion за показване на радиостанцията, която слушаме.
Стъпка 4: Nextion дисплей
Избрах да използвам Nextion дисплей за този проект, тъй като е много лесен за използване. Трябва само да свържем един проводник, за да го контролираме.
Дисплеите Nextion са нов вид дисплеи. Те имат собствен ARM процесор отзад, който отговаря за задвижването на дисплея и създаването на графичен потребителски интерфейс. Така че можем да ги използваме с всеки микроконтролер и да постигнем впечатляващи резултати. Подготвих подробен преглед на този дисплей Nextion, който обяснява в дълбочина как работят, как да ги използваме и техните недостатъци. Можете да го прочетете тук или да гледате прикаченото видео.
Стъпка 5: Свързване на всички части
Всичко, което трябва да направим сега, е да свържем всички части заедно според тази схематична диаграма. Тук можете да намерите схематичната диаграма. Връзката е ясна.
Има две неща, които обаче трябва да се отбележат. Модулът за декодиране на MP3 извежда стерео сигнал, но използвам само един аудио канал в този проект. За да получа аудио сигнала, свързах аудио кабел към аудио жака на модула и го изрязах, за да разкрия четири проводника вътре. Свързах два от проводниците. Единият от тях е GND, а другият е аудио сигнал на един от двата аудио канала. Ако желаете, можете да свържете двата канала към усилвателния модул и да управлявате два високоговорителя.
Всеки аудио канал трябва да премине през изолационния трансформатор, за да изчисти всеки наличен шум, преди да се свърже с усилвателя
За да изпращаме данни към дисплея, трябва само да свържем един проводник към TX0 пина на ESP32. След като свържем частите, трябва да заредим кода в ESP32 и трябва да заредим GUI на дисплея Nextion.
За да заредите GUI на дисплея Nextion, копирайте файла InternetRadio.tft, който ще споделя с вас, на празна SD карта. Поставете SD картата в слота за SD карта в задната част на дисплея. След това включете дисплея и графичният интерфейс ще бъде зареден. След това извадете SD картата и свържете отново захранването.
След успешно зареждане на кода, нека захранваме проекта. Той показва текста „Свързване …“за няколко секунди на дисплея. След свързване към интернет проектът се свързва с предварително дефинирана радиостанция. Хардуерът работи според очакванията, но сега нека да видим софтуерната страна на проекта.
Стъпка 6: Кодът на проекта
Първо, нека ви покажа нещо. Кодът на проекта е по -малко от 140 реда код. Помислете, можем да изградим интернет радио с 3.5”дисплей с 140 реда код, това е невероятно. Можем да постигнем всичко това, разбира се, използвайки различни библиотеки, които съдържат хиляди редове код. Това е силата на Arduino и общността с отворен код. Това прави нещата лесни за производителите.
В този проект използвам библиотеката VS1053 за платката ESP32.
Първо трябва да определим SSID и паролата на Wi-Fi мрежата. След това трябва да запазим някои радиостанции тук. Нуждаем се от URL адреса на хоста, пътя, където се намира потока, и порта, който трябва да използваме. Запазваме цялата тази информация в тези променливи.
char ssid = "yourSSID"; // вашият мрежов SSID (име) char pass = "yourWifiPassword"; // вашата парола за мрежата
// Малко радиостанции
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 порт [4] = {8062, 80, 80, 80};
В този пример съм включил 4 радиостанции.
В функцията за настройка прикрепяме прекъсвания към бутоните, инициализираме модула за MP3 декодер и се свързваме с Wi-Fi.
void setup () {
Serial.begin (9600); забавяне (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 () {
статично неподписано дълго last_interrupt_time = 0;
unsigned long interrupt_time = millis (); if (време на прекъсване-време на последно_прекъсване> 200) {ако (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = време на прекъсване; }
За да актуализираме дисплея, просто изпращаме някои команди до серийния порт.
void drawRadioStationName (int id) {Команда на низ; switch (id) {случай 0: команда = "p1.pic = 2"; Serial.print (команда); endNextionCommand (); прекъсване; // 1940 UK UK case 1: command = "p1.pic = 3"; Serial.print (команда); endNextionCommand (); прекъсване; // КОСМОСКИ ГРЪЦКИ случай 2: command = "p1.pic = 4"; Serial.print (команда); endNextionCommand (); прекъсване; // РЕАЛЕН FM ГРЪЦКИ случай 3: command = "p1.pic = 5"; Serial.print (команда); endNextionCommand (); прекъсване; // SKAI 100.3 ГРЪЦКИ}}
Сега нека да разгледаме графичния интерфейс на Nextion Display. GUI на Nextion се състои от фонова картина и картина, която показва името на радиостанцията. Платката ESP32 изпраща команди за промяна на името на радиостанцията от вградените изображения. Много е лесно. Моля, вижте урока за дисплея на Nextion, който подготвих преди време за повече информация. Можете бързо да проектирате свой собствен графичен интерфейс, ако желаете, и да покажете повече неща върху него.
Както винаги можете да намерите кода на проекта, приложен в тази инструкция.
Стъпка 7: Последни мисли и подобрения
Този проект е много прост. Исках прост скелет на проект за Интернет радио, с който да работя. Сега, когато първата версия на проекта е готова, можем да добавим много функции към него, за да го подобрим. На първо място, трябва да проектирам корпус, в който да се помести цялата електроника.
В тази книга за най -красивите радиостанции, правени някога, има много готини радиостанции, от които да избирате като кутия за този проект. Мисля, че ще построя заграждение около това грандиозно радио в стил Арт Деко. Какво мислите, харесва ли ви външният вид на това радио или предпочитате нещо по -модерно? Имате ли други идеи за заграждение? Също така, харесвате ли този проект за Интернет радио и какви функции смятаме, че трябва да добавим към него, за да го направим по -полезен? Бих искал да прочета вашите мисли и идеи, така че, моля, публикувайте ги в секцията за коментари по -долу.
Препоръчано:
Интернет радио BOSEBerry Pi: 4 стъпки (със снимки)
Интернет радио BOSEBerry Pi: Обичам да слушам радио! Използвах DAB радио в къщата си, но установих, че приемането е малко неравномерно и звукът продължава да се къса, затова реших да създам собствено интернет радио. Имам силен wifi сигнал около дома си и цифровия брат
Интернет радио с Raspberry Pi: 5 стъпки (със снимки)
Интернет радио с Raspberry Pi: Има нещо удовлетворяващо в завъртането на циферблатите и натискането на бутони, като тези на старите радиостанции. За съжаление много от тези радиостанции са счупени или станциите са притихнали. За щастие не е твърде трудно да актуализирате всяко радио в интернет радио с помощта на
1964 Dansette Pi Интернет радио: 6 стъпки (със снимки)
1964 Dansette Pi Интернет радио: Това стилно преносимо радио Dansette от средата на 60-те години сега пуска най-добрите интернет радиостанции на 21-ви век благодарение на любящ ъпгрейд. Всички оригинални контроли са били използвани повторно и никога няма да разберете, че това е преобразуване - докато не го включите
Roberts RM33 Raspberry Pi Интернет радио (още едно…): 8 стъпки (със снимки)
Roberts RM33 Raspberry Pi Интернет радио (Още едно…): Да, това е друга версия на Raspberry Pi интернет радио, но не и първата ми. Не съм сигурен защо тази конструкция все още е толкова популярна, но все още ми харесва и не мога да кажа, че тази ще бъде и последната ми. Наистина харесвам вида на Робърт
Интернет радио/ уеб радио с Raspberry Pi 3 (без глава): 8 стъпки
Интернет радио/ уеб радио с Raspberry Pi 3 (без глава): Здравейте Искате ли свой собствен радио хостинг през интернет, тогава сте на правилното място. Ще се опитам да доразвия колкото е възможно повече. Опитах няколко начина, повечето от които или се нуждаеха от звукова карта, която нямах желание да купувам. но успях да стреля