Სარჩევი:

ინტერნეტ რადიო ESP32– ის გამოყენებით: 7 ნაბიჯი (სურათებით)
ინტერნეტ რადიო ESP32– ის გამოყენებით: 7 ნაბიჯი (სურათებით)

ვიდეო: ინტერნეტ რადიო ESP32– ის გამოყენებით: 7 ნაბიჯი (სურათებით)

ვიდეო: ინტერნეტ რადიო ESP32– ის გამოყენებით: 7 ნაბიჯი (სურათებით)
ვიდეო: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, ივნისი
Anonim
Image
Image
ინტერნეტ რადიო ESP32– ის გამოყენებით
ინტერნეტ რადიო ESP32– ის გამოყენებით
ინტერნეტ რადიო ESP32– ის გამოყენებით
ინტერნეტ რადიო ESP32– ის გამოყენებით

ძვირფასო მეგობრებო, კეთილი იყოს თქვენი მობრძანება სხვა ინსტრუქციებში! დღეს ჩვენ ვაპირებთ ავაშენოთ ინტერნეტ რადიო მოწყობილობა დიდი 3.5 დიუმიანი დისპლეით იაფი ESP32 დაფის გამოყენებით. გინდ დაიჯერეთ თუ არა, ჩვენ ახლა შეგვიძლია ავაშენოთ ინტერნეტ რადიო 10 წუთზე ნაკლებ დროში და 30 დოლარზე ნაკლებ ფასად. დასაფარავი ბევრია, ასე რომ, დავიწყოთ!

რამდენიმე თვის წინ, მე დავასრულე Arduino FM რადიო პროექტი, რომელიც მშვენივრად მუშაობს და ჩემი აზრით კიდევ უკეთ გამოიყურება. თუ გსურთ ნახოთ როგორ შევქმენი ეს პროექტი, შეგიძლიათ წაიკითხოთ ინსტრუქცია აქ. პრობლემა ის არის, რომ, მიუხედავად იმისა, რომ ეს რადიო მაგარია, მაგრამ ეს არ არის პრაქტიკული, რადგან მე ვცხოვრობ სამხრეთ საბერძნეთის პატარა ქალაქში და ბერძნული დიდი რადიოსადგურები, რომელთა მოსმენა მირჩევნია, მაგრამ არ აქვთ გადამცემები აქ. ასე რომ, მე ვუსმენ ჩემს საყვარელ რადიოს ინტერნეტით ჩემს ლეპტოპზე ან ტაბლეტზე, რომელიც ასევე არც თუ ისე პრაქტიკულია. ასე რომ, დღეს ვაპირებ ავაშენო ინტერნეტ რადიო მოწყობილობა, რათა შემეძლოს ჩემი საყვარელი რადიოსადგურების მოსმენა მთელი მსოფლიოდან!

როგორც ხედავთ, პროექტის პირველი ვერსია მზად არის დაფაზე. გავამძაფროთ. როგორც ხედავთ, პროექტი უკავშირდება ინტერნეტს და შემდეგ გადასცემს მუსიკას წინასწარ განსაზღვრული რადიოსადგურებიდან.

მე დარეგულირებული ვარ ათენის რეალ 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 არის მხეცი! ის გთავაზობთ ორი 32 ბიტიანი დამუშავების ბირთვს, რომლებიც მუშაობენ 160 MHz– ზე, მასიურ მეხსიერებას, WiFi– ს, Bluetooth– ს და ბევრ სხვა მახასიათებელს, რომლის ღირებულებაა დაახლოებით 7 $! საოცარი პერსონალი!

გთხოვთ იხილოთ დეტალური მიმოხილვა, რომელიც მე მოვამზადე ამ დაფისთვის. მე დავამატე ვიდეო ამ ინსტრუქციულზე. ეს გვეხმარება იმის გაგებაში, თუ რატომ ცვლის ეს ჩიპი სამუდამოდ ნივთებს! ESP32– ის ერთ – ერთი ყველაზე ამაღელვებელი ის არის, რომ მიუხედავად იმისა, რომ ის ისეთი ძლიერია, ის გთავაზობთ ღრმა ძილის რეჟიმს, რომელიც მოითხოვს მხოლოდ 10μΑ დენს. ეს ხდის ESP32 იდეალურ ჩიპს დაბალი სიმძლავრის პროგრამებისთვის.

ამ პროექტში ESP32 დაფა უკავშირდება ინტერნეტს და შემდეგ იღებს MP3 მონაცემებს რადიოსადგურიდან, რომელსაც ჩვენ ვუსმენთ და ის აგზავნის ზოგიერთ ბრძანებას ეკრანზე.

ნაბიჯი 3: MP3 დეკოდირება

MP3 დეკოდირი
MP3 დეკოდირი
MP3 დეკოდირი
MP3 დეკოდირი

MP3 მონაცემები შემდეგ იგზავნება MP3 დეკოდერის მოდულში SPI ინტერფეისის გამოყენებით. ეს მოდული იყენებს 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 ხაზის კოდით, ეს გასაოცარია. ჩვენ შეგვიძლია მივაღწიოთ ამ ყველაფერს სხვადასხვა ბიბლიოთეკების გამოყენებით, რომლებიც შეიცავს ათასობით კოდის ხაზს. ეს არის არდუინოს და ღია კოდის საზოგადოების ძალა. ეს ამარტივებს საქმეს შემქმნელებისთვის.

ამ პროექტში მე ვიყენებ 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 () {

სერიული.დაწყება (9600); დაგვიანება (500); SPI. დასაწყისი ();

pinMode (წინა ღილაკი, INPUT_PULLUP);

pinMode (შემდეგი ღილაკი, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);

attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); 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 previousButtonIntruptrupt () {

სტატიკური ხელმოუწერელი ხანგრძლივი last_interrupt_time = 0;

ხელმოუწერელი ხანგრძლივი interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; სხვაგან რადიოსადგური = 3; } last_interrupt_time = დროის შეწყვეტა; }

ეკრანის განახლებისთვის, ჩვენ უბრალოდ ვუგზავნით რამდენიმე ბრძანებას სერიულ პორტს.

void drawRadioStationName (int id) {სიმებიანი ბრძანება; 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 (); შესვენება; // SKAI 100.3 GREEK}}

ახლა მოდით შევხედოთ Nextion Display GUI- ს. Nextion GUI შედგება ფონის სურათისა და სურათისგან, რომელიც აჩვენებს რადიოსადგურის სახელს. ESP32 დაფა აგზავნის ბრძანებებს რადიოსადგურის სახელის შეცვლის ჩამონტაჟებული სურათებიდან. ძალიან ადვილია. გთხოვთ, უყუროთ Nextion ჩვენების სახელმძღვანელოს, რომელიც მე მოვამზადე რამდენიმე ხნის წინ დამატებითი ინფორმაციისთვის. სურვილისამებრ შეგიძლიათ სწრაფად შეიმუშაოთ საკუთარი GUI და აჩვენოთ მეტი რამ მასზე.

როგორც ყოველთვის, თქვენ შეგიძლიათ იპოვოთ პროექტის კოდი თანდართული ამ ინსტრუქციებში.

ნაბიჯი 7: საბოლოო აზრები და გაუმჯობესებები

საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები

ეს პროექტი ძალიან მარტივია. მინდოდა მარტივი ინტერნეტ რადიო პროექტის ჩონჩხთან მუშაობა. ახლა, როდესაც პროექტის პირველი ვერსია მზად არის, ჩვენ შეგვიძლია ბევრი ფუნქცია დავამატოთ მას გასაუმჯობესებლად. უპირველეს ყოვლისა, მე უნდა შევქმნა დანართი, სადაც განთავსდება ყველა ელექტრონიკა.

ამ წიგნში, რომელიც ოდესმე გაკეთდა ულამაზესი რადიოების შესახებ, არის ძალიან მაგარი რადიოები, რომლითაც შეგიძლიათ აირჩიოთ, როგორც ამ პროექტის დანართი. მე ვფიქრობ, რომ ვაპირებ ამ სანახაობრივი არტ დეკო რადიოს ირგვლივ გარს შემოვუშო. როგორ ფიქრობთ, მოგწონთ ამ რადიოს გარეგნობა თუ გირჩევნიათ რაიმე უფრო თანამედროვე? გაქვთ რაიმე სხვა დანართის იდეები? ასევე, მოგწონთ თუ არა ინტერნეტ რადიოს პროექტი და როგორ ფიქრობთ, რა მახასიათებლები უნდა დავამატოთ, რომ ის უფრო სასარგებლო იყოს? მე სიამოვნებით წავიკითხავ თქვენს აზრებს და იდეებს, ასე რომ, გთხოვთ განათავსოთ ისინი ქვემოთ მოცემულ კომენტარებში.

გირჩევთ: