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

مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة: 9 خطوات
مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة: 9 خطوات

فيديو: مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة: 9 خطوات

فيديو: مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة: 9 خطوات
فيديو: عرفتوا ليه المترو بيتقلب وبيعمل حوادث شاهد الفيديو للنهايه 2024, شهر نوفمبر
Anonim
مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة
مكبر صوت مزاج - مكبر صوت قوي لتشغيل الموسيقى المزاجية بناءً على درجة الحرارة المحيطة

مرحبا يا من هناك!

بالنسبة لمشروع مدرستي في MCT Howest Kortrijk ، قمت بصنع مكبر صوت مزاج ، وهو عبارة عن جهاز مكبر صوت بلوتوث ذكي مزود بأجهزة استشعار مختلفة ، وشاشة LCD وشريط إضاءة WS2812b. مكبر الصوت. كل شيء يعمل على Raspberry Pi (قاعدة بيانات ، خادم ويب ، Backend).

إذن هذه التعليمات هي عملية خطوة بخطوة لكيفية إدراكي لهذا المشروع في 3 أسابيع. لذلك إذا كنتم تريدون إعادة إنشاء مشروعي ، يمكنك اتباع الدليل

هذه التعليمات هي أول ما كتبته ، لذا إذا كان هناك أي تساؤلات ، فسأحاول الإجابة عليها بأسرع ما يمكن!

جيثب الخاص بي:

الخطوة 1: المستلزمات

بطاقة Raspberry Pi 3B & 16GB SD

يعمل مشروعي بالكامل على Raspberry Pi 3B الخاص بي مع صورة تم تكوينها ، والتي سأشرحها في خطوة لاحقة (الخطوة 4: إعداد Raspberry Pi)

شاشة عرض ال سي دي 16x2

لقد استخدمت شاشة LCD أساسية لطباعة درجة الحرارة والسطوع وعنوان IP.

ورقة البيانات:

DS18B20 مستشعر درجة الحرارة

DS18B20 عبارة عن مستشعر أحادي السلك يقيس درجة الحرارة ، تم تصنيعه بواسطة Maxim Integrated. هناك نوعان من أجهزة الاستشعار DS18B20 ، المكون فقط (الذي استخدمته) والإصدار المقاوم للماء ، وهو أكبر بكثير ، لكن هذا ليس ما أحتاجه لمشروعي ، لذلك استخدمت المكون فقط. يمكن لجهاز الاستشعار قياس درجة الحرارة في نطاق من -55 درجة مئوية إلى + 125 درجة مئوية (-67 درجة فهرنهايت إلى + 257 درجة فهرنهايت) ودقته تبلغ 0.5 درجة مئوية من -10 درجة مئوية إلى + 85 درجة مئوية. كما أن لديها دقة قابلة للبرمجة من 9 بت إلى 12 بت.

ورقة البيانات:

MCP3008

لقراءة البيانات من مستشعر LDR و PIR ، استخدمت MCP3008 ، وهو محول تناظري 8 قنوات 10 بت إلى محول رقمي بواجهة SPI وهو سهل البرمجة جدًا.

ورقة البيانات:

مستشعر الحركة PIR

لاكتشاف ما إذا كان هناك شخص يدخل غرفتي ويغادرها ، استخدمت مستشعر الأشعة تحت الحمراء السلبية لأنه سهل الاستخدام وصغير الحجم.

ورقة البيانات:

LDR

لقد استخدمت المقاوم الضوئي أو LDR (مقاومة تناقص الضوء ، أو المقاوم المعتمد على الضوء) لاكتشاف مستوى سطوع الغرفة داخلها. ولتشغيل Ledstrip أيضًا عندما يحل الظلام.

مكبر صوت - قطر 3 بوصة - 4 أوم 3 وات

هذا هو مخروط السماعة الذي اخترته بعد حساب الفولتية والأمبير التي ستحتاجها وكان هذا مناسبًا تمامًا لمشروع Raspberry Pi ، الذي صنعته Adafruit.

نظرة عامة:

مكبر أحادي MAX98357 I2S Class-D

هذا هو مكبر الصوت الذي يأتي مع السماعة ، ليس فقط هو مكبر للصوت ، بل هو أيضًا محول I2S الرقمي إلى التناظري ، لذلك فهو أيضًا مناسب تمامًا لمكبر الصوت ونظام الصوت الخاص بي.

نظرة عامة:

ورقة البيانات:

اردوينو اونو

Arduino Uno عبارة عن لوحة متحكم مفتوحة المصدر تعتمد على متحكم Microchip ATmega328P ، تم تصنيعه بواسطة Arduino.cc. تحتوي لوحة Uno على 14 دبوسًا رقميًا و 6 دبابيس تمثيلية وهي قابلة للبرمجة بالكامل باستخدام برنامج Arduino IDE

نظرة عامة:

ليفيل شيفتر

هذه لوحة صغيرة تهتم بالاتصال بين Arduino Uno و Raspberry Pi والفولتية المختلفة ، Arduino: 5V & Raspberry Pi: 3.3V. هذا ضروري لأن شريط LED متصل بـ Arduino ويعمل هناك ، بينما تعمل جميع الأشياء الأخرى على Raspberry Pi.

WS2812B - ليدستريب

هذا شريط ليد مع 60 مصباح RGB (يمكنك شراء شرائط أطول بمزيد من مصابيح RGB ، إذا كنت ترغب في ذلك). وهو في حالتي متصل بـ Arduino Uno ، ولكن يمكن أيضًا توصيله بالعديد من الأجهزة الأخرى وهو حقًا سهل الاستخدام.

ورقة البيانات:

GPIO T-Part ، 1 لوح توصيل والكثير من أسلاك العبور

لتوصيل كل ما أحتاجه من ألواح التجارب وأسلاك العبور ، لم أستخدم جزء GPIO T ولكن يمكنك استخدامه لتعرف بوضوح أي الحاوية تذهب إلى أين.

الخطوة 2: التخطيطي والأسلاك

التخطيطي والأسلاك
التخطيطي والأسلاك
التخطيطي والأسلاك
التخطيطي والأسلاك

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

تنزيل Fritzing:

تأكد من توصيل كل شيء بشكل صحيح. لقد استخدمت الألوان لجعل الأمر أكثر وضوحًا لمعرفة مكان توصيل الأسلاك. في حالتي ، استخدمت ألوانًا مختلفة للأسلاك

الخطوة 3: تصميم قاعدة البيانات

تصميم قاعدة البيانات
تصميم قاعدة البيانات

نقوم بجمع الكثير من البيانات من 3 مستشعرات (درجة الحرارة من DS18B20 والسطوع من LDR والحالة من مستشعر PIR). لذلك من الأفضل الاحتفاظ بكل هذه البيانات في قاعدة بيانات. سأشرح في خطوة لاحقة كيفية تكوين قاعدة البيانات (الخطوة 5: إعادة توجيه هندسة قاعدة البيانات الخاصة بنا إلى RPi!) ولكن أولاً يجب إجراء التصميم أو ERD (مخطط علاقة الكيان). تم تطبيع المنجم باستخدام 3NF ولهذا قمنا بتقسيم المكونات وتاريخ المكونات إلى جدول آخر. نستخدم قاعدة بيانات الموسيقى لتتبع الأغاني التي تم الاستماع إليها.

بشكل عام ، يعد هذا تصميم قاعدة بيانات أساسيًا وسهلاً حقًا لمزيد من العمل معه.

الخطوة 4: إعداد Raspberry Pi

والآن بعد أن تم الانتهاء من بعض أساسيات المشروع. لنبدأ في إعداد Raspberry Pi!

الجزء 1: تكوين بطاقة SD

1) قم بتنزيل البرامج والملفات المطلوبة

تحتاج إلى تنزيل برنامجين ونظام تشغيل واحد ، مثل Raspbian لهذه العملية الكاملة. البرنامج الأول: البرنامج الأول هو Win32 Disk Imager.

sourceforge.net/projects/win32diskimager/

البرنامج الثاني: البرنامج الثاني هو SD Card Formatter.

www.sdcard.org/downloads/formatter_4/

نظام التشغيل Raspbian: هذا هو نظام التشغيل الرئيسي لـ Pi.

www.raspberrypi.org/downloads/raspberry-pi-os/

استخراج جميع الملفات إلى سطح المكتب.

2) احصل على بطاقة SD وقارئ البطاقة

احصل على بطاقة SD 8 جيجا كحد أدنى من الفئة 10 مع قارئ بطاقة. أدخل تلك البطاقة في قارئ البطاقات وقم بتوصيله بمنفذ USB.

3) قم بتهيئة بطاقة SD

افتح SD Card Formatter وحدد محرك الأقراص.

انقر فوق التنسيق ولا تغير أي خيارات أخرى.

عند اكتمال التهيئة ، انقر فوق "موافق".

4) اكتب نظام التشغيل على بطاقة SD

افتح win32diskimager.

تصفح ملف.img لنظام Raspbian OS الذي تم استخراجه من الملف الذي تم تنزيله.

انقر فوق فتح ثم انقر فوق "كتابة".

إذا انبثق أي تحذير ، فتجاهل ذلك بالنقر فوق "موافق". انتظر حتى تكتمل الكتابة وقد يستغرق الأمر بضع دقائق. حتى يكون المريض.

ن

5) بمجرد الانتهاء من ذلك ، نكون مستعدين لإجراء بعض التعديلات النهائية قبل وضع الصورة في RPi الخاص بنا.

انتقل إلى دليل بطاقة SD الخاصة بك ، وابحث عن الملف المسمى cmdline.txt وافتحه.

أضف الآن "ip = 169.254.10.1" على نفس السطر الواحد.

حفظ الملف.

قم بإنشاء ملف باسم 'ssh' بدون امتداد أو محتوى. (أسهل طريقة هي إنشاء ملف txt وإزالة.txt بعد ذلك)

الآن بعد أن تم تثبيت كل شيء على بطاقة SD ، يمكنك إخراجها بأمان من جهاز الكمبيوتر الخاص بك ووضعها في Raspberry Pi دون توصيل الطاقة. بمجرد أن تدخل بطاقة SD في RPI ، قم بتوصيل كبل LAN من جهاز الكمبيوتر الخاص بك بمنفذ RPi LAN ، وبمجرد توصيله يمكنك توصيل الطاقة بـ RPi.

الجزء 2: تكوين RPi

المعجون

الآن نريد تكوين Raspberry Pi الخاص بنا ، يتم ذلك من خلال المعجون.

برنامج المعجون:

بمجرد التنزيل ، افتح Putty وأدخل IP '169.254.10.1' والمنفذ '22' ونوع الاتصال: SSH.

الآن يمكننا أخيرًا فتح واجهة سطر الأوامر وتسجيل الدخول باستخدام معلومات تسجيل الدخول للمبتدئين -> المستخدم: pi وكلمة المرور: raspberry. (يوصى بتغييره في أسرع وقت ممكن. إليك دليل كيف: https://www.raspberrypi.org/documentation/linux/u …)

Raspi-config

سيتعين علينا تمكين واجهات مختلفة وللقيام بذلك ، يتعين علينا أولاً كتابة الكود التالي:

sudo raspi-config

الأشياء التي نحتاج إلى تمكينها موجودة في قسم التواصل. نحتاج إلى تمكين الواجهات التالية:

  • سلك واحد
  • مسلسل
  • I2C
  • SPI

كان هذا كل ما نحتاج إلى القيام به مع raspi-config

إضافة WIFI الخاص بك

أولاً ، يجب أن تكون جذرًا حتى يصبح الأمر التالي جذرًا

sudo -i

بمجرد أن تصبح الجذر ، استخدم الأمر التالي: (استبدل SSID باسم الشبكة وكلمة المرور بكلمة مرور الشبكة)

wpa_passphrase "ssid" "كلمة المرور" >> /etc/wpa_supplicant/wpa_supplicant.conf

في حالة قيامك بخطأ ما ، يمكنك التحقق من هذه الشبكة أو تحديثها أو حذفها بمجرد إدخال الأمر التالي:

nano /etc/wpa_supplicant/wpa_supplicant.conf

لذلك بعد أن دخلنا شبكتنا ، دعنا ندخل إلى واجهة عميل WPA

wpa_cli

حدد واجهتك

واجهة wlan0

أعد تحميل الملف

إعادة التشكيل

وأخيرًا يمكنك معرفة ما إذا كنت متصلاً جيدًا أم لا:

الملكية الفكرية أ

الجزء 3: تحديث برنامج تثبيت RPi +

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

sudo apt-get update

sudo apt-get ترقية

بعد تحديث RPi ، سيتعين علينا تثبيت البرنامج التالي:

قاعدة بيانات MariaDB

sudo apt-get install mariadb-server

خادم الويب Apache2

sudo apt تثبيت apache2

بايثون

بدائل التحديث - install / usr / bin / python python /usr/bin/python3.7 1 بدائل التحديث - install / usr / bin / python python / usr / bin / python3 2

حزمة بايثون

سيتعين عليك تثبيت كل هذه الحزم لجعل الواجهة الخلفية تعمل بشكل مثالي:

  • قارورة
  • قارورة كورس
  • قارورة- MySQL
  • قارورة-مقبس
  • طلبات PyMySQL
  • Python-socketio
  • RPi. GPIO
  • جيفينت
  • Gevent-websocket

مكتبة مكبرات الصوت

لاستخدام مكبر الصوت مع مكبر الصوت ، سيتعين علينا تثبيت مكتبة له

حليقة- sS > | bash

Step 4: Reboot

After everything has been installed we will have to reboot the pi to make sure everything works correctly

sudo reboot

Step 5: Setting Up the Database to the RPi

إنشاء قاعدة البيانات لـ RPi!
إنشاء قاعدة البيانات لـ RPi!

الآن بعد أن قمنا بتثبيت كل ما نحتاجه ، دعنا نضع قاعدة البيانات الخاصة بنا التي صممناها على Raspberry Pi الخاص بنا!

لإعداد قاعدة البيانات ، سيتعين علينا ربط MySql و RPi. لذلك سنفتح MySQLWorkbench ونجري اتصالًا جديدًا. عند النظر إلى الصورة ، سيتعين عليك التغيير لتغيير المعلومات إلى صورتك.

إذا لم تقم بتغيير أي شيء حتى الآن ، يمكنك استخدام SSH pi و raspberry و MySQL mysql و mysql.

عندما يكون هناك شيء غير واضح ، يمكنك أيضًا اتباع هذا البرنامج التعليمي:

لتصدير قاعدة البيانات الخاصة بك ، يجب أن يكون استخدام PHPmyAdmin أسهل لأنه يمكنك الحصول على الكثير من الأخطاء أثناء القيام بذلك باستخدام MySql

الخطوة 6: تكوين Bluetooth على RPi الخاص بنا

نحن نقوم بإنشاء مكبر صوت مزاج ، يمكننا أيضًا استخدامه مع موسيقانا الخاصة ، لذلك يكون هذا أسهل عندما يكون RPi

متصل بالبلوتوث لقد اتبعت برنامجًا تعليميًا يمكنك العثور عليه هنا:

scribles.net/streaming-bluetooth-audio-fr…

لقد كتبت كل شيء هنا أيضًا لكل من يريد إعادة إنشائه

إزالة الأزرق قيد التشغيل بالفعل

sudo rm / var / run / bluealsa / *

إضافة دور بالوعة ملف تعريف A2DP

sudo bluealsa -p a2dp-sink &

افتح واجهة البلوتوث وقم بتشغيل البلوتوث

bluetoothctl السلطة على

قم بإعداد عامل الاقتران

الوكيل على الوكيل الافتراضي

اجعل RPi الخاص بك قابلاً للاكتشاف

قابل للاكتشاف في

  • الآن من جهاز البلوتوث الخاص بك ، ابحث عن RPi وتواصل معه.
  • قم بتأكيد الاقتران على كلا الجهازين ، واكتب "نعم" في المعجون الخاص بك.
  • تخويل خدمة A2DP ، اكتب "نعم" مرة أخرى.
  • بمجرد الانتهاء من ذلك ، يمكننا الوثوق بجهازنا ، لذلك لا يتعين علينا المرور بكل هذا في كل مرة نريد الاتصال

ثق في XX: XX: XX: XX: XX: XX (عنوان mac bluetooth الخاص بك من جهاز المصدر الخاص بنا)

إذا كنت تريد أن يظل RPi الخاص بك قابلاً للاكتشاف ، فهذا هو اختيارك الخاص ، لكنني أفضل إيقاف تشغيله مرة أخرى ، حتى لا يتمكن الأشخاص من محاولة الاتصال بصندوقك

قابل للاكتشاف قبالة

ثم يمكننا الخروج من واجهة البلوتوث الخاصة بنا

خروج

وأخيرًا توجيه الصوت لدينا: يقوم جهاز المصدر الخاص بنا بإعادة التوجيه إلى RPi الخاص بنا

bluealsa-aplay 00: 00: 00: 00: 00: 00

جهازنا متصل الآن بـ Raspberry الخاص بنا باستخدام البلوتوث ويجب أن تكون قادرًا على اختباره عن طريق تشغيل أي وسائط على سبيل المثال Spotify ، إلخ.

الخطوة 7: كتابة الخلفية الكاملة

الآن تم الإعداد ، يمكننا أخيرًا البدء في كتابة برنامج الواجهة الخلفية!

لقد استخدمت Visual Studio Code للواجهة الخلفية بالكامل ، فأنت تحتاج فقط إلى التأكد من أن مشروع Visual Studio الخاص بك متصل بـ Raspberry Pi ، وهذا يعني أنه يجب توصيل كبل LAN الخاص بك بـ RPi الخاص بك وإجراء اتصال SSH. (يمكن العثور على معلومات حول كيفية إنشاء اتصال عن بعد هنا:

لقد استخدمت الفصول الدراسية الخاصة بي وجميعها مدرجة أيضًا في GitHub الخاص بي.

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

الخطوة 8: كتابة الواجهة الأمامية (HTML و CSS و JavaScript)

الآن بعد أن تم الانتهاء من الواجهة الخلفية ، يمكننا البدء في كتابة الواجهة الأمامية الكاملة.

كان HTML و CSS صعبًا جدًا بالنسبة لي ، لقد بذلت قصارى جهدي لجعله محمولًا أولاً لأنه يمكنني الاتصال به باستخدام البلوتوث لتغيير الأغاني باستخدام Spotify. لذلك سيكون من الأسهل التحكم في لوحة القيادة المتنقلة

يمكنك تصميم لوحة القيادة الخاصة بك بأي طريقة تريدها ، وسأترك الكود والتصميم الخاص بي هنا ، ويمكنك فعل ما تريد!

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

الخطوة 9: بناء حالتي ووضعها معًا

بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا
بناء حالتي ووضعها معًا

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

لقد صنعت الحالة من الخشب ، وأعتقد أنه من الأسهل التعامل معها عندما لا يكون لديك الكثير من الخبرة في بناء الحالات ولديك أيضًا الكثير من الأشياء التي يمكنك القيام بها بها.

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

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

موصى به: