Агуулгын хүснэгт:

ESP32 ашиглан интернет радио: 7 алхам (зурагтай)
ESP32 ашиглан интернет радио: 7 алхам (зурагтай)

Видео: ESP32 ашиглан интернет радио: 7 алхам (зурагтай)

Видео: ESP32 ашиглан интернет радио: 7 алхам (зурагтай)
Видео: ADVANCED ANIMAL ROBOTS YOU NEED TO SEE 2024, Арваннэгдүгээр
Anonim
Image
Image
ESP32 ашиглан интернет радио
ESP32 ашиглан интернет радио
ESP32 ашиглан интернет радио
ESP32 ашиглан интернет радио

Эрхэм хүндэт найзуудаа өөр нэг зааварчилгаанд урьж байна! Өнөөдөр бид хямд үнэтэй ESP32 самбар ашиглан 3.5 инчийн том дэлгэц бүхий интернет радио төхөөрөмжийг бүтээх гэж байна. Итгэх үү, итгэхгүй байна уу, бид одоо интернет радиог 10 хүрэхгүй минутын дотор, 30 доллараас бага үнээр бүтээж чадна. Хийх зүйл маш их байгаа тул эхлүүлцгээе!

Хэдэн сарын өмнө би маш сайн ажилладаг, миний бодлоор бүр ч илүү сайхан харагдаж байгаа Arduino FM Radio төслийг дуусгасан. Хэрэв та энэ төслийг би хэрхэн бүтээсэн болохыг харахыг хүсвэл эндээс зааврыг уншиж болно. Асуудал нь энэ радио нь дажгүй харагдаж байгаа боловч энэ нь тийм ч практик биш юм, учир нь би Грекийн өмнөд хэсэгт байдаг жижиг хотод амьдардаг, миний сонсохыг илүүд үздэг Грекийн том радио станцууд энд байхгүй. Тиймээс, би дуртай радиогаа зөөврийн компьютер эсвэл таблет компьютер дээрээ онлайнаар сонсдог бөгөөд энэ нь тийм ч практик биш юм. Тиймээс, өнөөдөр би дэлхийн өнцөг булан бүрээс дуртай радио станцуудаа сонсохын тулд интернет радио төхөөрөмж бүтээх гэж байна.

Таны харж байгаагаар төслийн эхний хувилбар талхны самбар дээр бэлэн болсон байна. Үүнийг хүчээр асаацгаая. Таны харж байгаагаар төсөл нь интернетэд холбогдож, дараа нь урьдчилан тодорхойлсон радио станцуудаас хөгжим дамжуулдаг.

Би Афинаас ирсэн Real FM радио станцыг тааруулсан бөгөөд эдгээр товчлууруудыг ашиглан бид сонсож буй радио станцаа өөрчилж болно. Би дуртай радио станцуудаа ESP32 -ийн санах ойд хадгалсан тул тэдэнд хялбархан хандах боломжтой болсон. Энэхүү потенциометрийн тусламжтайгаар би чанга яригчийн дууг өөрчилж чадна. Би бидний сонсож буй радио станцын нэрийг 3.5 инчийн том дэлгэц дээр чимэг хэрэглэгчийн интерфэйстэй харуулдаг. Төсөл маш сайн ажилладаг бөгөөд бүтээхэд маш хялбар байдаг.

Та 10 минутын дотор ижил төслийг барьж чадна, гэхдээ та тодорхой туршлагатай байх хэрэгтэй. Хэрэв энэ бол таны анхны төсөл бол туршлага олж авахын тулд эхлээд илүү энгийн загварыг бүтээх талаар бодож үзээрэй. Төслийн энгийн санаануудын талаар миний зааварчилгааг шалгаад, Arduino -д илүү тухтай байх үед электрон төхөөрөмжүүд энэхүү гайхалтай төслийг бүтээхээр буцаж ирнэ. Одоо өөрийн гэсэн интернет радио үүсгэж эхэлцгээе.

2019.06.06

Дуу чимээний асуудлыг тусгаарлагч трансформатор нэмж шийдсэн. Шинэчилсэн схемийн диаграмыг үзнэ үү. Баярлалаа!

Алхам 1: Бүх эд ангиудыг авах

Бүх эд ангиудыг аваарай
Бүх эд ангиудыг аваарай

Бидэнд дараах хэсгүүд хэрэгтэй болно.

  • ESP32 ▶
  • MP3 декодер ▶
  • Тусгаарлагч трансформатор ▶
  • Өсгөгч ▶
  • 3W чанга яригч ▶
  • 3.5 "Nextion дэлгэц ▶
  • Товчлуур дарах ▶
  • Breadboard ▶
  • Утас ▶

Төслийн нийт өртөг нь ойролцоогоор 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 декодер юм. Энэ нь ESP32 -аас MP3 өгөгдлийг авдаг бөгөөд үүнийг аудио дохио болгон хурдан хөрвүүлдэг.

Энэ аудио үүрэнд гардаг аудио дохио нь сул, дуу чимээ ихтэй байдаг тул бид үүнийг чимээ шуугианаас цэвэрлэж, өсгөх хэрэгтэй. (Хэрэв та чихэвч хэрэглэж байгаа бол дохиог чимээ шуугианаас цэвэрлэх эсвэл өсгөх шаардлагагүй.) Тиймээс би дуу чимээг дуу чимээнээс цэвэрлэхийн тулд тусгаарлах трансформатор, аудио дохиог олшруулж, дараа нь илгээх PAM8403 аудио өсгөгч ашиглаж байна. чанга яригч руу. Би мөн ESP32 -т хоёр товчлуурыг холбож, бидний хүлээн авч буй MP3 урсгалыг, сонсож буй радио станцаа харуулах Nextion дэлгэцийг өөрчилсөн.

Алхам 4: Nextion дэлгэц

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 = "таныSSID"; // таны сүлжээний SSID (нэр) char pass = "yourWifiPassword"; // таны сүлжээний нууц үг

// Цөөхөн радио станц

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

Би энэ жишээнд 4 радио станц оруулсан.

Тохиргооны функц дээр бид товчлуурууд дээр тасалдал хавсаргаж, MP3 декодерын модулийг эхлүүлж, Wi-Fi-д холбогддог.

хүчингүй тохиргоо () {

Цуваа эхлэх (9600); саатал (500); SPI.begin ();

pinMode (өмнөхButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (өмнөхButton), өмнөхButtonInterrupt, FALLING);

attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }

Циклийн функц дээр юуны түрүүнд хэрэглэгч бидний авч буй радио станцаас өөр радио станц сонгосон эсэхийг шалгадаг. Хэрэв тийм бол бид шинэ радио станцтай холбогдож, өөр урсгалаас мэдээлэл авч MP3 декодер модуль руу илгээдэг.

void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); өмнөхRadioStation = 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--; өөр radioStation = 3; } last_interrupt_time = тасалдах_хугацаа; }

Дэлгэцийг шинэчлэхийн тулд бид хэд хэдэн тушаалыг цуваа порт руу илгээдэг.

void drawRadioStationName (int id) {String тушаал; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (тушаал); endNextionCommand (); завсарлага; // 1940 онд Их Британийн Радио хэрэг 1: command = "p1.pic = 3"; Serial.print (тушаал); endNextionCommand (); завсарлага; // KOSMOS GREEK тохиолдол 2: command = "p1.pic = 4"; Serial.print (тушаал); endNextionCommand (); завсарлага; // REAL FM GREEK тохиолдол 3: command = "p1.pic = 5"; Serial.print (тушаал); endNextionCommand (); завсарлага; // СКАЙ 100.3 ГРЕК}}

Одоо Nextion Display GUI -ийг авч үзье. Nextion GUI нь арын зураг болон радио станцын нэрийг харуулсан зургаас бүрдэнэ. ESP32 самбар нь суулгагдсан зургуудаас радио станцын нэрийг өөрчлөх тушаал илгээдэг. Энэ нь маш амархан. Нэмэлт мэдээлэл авахын тулд хэсэг хугацааны өмнө миний бэлтгэсэн Nextion дэлгэцийн хичээлийг үзнэ үү. Хэрэв та хүсвэл GUI -ийг хурдан зохион бүтээж, үүн дээр илүү олон зүйлийг үзүүлэх боломжтой.

Үргэлж та энэхүү зааварт хавсаргасан төслийн кодыг олох боломжтой.

Алхам 7: Эцсийн бодол ба сайжруулалт

Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт

Энэ төсөл нь маш энгийн. Би Интернет радио төслийн энгийн араг ястай ажиллахыг хүсч байсан. Төслийн эхний хувилбар бэлэн болсон тул бид үүнийг сайжруулахын тулд олон онцлог шинж чанаруудыг нэмж болно. Нэгдүгээрт, би бүх цахилгаан хэрэгслийг байрлуулах хашлага зохион бүтээх хэрэгтэй.

Хамгийн үзэсгэлэнтэй радиогийн тухай энэ номонд энэхүү төслийн хашлага болгон сонгох маш гайхалтай радио байдаг. Энэхүү гайхамшигтай Art Deco радиогоор би хашаа барих гэж байна гэж бодож байна. Та юу гэж бодож байна, энэ радиогийн гадаад төрх танд таалагдаж байна уу эсвэл илүү орчин үеийн зүйлийг илүүд үздэг үү? Танд өөр хашаа барих санаа байна уу? Түүнчлэн, энэхүү интернет радио төсөл танд таалагдаж байна уу, үүнийг илүү ашигтай болгохын тулд бид ямар онцлог шинж чанаруудыг нэмж оруулах хэрэгтэй гэж бодож байна вэ? Таны бодол санаа, санааг уншихад таатай байх болно, үүнийг доорхи сэтгэгдэл хэсэгт бичнэ үү.

Зөвлөмж болгож буй: