Mundarija:
- 1 -qadam: Barcha qismlarni oling
- 2 -qadam: ESP32 kartasi
- 3 -qadam: MP3 dekoder
- 4 -qadam: Nextion displeyi
- 5 -qadam: Barcha qismlarni ulash
- 6 -qadam: Loyihaning kodeksi
- 7 -qadam: Yakuniy fikrlar va yaxshilanishlar
Video: ESP32 yordamida Internet radiosi: 7 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Aziz do'stlar, yana bir ko'rsatmaga xush kelibsiz! Bugun biz arzon ESP32 kartasi yordamida 3,5 dyuymli katta displeyli Internet -radio qurilmasini qurmoqchimiz. Ishonasizmi yoki yo'qmi, biz hozir Internet radiosini 10 daqiqadan kam va 30 dollardan kamroq qura olamiz. Yopish uchun juda ko'p narsa bor, boshlaylik!
Bir necha oy oldin men Arduino FM Radio loyihasini yakunladim, u juda yaxshi ishlaydi va menimcha, bundan ham yaxshiroq ko'rinadi. Agar siz ushbu loyihani qanday qurganimni ko'rishni istasangiz, ko'rsatmalarni o'qishingiz mumkin. Muammo shundaki, garchi bu radio ajoyib ko'rinadigan bo'lsa -da, bu amaliy emas, chunki men janubiy Yunonistonning kichik bir shaharchasida yashayman va men eshitishni afzal ko'rgan katta yunon radiostansiyalarida bu erda transmitterlar yo'q. Shunday qilib, men o'zim yoqtirgan radiolarni noutbukda yoki planshetda onlayn tinglayman, bu ham amaliy emas. Shunday qilib, bugun men butun dunyodagi sevimli radiostansiyalarimni tinglash uchun Internet -radio qurilmasini qurmoqchiman!
Ko'rib turganingizdek, loyihaning birinchi versiyasi taxtada tayyor. Keling, uni quvvatlantiraylik. Ko'rib turganingizdek, loyiha Internetga ulanadi va oldindan belgilangan radiostansiyalardan musiqa uzatadi.
Men Afinadan Real FM radiostansiyasini sozladim va shu tugmalar yordamida biz eshitayotgan radiostansiyani o'zgartirishimiz mumkin. Men sevimli radiostansiyalarimni ESP32 xotirasida saqladim, shuning uchun ularga osongina kirishim mumkin. Ushbu potentsiometr yordamida men karnay ovozini o'zgartirishim mumkin. Men retro foydalanuvchi interfeysi bilan 3,5 dyuymli katta displeyda biz eshitayotgan radiostansiya nomini ko'rsataman. Loyiha yaxshi ishlaydi va uni qurish juda oson.
Siz bir xil loyihani 10 daqiqadan kamroq vaqt ichida qurishingiz mumkin, lekin sizda tajriba bo'lishi kerak. Agar bu sizning birinchi loyihangiz bo'lsa, tajriba orttirish uchun avval soddasini qurishni o'ylab ko'ring. Loyihaning oddiy g'oyalari uchun Mening ko'rsatmalarni tekshiring va Arduino sizga qulayroq bo'lganda, elektronika bu ajoyib loyihani yaratish uchun qaytib keladi. Keling, o'z Internet -radioimizni qurishni boshlaylik.
6/6/2019 YANGILASh
Shovqin muammosi izolyator transformatorini qo'shish orqali hal qilindi. Yangilangan sxematik diagrammani ko'rib chiqing. Rahmat!
1 -qadam: Barcha qismlarni oling
Bizga quyidagi qismlar kerak bo'ladi:
- ESP32 ▶
- MP3 dekoder ▶
- Izolyatsiya transformatori ▶
- Kuchaytirgich ▶
- 3W dinamik ▶
- 3,5 dyuymli displey ▶
- Bosish tugmalari ▶
- Breadboard ▶
- Simlar ▶
Loyihaning umumiy qiymati 40 dollar atrofida, lekin agar siz displeydan foydalanmasangiz, loyihaning narxi 20 dollarni tashkil qiladi. Ajoyib narsalar. Biz bor -yo'g'i 20 dollar evaziga o'z internet -radioimizni qura olamiz!
2 -qadam: ESP32 kartasi
Loyihaning yuragi, albatta, kuchli ESP32 platasi. Agar siz u bilan tanish bo'lmasangiz, ESP32 chipi biz ilgari ko'p marta ishlatgan mashhur ESP8266 chipining vorisidir. ESP32 - bu hayvon! U 160 MGts chastotada ishlaydigan 32 bitli ikkita yadroli yadro, katta hajmli xotira, WiFi, Bluetooth va narxi 7 dollar atrofida bo'lgan boshqa ko'p funktsiyalarni taklif etadi! Ajoyib narsalar!
Iltimos, men ushbu taxtaga tayyorlagan batafsil sharhimni tomosha qiling. Men ushbu ko'rsatmaga videoni ilova qildim. Bu nima uchun bu chip bizning narsalarimizni abadiy o'zgartirishini tushunishga yordam beradi! ESP32-ning eng hayajonli jihatlaridan biri shundaki, u juda kuchli bo'lsa-da, u faqat 10 mikron oqim talab qiladigan chuqur uyqu rejimini taklif qiladi. Bu ESP32 ni past quvvatli ilovalar uchun ideal chipga aylantiradi.
Ushbu loyihada ESP32 platasi Internetga ulanadi, keyin biz eshitayotgan radiostansiyadan MP3 ma'lumotlarini oladi va displeyga ba'zi buyruqlar yuboradi.
3 -qadam: MP3 dekoder
MP3 ma'lumotlari SPI interfeysi yordamida MP3 dekoder moduliga yuboriladi. Ushbu modulda VS1053 IC ishlatiladi. Bu IC maxsus apparat MP3 dekoder. U MP3 ma'lumotlarini ESP32 -dan oladi va uni tezda audio signalga aylantiradi.
Bu audio raz'emdan chiqadigan audio signal kuchsiz va shovqinli, shuning uchun biz uni shovqindan tozalashimiz va kuchaytirishimiz kerak. (Agar siz minigarnituradan foydalansangiz, signalni shovqindan tozalash yoki kuchaytirishning hojati yo'q.) Shuning uchun men ovozni shovqindan tozalash uchun izolyatsiya transformatoridan va ovozli signalni kuchaytirish uchun PAM8403 audio kuchaytirgichidan foydalanaman. ma'ruzachiga. Men ESP32 -ga ikkita tugmachani uladim, faqat biz ma'lumot oladigan MP3 oqimini va biz eshitayotgan radiostansiyani ko'rsatish uchun Nextion displeyini o'zgartirdim.
4 -qadam: Nextion displeyi
Men ushbu loyiha uchun Nextion displeyidan foydalanishni tanladim, chunki uni ishlatish juda oson. Biz uni boshqarish uchun faqat bitta simni ulashimiz kerak.
Nextion displeylari - bu yangi turdagi displeylar. Ularning orqa tomonida o'zlarining ARM protsessorlari bor, ular displeyni boshqarish va foydalanuvchi interfeysini yaratish uchun javobgardir. Shunday qilib, biz ularni har qanday mikrokontroller bilan ishlatishimiz va ajoyib natijalarga erishishimiz mumkin. Men ushbu Nextion displeyining batafsil sharhini tayyorladim, unda ular qanday ishlashini, ulardan qanday foydalanish kerakligini va kamchiliklarini tushuntirib beradi. Siz uni bu erda o'qishingiz yoki biriktirilgan videoni ko'rishingiz mumkin.
5 -qadam: Barcha qismlarni ulash
Biz hozir qilishimiz kerak bo'lgan narsa - bu sxematik sxema bo'yicha barcha qismlarni bir -biriga ulash. Siz bu erda biriktirilgan sxematik sxemani topishingiz mumkin. Ulanish oddiy.
Shunga qaramay, e'tiborga olish kerak bo'lgan ikkita narsa bor. MP3 dekoder moduli stereo signal chiqaradi, lekin men bu loyihada faqat bitta audio kanaldan foydalanmoqdaman. Ovoz signalini olish uchun men audio kabelni modulning audio uyasiga uladim va ichidagi to'rtta simni ochish uchun kesib tashladim. Men ikkita simni uladim. Ulardan biri GND, ikkinchisi - ikkita audio kanaldan birining ovozli signalidir. Agar xohlasangiz, ikkala kanalni ham kuchaytirgich moduliga ulashingiz va ikkita karnayni haydashingiz mumkin.
Har bir audio kanal kuchaytirgichga ulanishdan oldin mavjud bo'lgan shovqinlarni tozalash uchun izolyatsiya transformatoridan o'tishi kerak
Ma'lumotni displeyga yuborish uchun biz faqat bitta simni ESP32 TX0 piniga ulashimiz kerak. Qismlarni ulab bo'lgach, biz kodni ESP32 -ga yuklashimiz kerak, biz esa GUIni Nextion displeyiga yuklashimiz kerak.
GUI -ni Nextion displeyiga yuklash uchun siz bilan baham ko'rmoqchi bo'lgan InternetRadio.tft faylini bo'sh SD -kartaga ko'chiring. SD -kartani displeyning orqa qismidagi SD -karta uyasiga joylashtiring. Keyin displeyni yoqing va GUI yuklanadi. Keyin SD -kartani chiqarib oling va quvvatni qayta ulang.
Kodni muvaffaqiyatli yuklaganingizdan so'ng, loyihani yoqamiz. U displeyda bir necha soniya davomida "Ulanmoqda …" matnini ko'rsatadi. Internetga ulangandan so'ng, loyiha oldindan belgilangan radiostansiyaga ulanadi. Uskuna kutilganidek ishlaydi, lekin endi loyihaning dasturiy tomonini ko'rib chiqaylik.
6 -qadam: Loyihaning kodeksi
Avvalo, sizga bir narsani ko'rsatib beray. Loyihaning kodi 140 qatordan kam. O'ylab ko'ring, biz 140 dyuymli kodli 3,5 dyuymli Internet -radio qura olamiz, bu ajoyib. Bularning barchasiga, albatta, minglab kod qatorlarini o'z ichiga olgan turli kutubxonalar yordamida erishishimiz mumkin. Bu Arduino va Ochiq kodli hamjamiyatning kuchi. Bu ishlab chiqaruvchilar uchun hamma narsani osonlashtiradi.
Ushbu loyihada men ESP32 platasi uchun VS1053 kutubxonasidan foydalanayapman.
Birinchidan, biz SSID va Wi-Fi tarmog'ining parolini aniqlashimiz kerak. Keyin biz bu erda ba'zi radiostansiyalarni saqlashimiz kerak. Bizga xost URL manzili, oqim joylashgan yo'l va biz foydalanishimiz kerak bo'lgan port kerak. Biz bu ma'lumotlarning barchasini ushbu o'zgaruvchilarga saqlaymiz.
char ssid = "yourSSID"; // sizning tarmoq SSID (ismingiz) char pass = "yourWifiPassword"; // tarmoq parolingiz
// Bir nechta radiostansiyalar
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};
Men bu misolga 4 ta radiostansiyani qo'shdim.
O'rnatish funktsiyasida biz tugmalarga uzilishlar qo'shamiz, biz MP3 dekoder modulini ishga tushiramiz va Wi-Fi tarmog'iga ulanamiz.
bo'sh o'rnatish () {
Serial.begin (9600); kechikish (500); SPI.begin ();
pinMode (oldingi tugma, INPUT_PULLUP);
pinMode (nextButton, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);
attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }
Loop funktsiyasida, birinchi navbatda, foydalanuvchi biz olgan ma'lumotdan boshqa radiostantsiyani tanlaganligini tekshiramiz. Agar shunday bo'lsa, biz yangi radiostansiyaga ulanamiz, aks holda biz oqimdan ma'lumotlarni olamiz va ularni MP3 dekoder moduliga yuboramiz.
void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); oldingiRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bayt o'qish); }}
Hammasi shu! Foydalanuvchi tugmachani bosganda, uzilish sodir bo'ladi va qaysi oqimga ulanish kerakligini aytadigan o'zgaruvchining qiymatini o'zgartiradi.
bekor IRAM_ATTR oldingiButtonInterrupt () {
statik belgisiz uzoq last_interrupt_time = 0;
imzosiz uzoq interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = interrupt_time; }
Displeyni yangilash uchun biz ketma -ket portga ba'zi buyruqlarni yuboramiz.
void drawRadioStationName (int id) {String buyrug'i; switch (id) {0 holat: buyruq = "p1.pic = 2"; Serial.print (buyruq); endNextionCommand (); tanaffus; // 1940 yil Buyuk Britaniya radiosi 1 -holat: buyruq = "p1.pic = 3"; Serial.print (buyruq); endNextionCommand (); tanaffus; // KOSMOS GREEK 2 -holat: buyruq = "p1.pic = 4"; Serial.print (buyruq); endNextionCommand (); tanaffus; // REAL FM GREEK 3 -holat: buyruq = "p1.pic = 5"; Serial.print (buyruq); endNextionCommand (); tanaffus; // SKAI 100.3 yunoncha}}
Keling, Nextion Display GUI -ni ko'rib chiqaylik. Nextion GUI fon rasmi va radiostansiya nomini aks ettiruvchi rasmdan iborat. ESP32 taxtasi o'rnatilgan tasvirlardan radiostansiya nomini o'zgartirish buyruqlarini yuboradi. Bu juda oson. Iltimos, qo'shimcha ma'lumot olish uchun men bir muncha oldin tayyorlagan Nextion displey qo'llanmasini ko'ring. Agar xohlasangiz, o'zingizning GUI -ni tezda loyihalashingiz va undagi boshqa narsalarni ko'rsatishingiz mumkin.
Har doimgidek, ushbu qo'llanmada biriktirilgan loyiha kodini topishingiz mumkin.
7 -qadam: Yakuniy fikrlar va yaxshilanishlar
Bu loyiha juda oddiy. Men oddiy Internet -radio loyihasi skeleti bilan ishlashni xohlardim. Loyihaning birinchi versiyasi tayyor bo'lganda, biz uni yaxshilash uchun unga ko'plab funktsiyalarni qo'shishimiz mumkin. Birinchidan, men barcha elektronikalarni joylashtirish uchun korpusni loyihalashim kerak.
Eng chiroyli radiolar haqidagi kitobda, bu loyiha uchun korpus sifatida tanlash uchun juda zo'r radiolar bor. O'ylaymanki, men bu ajoyib Art Deco radiosining atrofini quraman. Nima deb o'ylaysiz, sizga bu radio ko'rinishi yoqadimi yoki sizga zamonaviyroq narsa yoqadimi? Sizda boshqa mahkamlash g'oyalari bormi? Bundan tashqari, sizga ushbu Internet -radio loyihasi yoqadimi va uni foydali bo'lishi uchun unga qanday xususiyatlarni qo'shishimiz kerak deb o'ylaysiz? Men sizning fikrlaringiz va g'oyalaringizni o'qishni xohlayman, shuning uchun ularni quyidagi izohlar bo'limiga joylashtiring.
Tavsiya:
BOSEBerry Pi Internet radiosi: 4 qadam (rasmlar bilan)
BOSEBerry Pi Internet radiosi: Men radio tinglashni yaxshi ko'raman! Men o'z uyimda DAB radiosidan foydalanardim, lekin ziyofat biroz notekis va ovoz uzilib ketayotganini payqadim, shuning uchun men o'z internet -radioimni qurishga qaror qildim. Menda uyning atrofida kuchli Wi -Fi signali va raqamli akam bor
Raspberry Pi bilan ishlaydigan Internet radiosi: 5 qadam (rasmlar bilan)
Raspberry Pi bilan ishlaydigan Internet radiosi: eski radiolardagidek, terish va tugmachalarni bosishdan mamnun bo'lgan narsa bor. Afsuski, bu radiolarning ko'pchiligi buzilgan yoki stantsiyalar jim bo'lib qolgan. Yaxshiyamki, har qanday radiolarni Internet -radioga yangilash unchalik qiyin emas
1964 yil Dansette Pi Internet radiosi: 6 qadam (rasmlar bilan)
1964 yil Dansette Pi Internet-radiosi: 1960-yillarning o'rtalarida, zamonaviy Dansette portativ radiosi hozirda XXI asrning eng yaxshi internet-radiostansiyalarini sevib yangilash tufayli o'ynayapti. Barcha asl boshqaruv elementlari qayta ishlatilgan va siz bu konvertatsiya ekanligini hech qachon bilmaysiz - uni yoqmaguningizcha
Roberts RM33 Raspberry Pi Internet radiosi (Yana bir ): 8 qadam (rasmlar bilan)
Roberts RM33 Raspberry Pi Internet -radiosi (Yana bir …): Ha, bu boshqa Raspberry Pi internet -radiosi va meniki ham emas. Nima uchun bu qurilish hali ham mashhur bo'lganiga ishonchim komil emas, lekin men hali ham bundan zavqlanaman va bu men uchun ham oxirgi bo'ladi deb ayta olmayman. Menga Robertning ko'rinishi juda yoqadi
1979 Bang & Olufsen Raspberry Pi Internet radiosi: 10 qadam (rasmlar bilan)
1979 Bang & Olufsen Raspberry Pi Internet Radio: Bu 1979 Bang & Olufsen Beocord 1500 kaset yozuvchisi, men mustaqil Raspberry Pi internet -radiosiga aylantirdim. Analog VU o'lchagichlari Pi tomonidan DAC (Raqamli -Analog Konverter) sxemasi orqali boshqariladi, joriy vaqt,