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

Sonos Spotify Vinyl Emulator: 26 خطوة
Sonos Spotify Vinyl Emulator: 26 خطوة

فيديو: Sonos Spotify Vinyl Emulator: 26 خطوة

فيديو: Sonos Spotify Vinyl Emulator: 26 خطوة
فيديو: 30 Ultimate Windows 10 Tips and Tricks for 2020 2024, يوليو
Anonim
Image
Image
Sonos Spotify Vinyl Emulator
Sonos Spotify Vinyl Emulator

يرجى ملاحظة أن هذه ليست أحدث مجموعة من التعليمات الخاصة بهذا المشروع:

يرجى زيارة https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d للحصول على أحدث مجموعة من التعليمات والدعم

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

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

يحاول هذا المشروع تكرار جوانب اللمس وبناء المجموعات للفينيل مع الاعتماد على Spotify لتقديم الموسيقى فعليًا. سيؤدي وضع كائن مادي على قارئ NFC موصول بـ Raspberry Pi (يمكن إخفاء كلاهما بعيدًا) في تشغيل الألبوم المرتبط بهذه العلامة.

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

تبلغ التكلفة الإجمالية للمكونات الأساسية لبناء هذا حوالي 50-60 جنيهًا إسترلينيًا.

أحب أن أرى ما تبنيه!

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

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

أساس:

Raspberry Pi: لقد استخدمت Raspberry Pi 3 Model B + ولكنها ستعمل أيضًا مع Raspberry Pi 3 Model A + (23 جنيهًا إسترلينيًا)

مزود طاقة USB: كان لدي واحد مستلق - هناك مصدر رسمي متاح إذا لم يكن لديك (9 جنيهات إسترلينية)

بطاقة Micro SD: حصلت على بطاقة 32 جيجابايت ، وهو عدد كبير لهذا التطبيق ، على Amazon (6 جنيهات إسترلينية)

تعمل بعض أجهزة Sonos على شبكتك (أعتقد أن لديك هذا بالفعل إذا كنت هنا …)

حساب Spotify Premium

موصى به:

حالة لـ Pi: هناك الكثير من الخيارات ، بدءًا من 5 جنيهات إسترلينية

زجاجة من California Zinfandel اللائقة: أوصي بـ Ridge ، لكن الآخرين متاحون

الخطوة 2: المستلزمات المطلوبة 2: قارئ NFC

المستلزمات المطلوبة 2: قارئ NFC
المستلزمات المطلوبة 2: قارئ NFC
المستلزمات المطلوبة 2: قارئ NFC
المستلزمات المطلوبة 2: قارئ NFC

تم تصميم هذه التعليمات لقارئ NFC ACR122U الذي يتصل عبر USB.

ACR122U

لقد اشتريت هذا من Amazon مقابل 38 جنيهًا إسترلينيًا (غالبًا لأنه كان يحتوي على توصيل رئيسي) ولكن هناك خيارات أرخص لشراء هذا القارئ نفسه.

من المربك أن ACR122U يتم بيعها تحت مجموعة من الأسماء التجارية المختلفة (حصلت على اسم العلامة التجارية غير المطمئن "Yosoo") ولكن مما يمكنني قوله أنها كلها متشابهة وصنعتها شركة American Card Systems.

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

خيارات أخرى

يعتمد هذا المشروع على مكتبة python تسمى nfcpy والتي تحتفظ بقائمة بالأجهزة المدعومة هنا: https://nfcpy.readthedocs.io/en/latest/overview.h …

من الناحية النظرية ، يجب أن يعمل هذا المشروع مع أي من أولئك الموجودين في تلك القائمة مع القليل من التكامل.

أحد الخيارات المغرية هو Adafruit PN532 وهو لوحة يجب توصيلها مباشرة بـ Raspberry Pi باستخدام كبلات التوصيل. لقد جربته ووجدته أمرًا رائعًا. يتطلب لحام ، على سبيل المثال.

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

الخطوة 3: المستلزمات المطلوبة 3: علامات NFC

المستلزمات المطلوبة 3: علامات NFC
المستلزمات المطلوبة 3: علامات NFC

لكل ألبوم تريد إنشاءه ، ستحتاج إلى علامة NFC التي تتوافق مع معيار NTAG213.

هناك العديد من الأماكن لشراء هذه.

اشتريت أول دفعة لي من Amazon ، حيث حصلت على حزمة من 10 مقابل 9 جنيهات إسترلينية (بما في ذلك تسليم Prime)

أفضل ما وجدته هنا في المملكة المتحدة هو Seritag - لديهم مجموعة واسعة حقًا من الأساليب المختلفة ، ونصائح رائعة على موقع الويب الخاص بهم ، وأنت تعرف بالضبط ما تحصل عليه (ليس صحيحًا دائمًا على Amazon). ليس لديهم حد أدنى لحجم الطلب والعديد من الخيارات. تبدأ العلامات من 27p لكل علامة

الخطوة 4: قم بتنزيل نظام Raspberry Pi OS على بطاقة SD

قم بتنزيل نظام Raspberry Pi OS على بطاقة SD
قم بتنزيل نظام Raspberry Pi OS على بطاقة SD
قم بتنزيل نظام Raspberry Pi OS على بطاقة SD
قم بتنزيل نظام Raspberry Pi OS على بطاقة SD

على جهاز الكمبيوتر أو جهاز Mac ، قم بتنزيل وتشغيل تطبيق Raspberry PI imager.

أدخل بطاقة SD التي تريد تثبيت نظام التشغيل Raspberry Pi عليها.

انقر فوق CHOOSE OS وحدد Rasbian الافتراضي.

انقر فوق CHOOSE SD CARD وحدد بطاقة SD التي قمت بتوصيلها.

انقر فوق WRITE. هذا قد يستغرق بعض الوقت.

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

الخطوة 5: قم بتمكين SSH على صورة Raspberry Pi OS الخاصة بك

قم بتمكين SSH على صورة Raspberry Pi OS الخاصة بك
قم بتمكين SSH على صورة Raspberry Pi OS الخاصة بك

بمجرد كتابة نظام التشغيل على بطاقة SD ، هناك بعض المهام الإضافية التي يتعين عليك القيام بها.

نريد الوصول إلى Raspberry Pi دون توصيل لوحة مفاتيح أو شاشة (ويعرف أيضًا باسم "بدون رأس") ، وهو ما يمكننا القيام به عبر شبكتنا المحلية باستخدام جهاز الكمبيوتر أو جهاز Mac عبر بروتوكول يسمى SSH. ومع ذلك ، لأسباب أمنية ، يتم تعطيل SSH افتراضيًا. نحن بحاجة إلى تمكينها.

يمكننا القيام بذلك عن طريق إنشاء ملف فارغ يسمى:

ssh

في بطاقة SD التي أنشأناها للتو. من المهم ألا يحتوي هذا على أي نوع من الامتدادات (مثل.txt). لا يحتاج الملف نفسه إلى احتواء أي محتوى - فقط وجوده سيمكن SSH عند بدء تشغيل Pi.

الخطوة 6: اختياري: قم بإعداد Wifi على Raspberry Pi الخاص بك

اختياري: قم بإعداد Wifi على Raspberry Pi الخاص بك
اختياري: قم بإعداد Wifi على Raspberry Pi الخاص بك
اختياري: قم بإعداد Wifi على Raspberry Pi الخاص بك
اختياري: قم بإعداد Wifi على Raspberry Pi الخاص بك

يمكنك تخطي هذه الخطوة إذا كنت تخطط لتوصيل جهاز Raspberry Pi بجهاز التوجيه الخاص بك عن طريق إيثرنت. (على الرغم من أنك قد ترغب في التفكير مليًا في هذا القرار - فإن تشغيله عبر شبكة wifi يجعل الحياة أسهل كثيرًا من حيث تحديد موقع هذا)

قم بإنشاء ملف نص عادي يسمى wpa_supplicant.conf في الدليل الجذر لبطاقة SD.

أدخل النص أدناه في الملف:

الدولة = جيجابايت

update_config = 1 ctrl_interface = / var / run / wpa_supplicant network = {scan_ssid = 1 ssid = "MyNetworkSSID" psk = "MyPassword"}

قم بتغيير الدولة بالشكل المناسب (المملكة المتحدة هي المملكة المتحدة ، والولايات المتحدة هي الولايات المتحدة ، وألمانيا هي ألمانيا ، إلخ)

قم بتغيير بيانات اعتماد wifi الموجودة هناك لتكون تفاصيل جهاز توجيه wifi الفعلي.

حفظ الملف.

إخراج بطاقة SD بأمان.

الخطوة 7: قم بتشغيل Raspberry Pi الخاص بك

قم بتشغيل Raspberry Pi الخاص بك
قم بتشغيل Raspberry Pi الخاص بك

ضع بطاقة SD التي أنشأتها للتو في Raspberry Pi الخاص بك.

قم بتوصيل Raspberry Pi بالطاقة عبر كابل USB. انتظر دقيقة حتى يتم التمهيد.

الخطوة 8: ابحث عن عنوان IP الخاص بـ Raspberry Pi الخاص بك

تحتاج الآن إلى العثور على عنوان IP الخاص بـ Raspberry Pi حتى تتمكن من الاتصال به. يمكنك القيام بذلك بطريقتين:

  • عبر صفحة إعداد جهاز التوجيه الخاص بك - إذا كان لديك جهاز توجيه حديث مثل eero ، فهذا سهل للغاية ؛
  • أو عبر تطبيق هاتف ذكي متاح لنظامي التشغيل iOS و Android يسمى "finger" - قم بتنزيله ، واتصل بجهاز التوجيه الخاص بك وابحث عن الأجهزة - يجب أن يُطلق على أحدها اسم "Raspberry" - سيكون هذا هو عنوان IP الذي تحتاجه.

الخطوة 9: قم بالاتصال بسطر أوامر Raspberry Pi الخاص بك

قم بالاتصال بسطر أوامر Raspberry Pi الخاص بك
قم بالاتصال بسطر أوامر Raspberry Pi الخاص بك

افتح Terminal على جهاز Mac الخاص بك (أو إذا كنت تستخدم Windows ، فقم بتنزيل واستخدام Putty).

أدخل الأمر التالي:

ssh pi @ [عنوان IP الخاص بك في Pi]

اقبل أي تحذيرات أمنية تتلقاها. ستتم مطالبتك بكلمة المرور لمستخدم pi الافتراضي وهو

توت العليق

الخطوة 10: قم بإعداد Raspberry Pi OS GUI

قم بإعداد Raspberry Pi OS GUI
قم بإعداد Raspberry Pi OS GUI
قم بإعداد Raspberry Pi OS GUI
قم بإعداد Raspberry Pi OS GUI

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

بادئ ذي بدء ، تحقق من أن برنامج Pi الخاص بك محدث عن طريق إدخال الأمرين التاليين (متبوعين بـ enter) في سطر الأوامر:

sudo apt التحديث

sudo apt install realvnc-vnc-server realvnc-vnc-viewer

بعد ذلك ، افتح قائمة إعدادات Raspberry Pi عن طريق إدخال:

sudo raspi-config

انتقل إلى Interfacing Options> VNC> Yes.

اخرج من تطبيق التكوين بالضغط على مفتاح الهروب وأعد تشغيل Pi من سطر الأوامر عن طريق كتابة:

sudo إعادة التشغيل

الخطوة 11: قم بتوصيل وإعداد Raspberry Pi GUI

قم بتوصيل وإعداد Raspberry Pi GUI
قم بتوصيل وإعداد Raspberry Pi GUI
قم بتوصيل وإعداد Raspberry Pi GUI
قم بتوصيل وإعداد Raspberry Pi GUI

قم بتنزيل وفتح VNC Viewer.

اكتب عنوان IP الخاص بـ Raspberry Pi واضغط على اتصال. سيطالبك بإدخال اسم المستخدم وكلمة المرور وهما:

اسم المستخدم = pi

كلمة المرور = التوت

يجب أن يؤدي هذا إلى تمهيدك إلى واجهة المستخدم الرسومية.

سيطالبك بتأكيد الموقع الجغرافي وتخطيط لوحة المفاتيح.

سيطالبك بعد ذلك بتغيير كلمة مرورك (فكرة جيدة).

سيطلب منك تعيين تفاصيل wifi الخاصة بك ، ولكن يمكنك تخطي ذلك لأنها تعمل بالفعل. (على الرغم من أنك إذا كنت تعمل على ethernet ولديك أفكار ثانية ، فهذه هي فرصتك الآن … لكن لاحظ أن عنوان IP الخاص بك قد يتغير)

سيقوم بعد ذلك بالبحث عن التحديثات وتنزيلها وتثبيتها (قد يستغرق بعض الوقت).

بمجرد الانتهاء من معالج الإعداد ، أوصي بتغيير دقة الشاشة لأن الإعداد الافتراضي صغير جدًا. يمكنك القيام بذلك عن طريق النقر فوق Raspberry في الجزء العلوي الأيسر> التفضيلات> تكوين Raspberry Pi> العرض> تعيين الدقة

ستحتاج إلى إعادة تشغيل Pi مرة أخرى لتفعيل هذا.

الخطوة 12: قم بتثبيت Node.js و NPM

قم بتثبيت Node.js و NPM
قم بتثبيت Node.js و NPM

بعد ذلك ، تريد تحميل سطر أوامر Raspberry Pi لتثبيت التبعيات التي نحتاجها.

يمكنك القيام بذلك إما عن طريق الاتصال عبر VNC والنقر فوق الزر الموجود بالقرب من الجزء العلوي الذي يشبه سطر الأوامر ؛ أو يمكنك الاتصال مباشرة من جهاز Mac / الكمبيوتر الشخصي باستخدام Terminal and Putty كما فعلنا سابقًا. إذا كنت غير معتاد على العمل مع Raspberry Pi ، فمن الأسهل القيام بالأول.

(نصيحة: يمكنك نسخ نص من جهاز Mac / الكمبيوتر الشخصي ولصقه في Raspberry Pi عبر VNC بالضغط على CONTROL-V ، ولكن إذا كنت تحاول اللصق في Terminal ، فأنت بحاجة إلى الضغط على CONTROL-SHIFT-V)

المهمة الأولى هي التحقق مرة أخرى من تحديث برنامجك عن طريق كتابة الأمرين التاليين. قد يستغرق تنزيلها وتثبيتها بعض الوقت.

sudo apt-get update

sudo apt-get ترقية

بعد ذلك ، تريد تنزيل node.js و NPM وتثبيتهما (لا تقلق كثيرًا بشأن ماهيتهما ، فهي مفيدة وضرورية لمهامنا التالية) عن طريق كتابة ما يلي:

sudo apt-get install nodejs npm

سيطلب منك عدة مرات ما إذا كنت سعيدًا بتناول مساحة على القرص مع هذه - لذا اضغط على Y

الخطوة 13: قم بتثبيت SONOS HTTP API

قم بتثبيت SONOS HTTP API
قم بتثبيت SONOS HTTP API
قم بتثبيت SONOS HTTP API
قم بتثبيت SONOS HTTP API

أساس النهاية الخلفية لمشروعنا هو حزمة node-sonos-http-api التي أنشأتها jishi. يمكنك قراءة كل شيء عنها هنا:

سنقوم بتنزيل هذا من github باستخدام الأمر التالي الذي تم إدخاله في سطر الأوامر:

استنساخ بوابة

وسنقوم بتثبيته بالأوامر التالية

cd node-sonos-http-api

تثبيت npm - الإنتاج

يمكننا بعد ذلك تشغيله بالأمر التالي:

بدء npm

بمجرد الانتهاء من ذلك ، يجب أن نختبر أنها تعمل.

بادئ ذي بدء ، افتح متصفح الإنترنت على Raspberry Pi الخاص بنا وانتقل إلى https:// localhost: 5005 /. يجب فتح واجهة لطيفة مع شعار Sonos وبعض الوثائق حول كيفية عمل API.

بعد ذلك ، دعنا نتحقق من أن هذا يعمل من الشبكة الأوسع باستخدام متصفح على كمبيوتر شخصي آخر أو جهاز Mac على نفس الشبكة والانتقال إلى https:// [theIPaddressofyourPi]: 5005 / ومعرفة ما إذا كنا سنحصل على نفس النتيجة. ينبغي لنا.

الآن سنجعل النظام يفعل شيئًا ما. استخدم متصفحًا وانتقل إلى:

192.168.4.102:5005/ غرفة الطعام / playpause

يجب عليك استبدال عنوان IP أعلاه بعنوان Raspberry Pi و "Dining Room" بأحد أسماء مناطق Sonos الخاصة بك. يجب أن يتم تشغيل الموسيقى في تلك الغرفة أو إيقافها مؤقتًا (اعتمادًا على ما إذا كانت الموسيقى قيد التشغيل أم لا). من الواضح أن هناك شيئًا ما يجب أن يكون في قائمة انتظار Sonos حتى يعمل ذلك.

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

الخطوة 14: تشغيل Sonos HTTP API باستمرار

اجعل Sonos HTTP API يعمل باستمرار
اجعل Sonos HTTP API يعمل باستمرار

إنه لأمر رائع أن يكون لدينا Sonos HTTP API قيد التشغيل ، ولكن ماذا لو تعطل؟ أو تفقد الطاقة أو تحتاج إلى إعادة تشغيل Raspberry Pi الخاص بك؟

يمكنك رؤية التأثير من خلال إغلاق نافذة المحطة وإعادة محاولة ما جربناه للتو. لن يعمل لأن HTTP API قد توقفت مع النافذة الطرفية.

نريد في الواقع تشغيل هذا باستمرار ونفعل ذلك من بدء التشغيل في كل مرة. نقوم بذلك باستخدام شيء رائع يسمى PM2.

في نافذة طرفية جديدة ، قم بتثبيتها وتشغيلها على النحو التالي:

تثبيت sudo npm -g pm2

حالة pm2

الآن دعنا نحصل عليه لتشغيل Sonos HTTP API:

cd node-sonos-http-api

pm2 start npm - start pm2 startup systemd

يُنشئ هذا الأمر الأخير شيئًا يشبه قليلاً:

sudo env PATH = $ PATH: / usr / bin / usr / local / lib / node_modules / pm2 / bin / pm2 startup systemd -u pi --hp / home / pi

انسخ ما يولده Pi الخاص بك (وليس النص الدقيق أعلاه - قد يكون نصك مختلفًا) وأدخله في سطر الأوامر. هذا يرشد النظام إلى تشغيل PM2 عند الإقلاع في كل مرة.

أخيرًا ، أدخل:

pm2 حفظ

الذي يحفظ كل شيء.

اختبر الآن ما إذا كان هذا قد نجح عن طريق إعادة تشغيل Raspberry Pi باستخدام الأمر

sudo إعادة التشغيل

نأمل بمجرد إعادة تشغيل Pi ، سيبدأ أيضًا تشغيل PM2 وبدوره Sonos HTTP API. يمكنك التحقق من ذلك من خلال التنقل باستخدام متصفح على نفس الشبكة إلى العنوان الذي استخدمناه من قبل والاطلاع على شعار Sonos والإرشادات:

192.168.4.102:5005/

هو ما يناسبني ، لكن عنوانك سيعتمد على عنوان IP.

الخطوة 15: العب بعض Spotify

دعنا نتحقق من أن الخدمة يمكنها الوصول إلى Spotify.

افتح متصفحًا وانتقل إلى العنوان التالي (من الواضح أن استبداله بعنوان IP واسم الغرفة):

192.168.4.102:5005/ غرفة الطعام / سبوتيفي / الآن / سبوتيفي / سبوتيفي: الألبوم: 2dfTV7CktUEBkZCHiB7VQB

يجب أن تسمع بعض جون جرانت. يتمتع.

الخطوة 16: ابحث عن Spotify URIs

ابحث عن Spotify URIs
ابحث عن Spotify URIs

غريب ، أعرف ، لكن لا يحب الجميع جون جرانت. ربما تريد الاستماع إلى شيء آخر؟

يمكنك الحصول على روابط Spotify من سطح المكتب أو الويب أو تطبيقات الهاتف المحمول ولكن سطح المكتب هو الأسهل إلى حد بعيد لأنه يوفر URI بالتنسيق الذي تريده بالضبط ، لذا ابدأ بذلك.

في تطبيق Spotify لسطح المكتب ، انتقل إلى الألبوم الذي تريد الاستماع إليه (ربما Lemonade by Beyonce؟)

انقر على النقاط الثلاث الصغيرة بجانب زر القلب.

اذهب إلى أسفل القائمة للمشاركة واختر Copy Spotify URI

هذا سوف ينسخ شيء مثل

سبوتيفي: الألبوم: 7dK54iZuOxXFarGhXwEXfF

إلى الحافظة الخاصة بك ، وهي Spotify URI لألبوم Beyonce's Lemondade.

قم بتشغيل المتصفح مرة أخرى وانتقل إلى العنوان التالي (من الواضح أن استبدال عنوان IP والغرفة واللصق في URI الذي نسخته للتو):

192.168.4.102:5005/Dining Room / spotify / now / [Spotify URI الذي تريد تشغيله]

يجب أن تسمع اختيارك اللعب.

إذا كنت تفضل استخدام تطبيق الويب ، فسيمنحك رابط ويب (شيء مشابه لما يلي):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

تحتاج إلى تحويل هذا إلى تنسيق Spotify: Album: code أعلاه لكي يعمل.

الخطوة 17: ملاحظة على Spotify URIs

تعد عناوين URL الخاصة بـ Spotify وطريقة تفاعلها مع node-sonos-http-api بديهية في معظم الأحيان.

يمكنك الارتباط مباشرة بالألبومات والمسارات وقوائم التشغيل.

يبدو عنوان URI للألبوم مثل:

سبوتيفي: الألبوم: 6agCM9GJcebduMddgFmgsO

يبدو عنوان URI للمسار كما يلي:

سبوتيفي: المسار: 4fNDKbaeEjk2P4GrRE1UbW

تعمل قوائم التشغيل بشكل مختلف قليلاً. عند نسخ URI من Spotify ، سيبدو مثل:

Spotify: قائمة التشغيل: 5huIma0YU4iusLcT2reVEU

ومع ذلك ، لجعله يعمل بالفعل على واجهة برمجة التطبيقات ، تحتاج إلى إضافة Spotify: user: إلى بداية ما سبق. ينطبق هذا حتى على قوائم التشغيل العامة ، ونعم ، هذا يعني أنك تقول Spotify مرتين.

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

سبوتيفي: المستخدم: سبوتيفي: قائمة التشغيل: 5huIma0YU4iusLcT2reVEU

الخطوة 18: قم بإعداد Raspberry Pi لإرسال طلبات

قم بإعداد Raspberry Pi لإرسال طلبات HTTP
قم بإعداد Raspberry Pi لإرسال طلبات HTTP

بدلاً من كتابة طلبات HTTP يدويًا في متصفح الويب ، نريد أتمتة ذلك بحيث يقوم Raspberry Pi بذلك بنفسه عند تقديمه مع محفز معين (يتم تشغيل قارئ NFC).

سنستخدم مكتبة تسمى الطلبات للسماح لـ Raspberry Pi بالقيام بذلك. دعنا نتحقق من تثبيته.

افتح Terminal على Pi الخاص بك واكتب ما يلي:

طلبات تثبيت sudo pip

من المحتمل أنه يعود ويقول إنه مثبت بالفعل ، وفي هذه الحالة يكون رائعًا. إذا لم يكن كذلك ، فسيتم تثبيته.

الخطوة 19: إنشاء علامة (علامات) NFCC باستخدام بيانات Spotify

قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify
قم بإنشاء علامة (علامات) NFCC باستخدام بيانات Spotify

نريد الآن كتابة عنوان URI لألبوم Spotify إلى علامة NFC. كل من هذه العلامات هي ما ستستخدمه لإخبار Raspberry Pi بتشغيل ألبوم معين.

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

قم بتوصيل قارئ USB NFC بجهاز الكمبيوتر أو جهاز Mac. أنا أستخدم ACR122U بواسطة American Card Systems.

قم بتنزيل أدوات NFC على الكمبيوتر الشخصي أو جهاز Mac. قم بتثبيته وافتحه.

قد يكون الاتصال بالقارئ بطيئًا بعض الشيء في بعض الأحيان وقد يقول إنه لا يمكنه العثور على القارئ على الإطلاق. انتقل إلى علامة التبويب "أخرى" في أدوات NFC وانقر بين الحين والآخر على زر قارئ NFC المتصل. قد تضطر إلى فصل القارئ وإعادة توصيله عدة مرات قبل أن يجدها.

في النهاية ، سوف يمنحك خيار اختيار القارئ الخاص بك من قائمة والقول أنه متصل. انتقل إلى علامة التبويب "المعلومات" التي لن تظهر أي شيء باستثناء "انتظار علامة NFC".

خذ علامة NFC فارغة. ضعها على القارئ واتركها هناك. ستعرض أدوات NFC المعلومات حول العلامة.

انتقل إلى علامة التبويب "كتابة" وانقر فوق إضافة سجل> نص. (احرص على عدم اختيار عنوان URL أو URI - أعلم أنه مغري لأنك تنسخ URI ، لكنك تريد نصًا)

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

سبوتيفي: الألبوم: 2dfTV7CktUEBkZCHiB7VQB

انقر فوق "موافق" ثم انقر فوق "كتابة" (لا تنس هذه الخطوة الأخيرة - فهي لا تكتبها فعليًا حتى تنقر فوق هذا). سيخبرك أنه كتب العلامة بنجاح.

انزع العلامة من القارئ

الخطوة 20: قم بإعداد قارئ NFC على Raspberry Pi

قم بإعداد قارئ NFC على Raspberry Pi
قم بإعداد قارئ NFC على Raspberry Pi

قم بتوصيل قارئ NFC بأحد منافذ USB على Raspberry Pi.

سوف نستخدم مكتبة nfcpy Python للتواصل مع قارئ NFC. قم بتثبيته عن طريق كتابة ما يلي في سطر أوامر Pi الخاص بك:

تثبيت نقطة -U nfcpy

يمكننا بعد ذلك التحقق مما إذا كانت هذه المكتبة قادرة على رؤية قارئ NFC عن طريق كتابة ما يلي:

بيثون -m nfc

إذا نجحت ، فسترى ما يلي:

هذا هو الإصدار 1.0.3 من nfcpy الذي يعمل في Python 2.7.16 على Linux-4.19.97-v7 + -armv7l-with-debian-10.3

أنا الآن أبحث في نظامك عن الأجهزة التي لا تلامس ** وجدت ACS ACR122U PN532v1.6 على USB: 001: 011 أنا لا أحاول الأجهزة التسلسلية لأنك لم تخبرني - أضف الخيار "--search-tty" لجعلني أبحث - ولكن احذر من أن هذا قد يكسر المطورين التسلسليين الآخرين

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

sudo sh -c 'echo SUBSYSTEM == / "usb \" ، الإجراء == / "add \" ، ATTRS {idVendor} == / "04e6 \" ، ATTRS {idProduct} == / "5591 \" ، المجموعة = / "plugdev \" >> /etc/udev/rules.d/nfcdev.rules '

sudo udevadm control -R

انسخ ونفذ كلا الأمرين اللذين يوفرهما لك الجهاز (ليس بالضبط ما هو أعلاه ، حيث قد يكون الأمر مختلفًا) ، ثم افصل قارئ NFC وأعد توصيله من منفذ USB.

جرب أمر التحقق مرة أخرى:

بيثون -m nfc

هذه المرة يجب أن يذكر أنه تم العثور عليه بدون رسائل خطأ.

الخطوة 21: قم بتثبيت نصوص Vinylemulator Python النصية

لدينا الآن جميع اللبنات الأساسية:

  • يمكن لـ Raspberry Pi الاستماع إلى إدخال NFC
  • يمكن لـ Raspberry Pi إخبار Sonos بتشغيل قوائم تشغيل Spotify عند إعطائها Spotify URI
  • لدينا علامة NFC مع Spotify URI مخزنة عليها

الآن نحن بحاجة إلى سحب كل هذه اللبنات الأساسية إلى شيء مفيد. يتم ذلك من خلال برنامج نصي قصير للبيثون كتبته (مع الكثير من المساعدة من مشاريع NFC / Spotify / Sonos السابقة) والتي تسمى vinylemulator.

يمكنك عرض الكود المصدري للملفات على جيثب:

لتثبيت هذا على Raspberry Pi الخاص بنا ، نحتاج إلى استنساخه من github باستخدام الأمر التالي:

استنساخ بوابة

الخطوة 22: تخصيص Vinylemulator

تخصيص Vinylemulator
تخصيص Vinylemulator
تخصيص Vinylemulator
تخصيص Vinylemulator

افتح مدير ملفات Raspberry Pi وانتقل إلى home> pi> vinylemulator

افتح الملف usersettings.py

سيكون أحد الأسطر في هذا الملف كالتالي:

sonosroom = "غرفة الطعام"

قم بتغيير "غرفة الطعام" إلى أي اسم لغرفة Sonos تريد التحكم فيه.

يوجد أيضًا إعداد في هذا الملف يسمح لك بتخصيص عنوان IP الخاص بـ sonos-http-api. يجب أن تكون قادرًا على ترك هذا دون تغيير كـ "مضيف محلي" مما يعني أنه سيستخدم Raspberry Pi الذي يعمل عليه.

احفظ الملف ثم اغلقه.

الخطوة 23: اختبار Vinylemulator

اختبار Vinylemulator
اختبار Vinylemulator
اختبار Vinylemulator
اختبار Vinylemulator

انتقل إلى موجه أوامر Raspberry Pi الخاص بك.

أدخل الأمر التالي:

بيثون vinylemulator / readnfc.py

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

ضع علامة NFC على القارئ ، والتي ستصدر صوتًا.

ستعرض المحطة الطرفية ما قرأته من علامة NFC وستظهر عنوان طلب HTTP الذي أرسلته. يجب تشغيل الألبوم الذي تختاره من مكبرات صوت Sonos.

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

الخطوة 24: احصل على Vinylemulator للتشغيل باستمرار وعند بدء التشغيل

تمامًا مثل sonos-http-api ، نريد تشغيل vinylemulator طوال الوقت وليس فقط عندما نسميه. يمكننا استخدام pm2 للقيام بذلك مرة أخرى.

قم أولاً بإغلاق أي حالات من vinylemulator تقوم بتشغيلها عن طريق إغلاق نوافذها الطرفية.

ثم افتح نافذة طرفية جديدة واكتب الأمرين التاليين:

pm2 ابدأ vinylemulator / readnfc.py

pm2 حفظ

دعنا نتحقق مما إذا كان ذلك قد نجح عن طريق إعادة تشغيل Raspberry Pi. (يمكنك إما كتابة sudo reboot أو القيام بذلك من قائمة Raspberry باستخدام الماوس.

انتظر حتى يبدأ Pi مرة أخرى وشاهده يعمل من خلال النقر على علامة NFC على القارئ. يجب أن تحصل على الموسيقى.

الخطوة 25: هنئ نفسك

كل شيء يعمل الآن. يمكنك نقل Raspberry Pi إلى أي مكان تخطط لموقعه فيه. سيتم إعادة تشغيله وتشغيله بالطريقة التي قمت بإعدادها في أي وقت تقوم فيه بتوصيله.

مهامك التالية هي المهام الممتعة: جعل كل شيء جميلًا.

الخطوة 26: اجعلها جميلة - قم بإخفاء القارئ

اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك
اجعلها جميلة - قم بإخفاء القارئ الخاص بك

الجزء الأول من جعله جميلًا هو إخفاء قارئ NFC البلاستيكي الأبيض السيئ في مكان ما.

لقد اخترت خيارًا ذا تقنية منخفضة للغاية يتمثل في تسجيله على الجانب السفلي من العداد بجوار Sonos Play الخاص بي: 5. خشب العداد رقيق بدرجة كافية بحيث يمكن لـ NFC المرور من خلاله ، لذلك أقوم بتشغيل الموسيقى من خلال النقر على علامة NFC في مكان سحري وغير مرئي.

موصى به: