فهرست مطالب:

رادیو اینترنتی با استفاده از ESP32: 7 مرحله (همراه با تصاویر)
رادیو اینترنتی با استفاده از ESP32: 7 مرحله (همراه با تصاویر)

تصویری: رادیو اینترنتی با استفاده از ESP32: 7 مرحله (همراه با تصاویر)

تصویری: رادیو اینترنتی با استفاده از ESP32: 7 مرحله (همراه با تصاویر)
تصویری: ارزون ترین دوربین wifi دنیا 🌍 که میتونید بسازید 🤯🤯//Build a spy camera 2024, نوامبر
Anonim
Image
Image
رادیو اینترنتی با استفاده از ESP32
رادیو اینترنتی با استفاده از ESP32
رادیو اینترنتی با استفاده از ESP32
رادیو اینترنتی با استفاده از ESP32

دوستان عزیز به آموزش دیگری خوش آمدید! امروز ما قصد داریم یک دستگاه رادیویی اینترنتی با صفحه نمایش بزرگ 3.5 اینچی با استفاده از یک برد ارزان ESP32 بسازیم. باور کنید یا نه ، اکنون می توانیم رادیوی اینترنتی را در کمتر از 10 دقیقه و با کمتر از 30 دلار بسازیم. موارد زیادی برای پوشش دادن وجود دارد ، بنابراین بیایید شروع کنیم!

چند ماه پیش ، من یک پروژه رادیو FM آردوینو را به پایان رساندم که بسیار عالی کار می کند و به نظر من حتی بهتر به نظر می رسد. اگر می خواهید نحوه ساخت این پروژه را ببینید ، می توانید دستورالعمل را در اینجا بخوانید. مشکل این است که ، اگرچه این رادیو زیبا به نظر می رسد اما عملی نیست زیرا من در شهر کوچکی در جنوب یونان زندگی می کنم و ایستگاه های رادیویی بزرگ یونانی که ترجیح می دهم به آنها گوش دهم ، فرستنده ای در اینجا ندارم. بنابراین ، من به رادیوهای مورد علاقه خود به صورت آنلاین در رایانه لپ تاپ یا رایانه لوحی خود گوش می دهم که بسیار کاربردی نیست. بنابراین ، امروز من قصد دارم یک دستگاه رادیویی اینترنتی بسازم تا بتوانم به ایستگاه های رادیویی مورد علاقه خود از سراسر جهان گوش دهم!

همانطور که می بینید ، اولین نسخه پروژه روی تخته نان آماده است. بیایید آن را تقویت کنیم همانطور که می بینید پروژه به اینترنت متصل می شود و سپس موسیقی را از ایستگاه های رادیویی از پیش تعریف شده پخش می کند.

من از آتن به ایستگاه رادیویی FM واقعی پیوسته ام و با استفاده از این دکمه ها می توانیم ایستگاه رادیویی را که به آن گوش می دهیم تغییر دهیم. من ایستگاه های رادیویی مورد علاقه خود را در حافظه ESP32 ذخیره کرده ام تا بتوانم به راحتی به آنها دسترسی داشته باشم. با استفاده از این پتانسیومتر می توانم صدای بلندگو را تغییر دهم. من نام ایستگاه رادیویی را که به آن گوش می دهیم در یک صفحه نمایش بزرگ 3.5 اینچی با رابط کاربری یکپارچهسازی با سیستمعامل نمایش می دهم. این پروژه خوب کار می کند و ساخت آن بسیار آسان است.

شما می توانید همان پروژه را در کمتر از 10 دقیقه بسازید اما باید کمی تجربه داشته باشید. اگر این اولین پروژه شما است ، ابتدا پروژه ساده تری را در نظر بگیرید تا کمی تجربه کسب کنید. دستورالعمل های راهنمای من را برای ایده های ساده پروژه بررسی کنید و هنگامی که با Arduino راحت تر هستید ، لوازم الکترونیکی برای ساخت این پروژه جالب باز می گردند. بیایید اکنون شروع به ساختن رادیوی اینترنتی خود کنیم.

به روز رسانی 6/6/2019

مشکل نویز با افزودن ترانسفورماتور ایزولاتور حل شده است. نمودار شماتیک به روز شده را بررسی کنید. با تشکر!

مرحله 1: تمام قطعات را دریافت کنید

همه قطعات را دریافت کنید
همه قطعات را دریافت کنید

ما به قطعات زیر نیاز داریم:

  • ESP32 ▶
  • رمزگشای MP3 ▶
  • Isolation Transformer ▶
  • تقویت کننده ▶
  • بلندگوی 3W ▶
  • 3.5 "Nextion Display ▶
  • دکمه های فشاری ▶
  • Breadboard ▶
  • سیمها ▶

هزینه کل پروژه حدود 40 دلار است اما اگر از نمایشگر استفاده نکنید هزینه پروژه حدود 20 دلار است. چیزهای شگفت انگیز ما می توانیم رادیوی اینترنتی خود را فقط با 20 دلار بسازیم!

مرحله 2: برد ESP32

Image
Image
برد ESP32
برد ESP32
برد ESP32
برد ESP32

البته قلب پروژه ، برد قدرتمند ESP32 است. اگر با آن آشنا نیستید ، تراشه ESP32 جانشین تراشه محبوب ESP8266 است که ما بارها در گذشته از آن استفاده کرده ایم. ESP32 یک جانور است! این دستگاه دو هسته پردازشی 32 بیتی با فرکانس 160 مگاهرتز ، مقدار زیادی حافظه ، WiFi ، بلوتوث و بسیاری از ویژگی های دیگر با هزینه ای در حدود 7 دلار ارائه می دهد! چیزهای شگفت انگیز!

لطفاً بررسی مفصلی را که برای این تخته آماده کرده ام تماشا کنید. من ویدیو را در این دستورالعمل ضمیمه کرده ام. این به درک اینکه چرا این تراشه روش ما را برای همیشه تغییر می دهد کمک می کند! یکی از هیجان انگیزترین چیزها در مورد ESP32 این است که اگرچه بسیار قدرتمند است ، اما حالت خواب عمیق را ارائه می دهد که تنها به 10μΑ جریان نیاز دارد. این ESP32 را به تراشه ای ایده آل برای برنامه های کم مصرف تبدیل می کند.

در این پروژه ، برد ESP32 به اینترنت متصل می شود و سپس داده های MP3 را از ایستگاه رادیویی که ما به آن گوش می دهیم دریافت می کند و برخی دستورات را به صفحه نمایش ارسال می کند.

مرحله 3: رمزگشای MP3

رمزگشای MP3
رمزگشای MP3
رمزگشای MP3
رمزگشای MP3

سپس داده های MP3 با استفاده از رابط SPI به ماژول رمزگشای MP3 ارسال می شود. این ماژول از IC VS1053 استفاده می کند. این IC یک رمزگشای سخت افزاری MP3 اختصاصی است. این داده MP3 را از ESP32 دریافت می کند و آن را به سرعت به سیگنال صوتی تبدیل می کند.

سیگنال صوتی که در این جک صوتی خروجی دارد ضعیف و پر سر و صدا است ، بنابراین ما باید آن را از سر و صدا پاک کرده و تقویت کنیم. (اگر از هدفون استفاده می کنید ، نیازی نیست که سیگنال از نویز پاک شود یا تقویت شود.) به همین دلیل من از ترانسفورماتور جداسازی برای پاک کردن صدا از نویز و تقویت کننده صوتی PAM8403 برای تقویت سیگنال صوتی و سپس ارسال آن استفاده می کنم. به یک گوینده من همچنین دو دکمه را به ESP32 متصل کرده ام تا فقط جریان MP3 را که از آن اطلاعات دریافت می کنیم تغییر دهد و یک صفحه نمایش Nextion برای نمایش ایستگاه رادیویی که به آن گوش می دهیم.

مرحله 4: نمایش بعدی

Image
Image
اتصال همه قطعات
اتصال همه قطعات

من استفاده از صفحه نمایش Nextion را برای این پروژه انتخاب کردم زیرا استفاده از آن بسیار آسان است. برای کنترل آن فقط باید یک سیم را متصل کنیم.

نمایشگرهای Nextion نوع جدیدی از نمایشگرها هستند. آنها در پشت خود پردازنده ARM دارند که وظیفه رانندگی صفحه نمایش و ایجاد رابط کاربری گرافیکی را بر عهده دارد. بنابراین ، ما می توانیم از آنها با هر میکروکنترلری استفاده کنیم و به نتایج چشمگیری دست یابیم. من یک بررسی دقیق از این صفحه Nextion تهیه کرده ام که در آن نحوه کارکرد آنها ، نحوه استفاده از آنها و اشکالات آنها توضیح داده شده است. می توانید آن را اینجا بخوانید ، یا فیلم ضمیمه را تماشا کنید.

مرحله 5: اتصال همه قطعات

اتصال همه قطعات
اتصال همه قطعات
اتصال همه قطعات
اتصال همه قطعات

اکنون تنها کاری که باید انجام دهیم این است که همه قسمتها را مطابق این نمودار شماتیک به هم متصل کنیم. در اینجا می توانید نمودار شماتیک ضمیمه شده را بیابید. ارتباط مستقیم است.

هر چند دو نکته قابل توجه است. ماژول رمزگشای MP3 از یک سیگنال استریو استفاده می کند ، اما من در این پروژه فقط از یک کانال صوتی استفاده می کنم. به منظور دریافت سیگنال صوتی ، یک کابل صوتی را به جک صوتی ماژول متصل کردم و آن را قطع کردم تا چهار سیم داخل آن نمایان شود. دو تا از سیم ها را وصل کردم. یکی از آنها GND و دیگری سیگنال صوتی یکی از دو کانال صوتی است. در صورت تمایل می توانید هر دو کانال را به ماژول تقویت کننده متصل کرده و دو بلندگو رانندگی کنید.

هر کانال صوتی باید قبل از اتصال به تقویت کننده ، نویز موجود را از طریق ترانسفورماتور جدا کند

برای ارسال داده به صفحه نمایش ، فقط باید یک سیم را به پین TX0 ESP32 وصل کنیم. پس از اتصال قطعات ، باید کد را در ESP32 بارگذاری کنیم و GUI را روی صفحه Nextion بارگذاری کنیم.

برای بارگذاری GUI در صفحه Nextion ، فایل InternetRadio.tft را که می خواهم با شما در یک کارت SD خالی به اشتراک بگذارم کپی کنید. کارت SD را در شکاف کارت SD در پشت صفحه قرار دهید. سپس صفحه نمایش را روشن کنید ، GUI بارگذاری می شود. سپس کارت SD را بردارید و دوباره برق را وصل کنید.

پس از موفقیت بارگذاری کد ، بیایید پروژه را روشن کنیم. متن "اتصال …" را برای چند ثانیه روی صفحه نمایش می دهد. پس از اتصال به اینترنت ، پروژه به یک ایستگاه رادیویی از پیش تعیین شده متصل می شود. سخت افزار همانطور که انتظار می رفت کار می کند ، اما اکنون بیایید سمت نرم افزاری پروژه را ببینیم.

مرحله 6: کد پروژه

کد پروژه
کد پروژه
کد پروژه
کد پروژه

اول از همه اجازه دهید چیزی را به شما نشان دهم. کد پروژه کمتر از 140 خط کد است. فکر کنید ، ما می توانیم یک رادیو اینترنتی با صفحه نمایش 3.5 اینچی با 140 خط کد بسازیم ، این شگفت انگیز است. ما می توانیم با استفاده از کتابخانه های مختلف که حاوی هزاران خط کد هستند به همه اینها برسیم. این قدرت آردوینو و جامعه منبع باز است. این کار را برای سازندگان آسان می کند.

در این پروژه ، من از کتابخانه VS1053 برای برد ESP32 استفاده می کنم.

در ابتدا ، ما باید SSID و رمز شبکه Wi-Fi را تعیین کنیم. بعد ، ما باید برخی از ایستگاه های رادیویی را در اینجا ذخیره کنیم. ما به آدرس میزبان ، مسیری که جریان در آن قرار دارد و پورتی که باید از آن استفاده کنیم ، نیاز داریم. ما تمام این اطلاعات را در این متغیرها ذخیره می کنیم.

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 port [4] = {8062 ، 80 ، 80 ، 80} ؛

من 4 ایستگاه رادیویی را در این مثال گنجانده ام.

در عملکرد راه اندازی ، وقفه ها را به دکمه ها وصل می کنیم ، ماژول رمزگشای MP3 را اولیه می کنیم و به Wi-Fi متصل می شویم.

void setup () {

Serial.begin (9600)؛ تأخیر (500) ؛ SPI.begin ()؛

pinMode (دکمه قبلی ، INPUT_PULLUP) ؛

pinMode (nextButton ، INPUT_PULLUP) ؛

attachInterrupt (digitalPinToInterrupt (previousButton) ، previousButtonInterrupt ، FALLING) ؛

attachInterrupt (digitalPinToInterrupt (nextButton) ، nextButtonInterrupt ، FALLING) ؛ initMP3Decoder ()؛ connectToWIFI ()؛ }

در تابع حلقه ، ابتدا بررسی می کنیم که آیا کاربر ایستگاه رادیویی متفاوتی را نسبت به ایستگاهی که از آن اطلاعات دریافت می کنیم ، انتخاب کرده است یا خیر. در این صورت ، ما به ایستگاه رادیویی جدید متصل می شویم و داده ها را از جریان دریافت می کنیم و آنها را به ماژول رمزگشای MP3 ارسال می کنیم.

void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation) ؛ previousRadioStation = radioStation؛ } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff، 32)؛ player.playChunk (mp3buff ، bytesread) ؛ }}

این همه! وقتی کاربر دکمه ای را فشار می دهد ، وقفه ای رخ می دهد و مقدار متغیری را تغییر می دهد که به کدام جریان متصل می شود.

void IRAM_ATTR previousButtonInterrupt () {

static unsigned long last_interrupt_time = 0؛

unsigned long interrupt_time = millis ()؛ if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation-- ؛ else radioStation = 3؛ } last_interrupt_time = 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 یونانی}}

اکنون اجازه دهید نگاهی به رابط کاربری گرافیکی Nextion Display بیندازیم. رابط کاربری Nextion شامل تصویر پس زمینه و تصویری است که نام ایستگاه رادیویی را نمایش می دهد. برد ESP32 دستوراتی را برای تغییر نام ایستگاه رادیویی از تصاویر تعبیه شده ارسال می کند. بسیار آسان است. لطفاً آموزش نمایش Nextion را که مدتی قبل آماده کرده ام ، برای اطلاعات بیشتر تماشا کنید. در صورت تمایل می توانید GUI خود را به سرعت طراحی کرده و موارد بیشتری را روی آن نمایش دهید.

مثل همیشه می توانید کد پروژه را که در این دستورالعمل ضمیمه شده است بیابید.

مرحله 7: اندیشه ها و پیشرفتهای نهایی

اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی
اندیشه ها و پیشرفتهای نهایی

این پروژه بسیار ساده است. من یک اسکلت ساده پروژه رادیوی اینترنتی می خواستم با آن کار کنم. اکنون که اولین نسخه پروژه آماده است ، می توانیم ویژگی های زیادی را برای بهبود آن اضافه کنیم. اول از همه ، من باید محفظه ای را طراحی کنم که همه لوازم الکترونیکی را در خود جای دهد.

در این کتاب در مورد زیباترین رادیوهایی که تا به حال ساخته شده است ، رادیوهای بسیار جالبی وجود دارد که می توانید به عنوان محوطه ای برای این پروژه انتخاب کنید. فکر می کنم قرار است حصاری در اطراف این رادیو دیدنی آرت دکو بسازم. نظر شما چیست ، آیا ظاهر این رادیو را دوست دارید یا چیزی مدرن تر را ترجیح می دهید؟ آیا ایده دیگری برای محوطه سازی دارید؟ همچنین ، آیا این پروژه رادیو اینترنتی را دوست دارید و به نظر شما چه ویژگی هایی را باید به آن اضافه کنیم تا مفیدتر شود؟ دوست دارم افکار و ایده های شما را بخوانم ، بنابراین لطفاً آنها را در قسمت نظرات زیر ارسال کنید.

توصیه شده: