جدول المحتويات:

راديو الإنترنت باستخدام ESP32: 7 خطوات (بالصور)
راديو الإنترنت باستخدام ESP32: 7 خطوات (بالصور)

فيديو: راديو الإنترنت باستخدام ESP32: 7 خطوات (بالصور)

فيديو: راديو الإنترنت باستخدام ESP32: 7 خطوات (بالصور)
فيديو: في المختبر:: 263- أول خطوة في طريق انترنت الاشياء - كيف تبرمج (ESP32) - Internet of Things 2024, يونيو
Anonim
Image
Image
راديو الإنترنت باستخدام ESP32
راديو الإنترنت باستخدام ESP32
راديو الإنترنت باستخدام ESP32
راديو الإنترنت باستخدام ESP32

أصدقائي الأعزاء مرحبًا بكم في Instructable آخر! سنقوم اليوم ببناء جهاز راديو إنترنت بشاشة كبيرة مقاس 3.5 بوصة باستخدام لوحة ESP32 غير مكلفة. صدق أو لا تصدق ، يمكننا الآن بناء راديو إنترنت في أقل من 10 دقائق وبأقل من 30 دولارًا. هناك الكثير لتغطيته ، فلنبدأ!

قبل بضعة أشهر ، أكملت مشروع Arduino FM Radio الذي يعمل بشكل رائع ويبدو أفضل في رأيي. إذا كنت تريد أن ترى كيف أنشأت هذا المشروع ، يمكنك قراءة Instructable هنا. المشكلة هي أنه على الرغم من أن هذا الراديو يبدو رائعًا ، إلا أنه ليس عمليًا لأنني أعيش في بلدة صغيرة في جنوب اليونان ومحطات الإذاعة اليونانية الكبيرة التي أفضل الاستماع إليها ، لا يوجد بها أجهزة إرسال هنا. لذلك ، أستمع إلى أجهزة الراديو المفضلة لدي عبر الإنترنت على الكمبيوتر المحمول أو الكمبيوتر اللوحي الخاص بي وهو أيضًا غير عملي جدًا. لذا ، سأقوم اليوم ببناء جهاز راديو على الإنترنت لكي أتمكن من الاستماع إلى محطات الراديو المفضلة لدي من جميع أنحاء العالم!

كما ترى ، فإن النسخة الأولى من المشروع جاهزة على لوح التجارب. دعونا نزيد من القوة. كما ترى ، يتصل المشروع بالإنترنت ثم يقوم بدفق الموسيقى من محطات راديو محددة مسبقًا.

لقد قمت بضبط محطة راديو Real FM من أثينا وباستخدام هذه الأزرار يمكننا تغيير محطة الراديو التي نستمع إليها. لقد قمت بحفظ محطات الراديو المفضلة لدي في ذاكرة ESP32 حتى أتمكن من الوصول إليها بسهولة. باستخدام مقياس الجهد هذا ، يمكنني تغيير مستوى صوت السماعة. أعرض اسم محطة الراديو التي نستمع إليها على شاشة كبيرة مقاس 3.5 بوصة بواجهة مستخدم قديمة. يعمل المشروع بشكل جيد ومن السهل جدًا بناؤه.

يمكنك بناء نفس المشروع في أقل من 10 دقائق لكنك تحتاج إلى بعض الخبرة. إذا كان هذا هو مشروعك الأول ، ففكر في بناء مشروع أبسط أولاً ، لاكتساب بعض الخبرة. تحقق من Instructables الخاص بي للحصول على أفكار مشاريع بسيطة وعندما تشعر براحة أكبر مع Arduino ، تعود الإلكترونيات لبناء هذا المشروع الرائع. فلنبدأ الآن في بناء راديو الإنترنت الخاص بنا.

تحديث 6/6/2019

تم حل مشكلة الضوضاء بإضافة محول عازل. تحقق من الرسم التخطيطي المحدث. شكرا!

الخطوة 1: احصل على جميع الأجزاء

احصل على جميع الأجزاء
احصل على جميع الأجزاء

سنحتاج إلى الأجزاء التالية:

  • ESP32 ▶
  • وحدة فك ترميز MP3 ▶
  • محول العزل
  • مكبر للصوت ▶
  • مكبر صوت 3 واط ▶
  • 3.5 "عرض Nextion ▶
  • أزرار الدفع
  • اللوح ▶
  • الأسلاك ▶

تبلغ التكلفة الإجمالية للمشروع حوالي 40 دولارًا ، ولكن إذا لم تستخدم عرضًا ، فستكون تكلفة المشروع حوالي 20 دولارًا. الاشياء المدهشة. يمكننا بناء راديو الإنترنت الخاص بنا بمبلغ 20 دولارًا فقط!

الخطوة 2: لوحة ESP32

Image
Image
مجلس ESP32
مجلس ESP32
مجلس ESP32
مجلس ESP32

قلب المشروع ، بالطبع ، هو لوحة ESP32 القوية. إذا لم تكن معتادًا على ذلك ، فإن شريحة ESP32 هي خليفة شريحة ESP8266 الشهيرة التي استخدمناها عدة مرات في الماضي. ESP32 وحش! إنه يوفر نواتين معالجة 32 بت تعملان بسرعة 160 ميجاهرتز وكمية هائلة من الذاكرة وواي فاي وبلوتوث والعديد من الميزات الأخرى بتكلفة حوالي 7 دولارات! الاشياء المدهشة!

يرجى مشاهدة المراجعة التفصيلية التي أعددتها لهذا المنتدى. لقد أرفقت الفيديو على هذا Instructable. سيساعد ذلك في فهم سبب تغيير هذه الشريحة للطريقة التي نصنع بها الأشياء إلى الأبد! أحد أكثر الأشياء إثارة حول 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: عرض Nextion

Image
Image
ربط جميع الأجزاء
ربط جميع الأجزاء

اخترت استخدام شاشة Nextion لهذا المشروع لأنه سهل الاستخدام للغاية. نحتاج فقط إلى توصيل سلك واحد للتحكم فيه.

شاشات Nextion هي نوع جديد من شاشات العرض. لديهم معالج ARM الخاص بهم في الخلف وهو المسؤول عن قيادة الشاشة وإنشاء واجهة المستخدم الرسومية. لذلك ، يمكننا استخدامها مع أي متحكم وتحقيق نتائج مذهلة. لقد أعددت مراجعة مفصلة لشاشة Nextion هذه والتي تشرح بالتفصيل كيفية عملها وكيفية استخدامها وعيوبها. يمكنك قراءتها هنا أو مشاهدة الفيديو المرفق.

الخطوة 5: توصيل جميع الأجزاء

ربط جميع الأجزاء
ربط جميع الأجزاء
ربط جميع الأجزاء
ربط جميع الأجزاء

كل ما علينا فعله الآن هو ربط جميع الأجزاء معًا وفقًا لهذا الرسم التخطيطي. يمكنك العثور على الرسم التخطيطي المرفق هنا. الاتصال مباشر.

هناك شيئان يجب ملاحظتهما بالرغم من ذلك. تقوم وحدة فك ترميز MP3 بإخراج إشارة استريو ولكني أستخدم قناة صوتية واحدة فقط في هذا المشروع. من أجل الحصول على الإشارة الصوتية ، قمت بتوصيل كبل صوت بمقبس الصوت الخاص بالوحدة ، وقمت بقطعه للكشف عن أربعة أسلاك بالداخل. لقد قمت بتوصيل اثنين من الأسلاك. أحدهما هو GND والآخر هو الإشارة الصوتية لإحدى قناتي الصوت. إذا كنت ترغب في ذلك ، يمكنك توصيل كلتا القناتين بوحدة مكبر الصوت وتشغيل مكبرين صوتيين.

يجب أن تمر كل قناة صوتية عبر محول العزل لمسح أي ضوضاء موجودة قبل الاتصال بمكبر الصوت

لإرسال البيانات إلى الشاشة ، نحتاج فقط إلى توصيل سلك واحد بطرف TX0 الخاص بـ ESP32. بعد توصيل الأجزاء ، يتعين علينا تحميل الكود إلى ESP32 ، وعلينا تحميل واجهة المستخدم الرسومية على شاشة Nextion.

لتحميل واجهة المستخدم الرسومية إلى شاشة Nextion ، انسخ ملف InternetRadio.tft الذي سأشاركه معك على بطاقة SD فارغة. ضع بطاقة SD في فتحة بطاقة SD في الجزء الخلفي من الشاشة. ثم قم بتشغيل الشاشة ، وسيتم تحميل واجهة المستخدم الرسومية. ثم قم بإزالة بطاقة SD وتوصيل الطاقة مرة أخرى.

بعد تحميل الشفرة بنجاح ، دعنا نجهز المشروع. يعرض النص "Connecting…" لبضع ثوان على الشاشة. بعد الاتصال بالإنترنت ، يتصل المشروع بمحطة راديو محددة مسبقًا. تعمل الأجهزة بالشكل المتوقع ولكن الآن دعنا نرى جانب البرنامج في المشروع.

الخطوة السادسة: كود المشروع

كود المشروع
كود المشروع
كود المشروع
كود المشروع

بادئ ذي بدء ، دعني أريك شيئًا. كود المشروع أقل من 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.

الإعداد باطل () {

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.

حلقة باطلة () {if (radioStation! = previousRadioStation) {station_connect (radioStation) ؛ previousRadioStation = radioStation ؛ } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff، 32)؛ player.playChunk (mp3buff ، bytesread) ؛ }}

هذا كل شئ! عندما يضغط المستخدم على زر ، تحدث مقاطعة ، وتغير قيمة المتغير الذي يخبر الدفق الذي سيتم الاتصال به.

إلغاء IRAM_ATTR السابقButtonInterrupt () {

ثابت بدون توقيع طويل last_interrupt_time = 0 ؛

interrupt_time طويلة بدون توقيع = مللي () ؛ إذا (interrupt_time - last_interrupt_time> 200) {if (radioStation> 0) radioStation-- ؛ آخر radioStation = 3 ؛ } last_interrupt_time = interrupt_time ؛ }

لتحديث العرض ، نقوم ببساطة بإرسال بعض الأوامر إلى المنفذ التسلسلي.

باطل drawRadioStationName (int id) {String command؛ التبديل (المعرف) {الحالة 0: الأمر = "p1.pic = 2" ؛ Serial.print (أمر) ؛ endNextionCommand () ، استراحة؛ // حالة راديو المملكة المتحدة رقم 1 لعام 1940: الأمر = "p1.pic = 3" ؛ Serial.print (أمر) ؛ endNextionCommand () ، استراحة؛ // حالة KOSMOS GREEK 2: الأمر = "p1.pic = 4" ؛ Serial.print (أمر) ؛ endNextionCommand () ، استراحة؛ // REAL FM GREEK case 3: command = "p1.pic = 5" ؛ Serial.print (أمر) ؛ endNextionCommand () ، استراحة؛ // SKAI 100.3 اليونانية}}

الآن دعونا نلقي نظرة على واجهة المستخدم الرسومية لشاشة Nextion. تتكون واجهة المستخدم الرسومية الخاصة بـ Nextion من صورة خلفية وصورة تعرض اسم محطة الراديو. ترسل لوحة ESP32 أوامر لتغيير اسم محطة الراديو من الصور المضمنة. فمن السهل جدا. يرجى مشاهدة البرنامج التعليمي لعرض Nextion الذي أعددته منذ بعض الوقت للحصول على مزيد من المعلومات. يمكنك تصميم واجهة المستخدم الرسومية الخاصة بك بسرعة إذا كنت ترغب في ذلك وعرض المزيد من الأشياء عليها.

كما هو الحال دائمًا ، يمكنك العثور على رمز المشروع المرفق في هذا Instructable.

الخطوة 7: الأفكار والتحسينات النهائية

الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية
الأفكار والتحسينات النهائية

هذا المشروع بسيط جدا أردت هيكلًا بسيطًا لمشروع راديو الإنترنت للعمل معه. الآن بعد أن أصبح الإصدار الأول من المشروع جاهزًا ، يمكننا إضافة العديد من الميزات إليه لتحسينه. بادئ ذي بدء ، أحتاج إلى تصميم حاوية لإيواء جميع الأجهزة الإلكترونية.

في هذا الكتاب حول أجمل أجهزة الراديو على الإطلاق ، توجد أجهزة راديو رائعة جدًا للاختيار من بينها كإطار لهذا المشروع. أعتقد أنني سأقوم ببناء حاوية حول راديو آرت ديكو الرائع هذا. ما رأيك ، هل يعجبك مظهر هذا الراديو أم تفضل شيئًا أكثر حداثة؟ هل لديك أي أفكار أخرى حول الضميمة؟ أيضًا ، هل تحب مشروع راديو الإنترنت هذا وما الميزات التي تعتقد أننا بحاجة إلى إضافتها إليه لجعله أكثر فائدة؟ أرغب في قراءة أفكارك وأفكارك ، لذا يرجى نشرها في قسم التعليقات أدناه.

موصى به: