جدول المحتويات:
- الخطوة 1: احصل على جميع الأجزاء
- الخطوة 2: لوحة ESP32
- الخطوة 3: وحدة فك ترميز MP3
- الخطوة 4: عرض Nextion
- الخطوة 5: توصيل جميع الأجزاء
- الخطوة السادسة: كود المشروع
- الخطوة 7: الأفكار والتحسينات النهائية
فيديو: راديو الإنترنت باستخدام ESP32: 7 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
أصدقائي الأعزاء مرحبًا بكم في 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
قلب المشروع ، بالطبع ، هو لوحة ESP32 القوية. إذا لم تكن معتادًا على ذلك ، فإن شريحة ESP32 هي خليفة شريحة ESP8266 الشهيرة التي استخدمناها عدة مرات في الماضي. ESP32 وحش! إنه يوفر نواتين معالجة 32 بت تعملان بسرعة 160 ميجاهرتز وكمية هائلة من الذاكرة وواي فاي وبلوتوث والعديد من الميزات الأخرى بتكلفة حوالي 7 دولارات! الاشياء المدهشة!
يرجى مشاهدة المراجعة التفصيلية التي أعددتها لهذا المنتدى. لقد أرفقت الفيديو على هذا Instructable. سيساعد ذلك في فهم سبب تغيير هذه الشريحة للطريقة التي نصنع بها الأشياء إلى الأبد! أحد أكثر الأشياء إثارة حول ESP32 هو أنه على الرغم من قوته ، إلا أنه يوفر وضع نوم عميق لا يتطلب سوى 10 ميكرومتر من التيار. هذا يجعل ESP32 الرقاقة المثالية لتطبيقات الطاقة المنخفضة.
في هذا المشروع ، تتصل لوحة ESP32 بالإنترنت ثم تستقبل بيانات MP3 من محطة الراديو التي نستمع إليها ، وترسل بعض الأوامر إلى الشاشة.
الخطوة 3: وحدة فك ترميز MP3
ثم يتم إرسال بيانات MP3 إلى وحدة فك ترميز MP3 باستخدام واجهة SPI. تستخدم هذه الوحدة VS1053 IC. هذا IC عبارة عن وحدة فك ترميز MP3 للأجهزة. تحصل على بيانات MP3 من ESP32 وتحولها بسرعة كبيرة إلى إشارة صوتية.
الإشارة الصوتية التي يخرجها من مقبس الصوت هذا ضعيفة وصاخبة ، لذلك نحتاج إلى مسحها من الضوضاء وتضخيمها. (إذا كنت تستخدم سماعات رأس ، فلن تحتاج الإشارة إلى مسحها من الضوضاء أو تضخيمها.) لهذا السبب أستخدم محول عزل لمسح الصوت من الضوضاء ومكبر صوت PAM8403 لتضخيم إشارة الصوت ثم إرسالها لمتكلم. لقد قمت أيضًا بتوصيل زرين بـ ESP32 فقط لتغيير دفق MP3 الذي نحصل عليه من البيانات وشاشة Nextion لعرض محطة الراديو التي نستمع إليها.
الخطوة 4: عرض Nextion
اخترت استخدام شاشة 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: الأفكار والتحسينات النهائية
هذا المشروع بسيط جدا أردت هيكلًا بسيطًا لمشروع راديو الإنترنت للعمل معه. الآن بعد أن أصبح الإصدار الأول من المشروع جاهزًا ، يمكننا إضافة العديد من الميزات إليه لتحسينه. بادئ ذي بدء ، أحتاج إلى تصميم حاوية لإيواء جميع الأجهزة الإلكترونية.
في هذا الكتاب حول أجمل أجهزة الراديو على الإطلاق ، توجد أجهزة راديو رائعة جدًا للاختيار من بينها كإطار لهذا المشروع. أعتقد أنني سأقوم ببناء حاوية حول راديو آرت ديكو الرائع هذا. ما رأيك ، هل يعجبك مظهر هذا الراديو أم تفضل شيئًا أكثر حداثة؟ هل لديك أي أفكار أخرى حول الضميمة؟ أيضًا ، هل تحب مشروع راديو الإنترنت هذا وما الميزات التي تعتقد أننا بحاجة إلى إضافتها إليه لجعله أكثر فائدة؟ أرغب في قراءة أفكارك وأفكارك ، لذا يرجى نشرها في قسم التعليقات أدناه.
موصى به:
راديو الإنترنت BOSEBerry Pi: 4 خطوات (بالصور)
راديو الإنترنت BOSEBerry Pi: أحب الاستماع إلى الراديو! كنت أستخدم راديو DAB في منزلي ، لكنني وجدت أن الاستقبال كان غير مكتمل قليلاً وأن الصوت يستمر في الانهيار ، لذلك قررت بناء راديو الإنترنت الخاص بي. لدي إشارة wifi قوية حول منزلي وإخوانه الرقمي
راديو الإنترنت الذي يعمل بنظام Raspberry Pi: 5 خطوات (بالصور)
راديو الإنترنت الذي يعمل بنظام Raspberry Pi: هناك شيء يبعث على الارتياح حول تشغيل الأزرار والضغط على الأزرار ، مثل تلك الموجودة على أجهزة الراديو القديمة. للأسف ، تعطلت العديد من أجهزة الراديو هذه أو ساد الهدوء المحطات. لحسن الحظ ، ليس من الصعب جدًا تحديث أي راديو إلى راديو عبر الإنترنت باستخدام
1964 راديو الإنترنت Dansette Pi: 6 خطوات (بالصور)
1964 Dansette Pi Internet Radio: راديو Dansette المحمول الأنيق هذا في منتصف الستينيات يلعب الآن أفضل محطات راديو الإنترنت في القرن الحادي والعشرين بفضل الترقية المحببة. تمت إعادة استخدام جميع عناصر التحكم الأصلية ، ولن تعرف أبدًا أنها عملية تحويل - حتى تقوم بتشغيلها
راديو روبرتس RM33 Raspberry Pi على الإنترنت (آخر ): 8 خطوات (بالصور)
Roberts RM33 Raspberry Pi Internet Radio (آخر…): نعم ، إنه راديو إنترنت آخر Raspberry Pi وليس أول راديو لي أيضًا. لست متأكدًا من سبب استمرار هذا التصميم في شعبيته ، لكنني ما زلت أستمتع به ولا يمكنني القول أن هذا سيكون الأخير أيضًا. أنا حقًا أحب مظهر روبرت
راديو الإنترنت / راديو الويب مع Raspberry Pi 3 (مقطوعة الرأس): 8 خطوات
راديو الإنترنت / راديو الويب مع Raspberry Pi 3 (مقطوعة الرأس): مرحبًا هل تريد استضافة الراديو الخاص بك عبر الإنترنت فأنت في المكان الصحيح. سأحاول التفصيل قدر الإمكان. لقد جربت عدة طرق ، معظمها يحتاج إلى بطاقة صوت كنت مترددًا في شرائها. لكنها تمكنت من