Isi kandungan:

Radio Internet Menggunakan ESP32: 7 Langkah (dengan Gambar)
Radio Internet Menggunakan ESP32: 7 Langkah (dengan Gambar)

Video: Radio Internet Menggunakan ESP32: 7 Langkah (dengan Gambar)

Video: Radio Internet Menggunakan ESP32: 7 Langkah (dengan Gambar)
Video: ESP32 Internet Radio project with A 3.5" Nextion Display 2024, November
Anonim
Image
Image
Radio Internet Menggunakan ESP32
Radio Internet Menggunakan ESP32
Radio Internet Menggunakan ESP32
Radio Internet Menggunakan ESP32

Rakan-rakan yang terhormat selamat datang ke Instructable yang lain! Hari ini kita akan membina peranti Radio Internet dengan paparan 3.5”besar menggunakan papan ESP32 yang murah. Percaya atau tidak, kita sekarang boleh membina Radio Internet dalam masa kurang dari 10 minit dan dengan kurang dari $ 30. Ada banyak perkara yang perlu dilindungi, mari kita mulakan!

Beberapa bulan yang lalu, saya menyiapkan projek Radio Arduino FM yang berfungsi dengan hebat dan kelihatan lebih baik pada pendapat saya. Sekiranya anda ingin melihat bagaimana saya membina projek ini, anda boleh membaca Instructable di sini. Masalahnya ialah, walaupun radio ini kelihatan sejuk, ia tidak praktikal kerana saya tinggal di sebuah bandar kecil di selatan Yunani dan stesen radio besar Yunani yang lebih suka saya dengar, tidak mempunyai pemancar di sini. Oleh itu, saya mendengar radio kegemaran saya dalam talian di komputer riba atau tablet pc saya yang juga tidak begitu praktikal. Jadi, hari ini saya akan membina peranti radio Internet agar dapat mendengar stesen radio kegemaran saya dari seluruh dunia!

Seperti yang anda lihat, versi pertama projek siap di papan roti. Mari kita aktifkan. Seperti yang anda lihat projek menyambung ke Internet dan kemudian mengalirkan muzik dari Stesen Radio yang telah ditetapkan.

Saya telah mengikuti stesen radio Real FM dari Athens dan dengan menggunakan butang ini kita dapat menukar Stesen Radio yang kita dengarkan. Saya telah menyimpan stesen radio kegemaran saya ke memori ESP32 supaya saya dapat mengaksesnya dengan mudah. Dengan potensiometer ini, saya dapat mengubah kelantangan pembesar suara. Saya memaparkan Nama Stesen Radio yang kita dengarkan pada paparan 3.5”besar dengan Antaramuka Pengguna retro. Projek ini berfungsi dengan baik dan sangat mudah dibina.

Anda boleh membina projek yang sama dalam masa kurang dari 10 minit tetapi anda perlu mempunyai pengalaman. Sekiranya ini adalah projek pertama anda, pertimbangkan untuk membina yang lebih mudah terlebih dahulu, untuk menimba pengalaman. Periksa Instructables saya untuk idea projek mudah dan apabila anda lebih selesa dengan Arduino, elektronik kembali untuk membina projek yang hebat ini. Mari mulai membina Radio Internet kita sendiri.

KEMASKINI 6/6/2019

Masalah kebisingan telah diselesaikan dengan menambahkan pengubah isolator. Lihat gambarajah skematik yang dikemas kini. Terima kasih!

Langkah 1: Dapatkan Semua Bahagian

Dapatkan Semua Bahagian
Dapatkan Semua Bahagian

Kami memerlukan bahagian berikut:

  • ESP32 ▶
  • Penyahkod MP3 ▶
  • Pengubah Isolasi ▶
  • Penguat ▶
  • Pembesar suara 3W ▶
  • 3.5 "Paparan Nextion ▶
  • Butang Tekan ▶
  • Papan Roti ▶
  • Wayar ▶

Kos keseluruhan projek adalah sekitar 40 $ tetapi jika anda tidak menggunakan paparan, kos projek adalah sekitar 20 $. Barang yang luar biasa. Kita boleh membina radio Internet kita sendiri dengan hanya $ 20!

Langkah 2: Papan ESP32

Image
Image
Papan ESP32
Papan ESP32
Papan ESP32
Papan ESP32

Tentu saja inti projek ini adalah papan ESP32 yang kuat. Sekiranya anda tidak biasa dengannya, cip ESP32 adalah penerus cip ESP8266 yang popular yang telah kami gunakan berkali-kali. ESP32 adalah binatang! Ia menawarkan dua teras pemprosesan 32 bit yang beroperasi pada 160MHz, sejumlah besar memori, WiFi, Bluetooth dan banyak lagi ciri lain dengan kos sekitar 7 $! Barang yang luar biasa!

Sila lihat ulasan terperinci yang telah saya sediakan untuk papan ini. Saya telah melampirkan video di Instructable ini. Ini akan membantu memahami mengapa cip ini akan mengubah cara kita membuat sesuatu selamanya! Salah satu perkara yang paling menggembirakan mengenai ESP32 ialah walaupun sangat kuat, ia menawarkan mod tidur nyenyak yang hanya memerlukan 10μΑ arus. Ini menjadikan ESP32 cip yang ideal untuk aplikasi kuasa rendah.

Dalam projek ini, papan ESP32 menyambung ke Internet dan kemudian menerima data MP3 dari stesen radio yang sedang kita dengarkan, dan ia menghantar beberapa arahan ke paparan.

Langkah 3: Penyahkod MP3

Penyahkod MP3
Penyahkod MP3
Penyahkod MP3
Penyahkod MP3

Data MP3 kemudian dihantar ke modul penyahkod MP3 menggunakan antara muka SPI. Modul ini menggunakan IC VS1053. IC ini adalah penyahkod MP3 perkakasan khusus. Ia mendapat data MP3 dari ESP32 dan mengubahnya dengan pantas menjadi isyarat audio.

Isyarat audio yang dikeluarkan pada bicu audio ini lemah dan bising, jadi kita perlu membersihkannya dari kebisingan dan memperkuatnya. (Sekiranya anda menggunakan fon kepala, isyarat tidak perlu dibersihkan dari kebisingan atau diperkuat.) Itulah sebabnya saya menggunakan pengubah Isolasi untuk membersihkan audio dari bunyi dan penguat audio PAM8403 untuk memperkuat isyarat audio dan kemudian menghantarnya kepada penceramah. Saya juga telah menghubungkan dua butang ke ESP32 hanya untuk menukar Aliran MP3 yang kita perolehi data dan paparan Nextion untuk memaparkan stesen Radio yang sedang kita dengarkan.

Langkah 4: Paparan Nextion

Image
Image
Menyambungkan Semua Bahagian
Menyambungkan Semua Bahagian

Saya memilih untuk menggunakan paparan Nextion untuk projek ini kerana sangat mudah digunakan. Kita hanya perlu menyambungkan satu wayar untuk mengawalnya.

Paparan Nextion adalah jenis paparan baru. Mereka mempunyai pemproses ARM mereka sendiri di bahagian belakang yang bertanggungjawab untuk memacu paparan dan membuat antara muka pengguna grafik. Oleh itu, kita dapat menggunakannya dengan mikrokontroler apa pun dan mencapai hasil yang luar biasa. Saya telah menyiapkan tinjauan terperinci mengenai paparan Nextion ini yang menerangkan secara mendalam bagaimana mereka berfungsi, bagaimana menggunakannya dan kekurangannya. Anda boleh membacanya di sini, atau menonton video yang dilampirkan.

Langkah 5: Menyambungkan Semua Bahagian

Menyambungkan Semua Bahagian
Menyambungkan Semua Bahagian
Menyambungkan Semua Bahagian
Menyambungkan Semua Bahagian

Yang harus kita buat sekarang adalah menyambungkan semua bahagian bersama-sama mengikut gambarajah skematik ini. Anda boleh mendapatkan gambarajah skema yang dilampirkan di sini. Sambungannya mudah.

Terdapat dua perkara yang perlu diberi perhatian. Modul penyahkod MP3 mengeluarkan Stereo Signal tetapi saya hanya menggunakan satu saluran audio dalam projek ini. Untuk mendapatkan isyarat audio, saya menyambungkan kabel audio ke soket audio modul, dan memotongnya untuk mendedahkan empat wayar di dalamnya. Saya menyambungkan dua wayar. Salah satunya adalah GND dan yang lain adalah isyarat audio salah satu daripada dua saluran audio. Sekiranya anda mahu, anda boleh menyambungkan kedua saluran ke modul penguat dan memacu dua pembesar suara.

Setiap saluran audio mesti melalui pengubah pengasingan untuk membersihkan sebarang kebisingan yang ada sebelum menyambung ke penguat

Untuk menghantar data ke paparan, kami hanya perlu menyambungkan satu wayar ke pin TX0 ESP32. Setelah menyambungkan bahagiannya, kita harus memuatkan kod ke ESP32, dan kita harus memuatkan GUI ke paparan Nextion.

Untuk memuatkan GUI ke paparan Nextion, salin fail InternetRadio.tft yang akan saya kongsikan kepada anda ke kad SD kosong. Masukkan kad SD ke dalam slot kad SD di bahagian belakang paparan. Kemudian hidupkan paparan, dan GUI akan dimuat. Kemudian keluarkan kad SD dan sambungkan semula kuasa.

Setelah berjaya memuatkan kod, mari kita aktifkan projek. Ia memaparkan teks "Menyambung …" selama beberapa saat di layar. Selepas menyambung ke internet, projek ini menyambung ke stesen radio yang telah ditetapkan. Perkakasan berfungsi seperti yang diharapkan tetapi sekarang mari kita lihat bahagian perisian projek.

Langkah 6: Kod Projek

Kod Projek
Kod Projek
Kod Projek
Kod Projek

Pertama sekali, izinkan saya menunjukkan sesuatu kepada anda. Kod projek kurang daripada 140 baris kod. Fikirkanlah, kita dapat membina Radio Internet dengan Paparan 3.5”dengan 140 baris kod, ini sangat mengagumkan. Kita boleh mencapai semua ini dengan menggunakan pelbagai perpustakaan yang mengandungi ribuan baris kod. Ini adalah kekuatan Arduino dan komuniti sumber terbuka. Ia menjadikan perkara mudah dibuat oleh pembuatnya.

Dalam projek ini, saya menggunakan perpustakaan VS1053 untuk papan ESP32.

Pada mulanya, kita harus menentukan SSID dan Kata Laluan rangkaian Wi-Fi. Seterusnya, kita harus menyimpan beberapa Stesen Radio di sini. Kami memerlukan URL hos, jalan di mana aliran berada dan port yang perlu kami gunakan. Kami menyimpan semua maklumat ini ke dalam pemboleh ubah ini.

char ssid = "yourSSID"; // SSID rangkaian anda (nama) char pass = "yourWifiPassword"; // kata laluan rangkaian anda

// Beberapa Stesen Radio

char * host [4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "safe1.live24.gr"}; char * path [4] = {"/ 1", "/ ert-kosmos", "/ realfm", "/ skai1003"}; port int [4] = {8062, 80, 80, 80};

Saya telah memasukkan 4 stesen radio dalam contoh ini.

Dalam fungsi persediaan, kami memasang gangguan pada butang, kami menginisialisasi modul penyahkod MP3 dan kami menyambung ke Wi-Fi.

batal persediaan () {

Serial.begin (9600); kelewatan (500); SPI.begin ();

pinMode (Button sebelumnya, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (sebelumnyaButton), sebelumnyaButtonInterrupt, JATUH);

attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, JATUH); initMP3Decoder (); sambungToWIFI (); }

Dalam fungsi gelung, pertama sekali, kami memeriksa sama ada pengguna telah memilih stesen radio yang berbeza daripada stesen yang kami perolehi data. Sekiranya demikian, kami menyambung ke stesen radio baru, jika tidak, kami mendapat data dari aliran dan menghantarnya ke modul Decoder MP3.

gelung void () {if (radioStation! = sebelumnyaRadioStation) {station_connect (radioStation); sebelumnyaRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}

Itu sahaja! Apabila pengguna menekan butang, gangguan berlaku, dan mengubah nilai pemboleh ubah yang memberitahu aliran mana yang akan disambungkan.

batal IRAM_ATTR sebelumnyaButtonInterrupt () {

lama tidak ditandatangani statik terakhir_interrupt_time = 0;

interrupt_time = milis () yang tidak ditandatangani jika (interrupt_time - last_interrupt_time> 200) {if (radioStation> 0) radioStation--; radioStation lain = 3; } last_interrupt_time = interrupt_time; }

Untuk mengemas kini paparan, kami hanya mengirim beberapa perintah ke port bersiri.

void drawRadioStationName (int id) {String arahan; suis (id) {case 0: command = "p1.pic = 2"; Serial.print (arahan); endNextionCommand (); rehat; // 1940 Kes Radio UK 1: command = "p1.pic = 3"; Serial.print (arahan); endNextionCommand (); rehat; // Kes KOSMOS GREEK 2: perintah = "p1.pic = 4"; Serial.print (arahan); endNextionCommand (); rehat; // REAL FM GREEK case 3: command = "p1.pic = 5"; Serial.print (arahan); endNextionCommand (); rehat; // SKAI 100.3 GREEK}}

Sekarang mari kita lihat Nextion Display GUI. Nextion GUI terdiri daripada gambar latar dan gambar yang memaparkan nama Stesen Radio. Papan ESP32 menghantar arahan untuk menukar nama stesen radio dari gambar yang disematkan. Ia sangat mudah. Sila lihat tutorial paparan Nextion yang telah saya sediakan beberapa waktu lalu untuk maklumat lebih lanjut. Anda boleh dengan cepat merancang GUI anda sendiri jika anda mahu dan memaparkan lebih banyak perkara di dalamnya.

Seperti biasa anda boleh mendapatkan kod projek yang dilampirkan dalam Instructable ini.

Langkah 7: Pemikiran & Penambahbaikan Akhir

Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir
Pemikiran & Penambahbaikan Akhir

Projek ini sangat mudah. Saya mahukan kerangka projek Radio Internet yang mudah digunakan. Setelah versi pertama projek siap, kita dapat menambahkan banyak ciri untuk memperbaikinya. Pertama sekali, saya perlu merancang kandang untuk menempatkan semua elektronik.

Dalam buku ini mengenai Radio Terindah yang pernah dibuat terdapat radio yang sangat bagus untuk dipilih sebagai kandang untuk projek ini. Saya rasa saya akan membina sebuah kandang di sekitar radio Art Deco yang menakjubkan ini. Apa pendapat anda, adakah anda menyukai penampilan radio ini atau adakah anda lebih suka sesuatu yang lebih moden? Adakah anda mempunyai idea kepungan lain? Juga, adakah anda menyukai projek Radio Internet ini dan apakah ciri yang perlu kita tambahkan untuk menjadikannya lebih berguna? Saya ingin membaca fikiran dan Idea anda, sila hantarkannya di bahagian komen di bawah.

Disyorkan: