Բովանդակություն:
- Քայլ 1: Ստացեք բոլոր մասերը
- Քայլ 2: ESP32 տախտակ
- Քայլ 3: MP3 ապակոդավորիչ
- Քայլ 4: Հաջորդի ցուցադրում
- Քայլ 5: Բոլոր մասերի միացում
- Քայլ 6. Նախագծի ծածկագիրը
- Քայլ 7: Վերջնական մտքեր և բարելավումներ
Video: ESP32- ի միջոցով ինտերնետային ռադիոընդունիչ. 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Հարգելի ընկերներ, բարի գալուստ մեկ այլ Ուսուցիչ: Այսօր մենք պատրաստվում ենք կառուցել 3,5 դյույմ մեծ էկրանով ինտերնետային ռադիո սարք `օգտագործելով էժան ESP32 տախտակ: Ուզում եք հավատացեք, ուզում եք ՝ ոչ, մենք այժմ կարող ենք ինտերնետ ռադիոկայան կառուցել 10 րոպեից պակաս ժամանակում և 30 դոլարից էլ պակաս գումարով: Շատ բան կա լուսաբանելու, եկեք սկսենք:
Մի քանի ամիս առաջ ես ավարտեցի Arduino FM Radio նախագիծը, որը հիանալի է աշխատում և, իմ կարծիքով, նույնիսկ ավելի լավ տեսք ունի: Եթե ցանկանում եք տեսնել, թե ինչպես եմ ես կառուցել այս նախագիծը, կարող եք կարդալ Instructable- ը այստեղ: Խնդիրն այն է, որ չնայած այս ռադիոն զով է թվում, բայց դա գործնական չէ, քանի որ ես ապրում եմ հարավային Հունաստանի մի փոքր քաղաքում, և հունական մեծ ռադիոկայանները, որոնց ես նախընտրում եմ լսել, այստեղ չունեն հաղորդիչներ: Այսպիսով, ես առցանց լսում եմ իմ նախընտրած ռադիոկայանները իմ նոութբուքի կամ պլանշետի համակարգչի վրա, որը նույնպես այնքան էլ գործնական չէ: Այսպիսով, այսօր ես պատրաստվում եմ կառուցել ինտերնետային ռադիո սարք, որպեսզի կարողանամ լսել իմ սիրած ռադիոկայանները ամբողջ աշխարհից:
Ինչպես տեսնում եք, նախագծի առաջին տարբերակը պատրաստ է հացահատիկի վրա: Եկեք այն հզորացնենք: Ինչպես տեսնում եք, նախագիծը միանում է ինտերնետին, այնուհետև երաժշտություն է փոխանցում կանխորոշված ռադիոկայաններից:
Ես միացել եմ Աթենքից Real FM ռադիոկայանին և այս կոճակների միջոցով կարող ենք փոխել ռադիոկայանը, որը մենք լսում ենք: Ես պահել եմ իմ սիրած ռադիոկայանները ESP32- ի հիշողության մեջ, որպեսզի կարողանամ հեշտությամբ մուտք գործել դրանք: Այս պոտենցիոմետրով ես կարող եմ փոխել բարձրախոսի ձայնը: Ես ցուցադրում եմ այն ռադիոկայանի անունը, որը մենք լսում ենք, մեծ 3.5”էկրանով ՝ ռետրո ինտերֆեյսով: Նախագիծը լավ է աշխատում, և այն կառուցելը շատ հեշտ է:
Դուք կարող եք նույն նախագիծը կառուցել 10 րոպեից պակաս ժամանակում, բայց ձեզ հարկավոր է որոշակի փորձ ունենալ: Եթե սա ձեր առաջին նախագիծն է, մտածեք նախ կառուցել ավելի պարզ ծրագիր ՝ որոշակի փորձ ձեռք բերելու համար: Ստուգեք իմ հրահանգները `պարզ նախագծային գաղափարների համար, և երբ ավելի հարմարավետ լինեք Arduino- ի հետ, էլեկտրոնիկան կվերադառնա` կառուցելու այս հիանալի նախագիծը: Եկեք հիմա սկսենք կառուցել մեր սեփական ինտերնետային ռադիոն:
ԹԱՐՄԱՆԵԼ 6/6/2019
Աղմուկի հարցը լուծվել է մեկուսիչ տրանսֆորմատոր ավելացնելով: Ստուգեք թարմացված շեմատիկ դիագրամը: Շնորհակալություն
Քայլ 1: Ստացեք բոլոր մասերը
Մեզ անհրաժեշտ կլինեն հետևյալ մասերը.
- ESP32 ▶
- MP3 ապակոդավորիչ ▶
- Մեկուսիչ տրանսֆորմատոր ▶
- Ուժեղացուցիչ ▶
- 3W բարձրախոս ▶
- 3.5 "Nextion Display ▶
- Հրել կոճակներ ▶
- Breadboard ▶
- Լարեր ▶
Նախագծի ընդհանուր արժեքը մոտ 40 $ է, բայց եթե էկրան չօգտագործեք, ծրագրի արժեքը մոտ 20 $ է: Amazարմանալի իրեր: Մենք կարող ենք կառուցել մեր սեփական ինտերնետային ռադիոն ընդամենը 20 դոլարով:
Քայլ 2: ESP32 տախտակ
Նախագծի առանցքը, իհարկե, հզոր ESP32 տախտակն է: Եթե դուք ծանոթ չեք դրան, ESP32 չիպը հանդիսանում է հայտնի ESP8266 չիպի իրավահաջորդը, որը մենք բազմիցս օգտագործել ենք անցյալում: ESP32- ը գազան է: Այն առաջարկում է երկու 32 բիթանոց պրոցեսորային միջուկներ, որոնք աշխատում են 160 ՄՀց հաճախականությամբ, հսկայական քանակությամբ հիշողություն, WiFi, Bluetooth և բազմաթիվ այլ հնարավորություններ ՝ մոտ 7 դոլար արժողությամբ: Amazարմանալի իրեր!
Խնդրում ենք դիտել այս տախտակի համար պատրաստած մանրամասն ակնարկը: Ես կցել եմ այս հրահանգի տեսանյութը: Դա կօգնի հասկանալ, թե ինչու է այս չիպը ընդմիշտ փոխելու իրերի ստեղծման եղանակը: ESP32- ի ամենահուզիչ բաներից մեկն այն է, որ չնայած այն այնքան հզոր է, բայց այն առաջարկում է խոր քնի ռեժիմ, որը պահանջում է ընդամենը 10μΑ հոսանք: Սա ESP32- ը դարձնում է իդեալական չիպ ցածր էներգիայի կիրառման համար:
Այս նախագծում ESP32 տախտակը միանում է ինտերնետին, այնուհետև ստանում է MP3 տվյալներ այն ռադիոկայանից, որը մենք լսում ենք, և այն որոշ հրամաններ է ուղարկում էկրանին:
Քայլ 3: MP3 ապակոդավորիչ
Այնուհետև MP3 տվյալները ուղարկվում են MP3 ապակոդավորման մոդուլ ՝ օգտագործելով SPI ինտերֆեյսը: Այս մոդուլն օգտագործում է VS1053 IC- ն: Այս IC- ն հատուկ ապարատային MP3 ապակոդավորիչ է: Այն ստանում է MP3 տվյալները ESP32- ից և այն շատ արագ փոխակերպում է ձայնային ազդանշանի:
Աուդիո ազդանշանը, որը դուրս է գալիս այս աուդիո խցիկից թույլ և աղմկոտ է, ուստի մենք պետք է մաքրենք այն աղմուկից և ուժեղացնենք այն: (Եթե ականջակալներ եք օգտագործում, ազդանշանը պետք չէ մաքրել աղմուկից կամ ուժեղացնել): Այդ իսկ պատճառով ես օգտագործում եմ Մեկուսիչ տրանսֆորմատոր `ձայնը աղմուկից մաքրելու համար, և PAM8403 ձայնային ուժեղացուցիչ` ձայնային ազդանշանը ուժեղացնելու, այնուհետև ուղարկելու համար: խոսնակին: Ես նաև ESP32- ին միացրել եմ երկու կոճակ `MP3 հոսքը փոխելու համար, որից մենք ստանում ենք տվյալներ, և Nextion- ի ցուցադրում` ռադիոկայանը, որը մենք լսում ենք:
Քայլ 4: Հաջորդի ցուցադրում
Ես ընտրեցի օգտագործել 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- ի և Բաց կոդով համայնքի ուժն է: Դա ամեն ինչ հեշտացնում է ստեղծողների համար:
Այս նախագծում ես օգտագործում եմ 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 (նախորդ կոճակ, INPUT_PULLUP);
pinMode (հաջորդ կոճակը, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);
attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Dododer (); connectToWIFI (); }
Օղակի գործառույթում, առաջին հերթին, մենք ստուգում ենք, արդյոք օգտվողն ընտրել է այլ ռադիոկայան, քան այն, որից մենք տվյալներ ենք ստանում: Եթե այո, ապա մենք միանում ենք նոր ռադիոկայանին, այլապես տվյալներ ենք ստանում հոսքից և ուղարկում դրանք MP3 ապակոդավորման մոդուլին:
void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = ռադիոկայան; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}
Վերջ! Երբ օգտվողը սեղմում է կոճակը, տեղի է ունենում ընդհատում և փոխում է փոփոխականի արժեքը, որը հուշում է, թե որ հոսքին միանալ:
անվավեր IRAM_ATTR previousButtonInterrupt () {
ստատիկ անստորագիր երկար last_interrupt_time = 0;
unsigned long interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; այլապես ռադիոկայան = 3; } last_interrupt_time = interrupt_time; }
Էկրանը թարմացնելու համար մենք պարզապես որոշ հրամաններ ենք ուղարկում սերիական նավահանգիստ:
void drawRadioStationName (int id) {Լարային հրաման; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (հրաման); endNextionCommand (); ընդմիջում; // 1940 Միացյալ Թագավորության ռադիոյի դեպք 1. Հրաման = "p1.pic = 3"; Serial.print (հրաման); endNextionCommand (); ընդմիջում; // KOSMOS GREEK case 2: command = "p1.pic = 4"; Serial.print (հրաման); endNextionCommand (); ընդմիջում; // REAL FM GREEK case 3: command = "p1.pic = 5"; Serial.print (հրաման); endNextionCommand (); ընդմիջում; // SKAI 100.3 GREEK}}
Այժմ եկեք նայենք Nextion Display GUI- ին: Nextion GUI- ն բաղկացած է ֆոնային պատկերից և նկարից, որը ցուցադրում է Ռադիոկայանի անունը: ESP32 տախտակն ուղարկում է հրամաններ ՝ փոխելու ռադիոկայանի անունը ներկառուցված պատկերներից: Դա շատ հեշտ է: Խնդրում ենք դիտել Nextion ցուցադրման ձեռնարկը, որը ես պատրաստել եմ որոշ ժամանակ առաջ ՝ լրացուցիչ տեղեկությունների համար: Wishանկության դեպքում կարող եք արագ նախագծել ձեր սեփական GUI- ն և ավելի շատ իրեր ցուցադրել դրա վրա:
Ինչպես միշտ, դուք կարող եք գտնել ծրագրի ծածկագիրը, որը կցված է սույն Հրահանգում:
Քայլ 7: Վերջնական մտքեր և բարելավումներ
Այս նախագիծը շատ պարզ է: Ես ուզում էի մի պարզ ինտերնետային ռադիոյի ծրագրի կմախքի հետ աշխատել: Այժմ, երբ նախագծի առաջին տարբերակը պատրաստ է, մենք կարող ենք դրան ավելացնել բազմաթիվ հնարավորություններ `այն բարելավելու համար: Առաջին հերթին, ես պետք է նախագծեմ մի պարիսպ, որտեղ կտեղադրվեն ամբողջ էլեկտրոնիկան:
Երբևէ արված Ամենագեղեցիկ ռադիոկայանների մասին այս գրքում կան շատ զով ռադիոկայաններ, որոնցից կարելի է ընտրել որպես այս նախագծի պատյան: Կարծում եմ, որ պատրաստվում եմ պարիսպ կառուցել այս դիտարժան Art Deco ռադիոյի շուրջ: Ի՞նչ եք կարծում, Ձեզ դուր են գալիս այս ռադիոյի արտաքին տեսքերը, թե նախընտրում եք ավելի արդիական մի բան: Ունե՞ք այլ փակման գաղափարներ: Բացի այդ, Ձեզ դուր է գալիս այս ինտերնետային ռադիոյի նախագիծը, և ի՞նչ եք կարծում, ինչ հատկություններ պետք է ավելացնենք դրան, որպեսզի այն ավելի օգտակար լինի: Ուրախ կլինեմ կարդալ ձեր մտքերն ու գաղափարները, ուստի խնդրում ենք դրանք տեղադրել ստորև բերված մեկնաբանությունների բաժնում:
Խորհուրդ ենք տալիս:
Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարում. 5 քայլ
Blynk հավելվածի միջոցով Nodemcu- ի միջոցով ինտերնետի միջոցով կառավարելը. Բարև բոլորին, այսօր մենք ձեզ ցույց կտանք, թե ինչպես կարող եք վերահսկել LED- ը սմարթֆոնի միջոցով ինտերնետում
FM ռադիոընդունիչ միացումներից ՝ 13 քայլ
FM ռադիո ՝ Snap Circuits- ից. Օգտագործելով Elenco Snap Circuit համակարգը
Տնային աուդիո համակարգին ռադիոընդունիչ ավելացնելը `3 քայլ
Տնային աուդիո համակարգին ռադիոընդունիչ ավելացնելը. Այսօր ինտերնետային ռադիոյով մենք գրեթե չենք օգտագործում սովորական (ալեհավաք) ռադիո: Ես կասեի, որ ամենալավ ժամանակն է տանը ունենալ լավ հին հուսալի ռադիո և լսել հաճելի երաժշտություն և Corona- նորություններ
Ինտերնետային բովանդակության զտում DNS- ի միջոցով. 10 քայլ
Ինտերնետային բովանդակության զտում DNS- ի միջոցով. Թարմացվել է 2021 թվականի փետրվարի 3 -ին ՝ լրացուցիչ տեղեկություններ 8 -րդ քայլերում ներառելու համար: 9. Լայնորեն հայտնի է, որ ինտերնետում կա շատ բովանդակություն, որը ճիշտ չէ երեխաների համար դիտելու համար: Թեև այնքան էլ հայտնի չէ այն փաստը, որ դուք
Ինչպես դարձնել պարզ FM ռադիոընդունիչ 100% երաշխավորված աշխատող `4 քայլ
Ինչպես դարձնել պարզ FM ռադիոընդունիչը 100% երաշխավորված աշխատող. բաղադրիչներ, որոնք պահանջում են հատուկ փոփոխական կոնդենսատոր