תוכן עניינים:

אמולטור ויניל סוניפטי Spotify: 26 שלבים
אמולטור ויניל סוניפטי Spotify: 26 שלבים

וִידֵאוֹ: אמולטור ויניל סוניפטי Spotify: 26 שלבים

וִידֵאוֹ: אמולטור ויניל סוניפטי Spotify: 26 שלבים
וִידֵאוֹ: הבית הנטוש של המשפחה האמריקאית המאושרת ~ הכל נשאר! 2024, יולי
Anonim
Image
Image
אמולטור ויניל של סונפי Spotify
אמולטור ויניל של סונפי Spotify

שים לב שזוהי לא קבוצת ההוראות העדכנית ביותר לפרויקט זה:

בקר בכתובת https://www.hackster.io/mark-hank/sonos-spotify-vinyl-emulator-3be63d לקבלת סט ההנחיות והתמיכה העדכניים ביותר

האזנה למוזיקה בויניל היא מעולה. זה פיזי ומישוש. אתה מקשיב לאלבום שלם ולא לרצועות אקראיות. אתה מבחין כשזה נגמר ובוחר במודע משהו אחר. אתה יכול לבנות אוסף ולעיין בו ולא צריך לחפש בדיוק מה שאתה רוצה.

זה גם יקר ומגושם, במיוחד כשאתה חושב שכל כסף שאתה מוציא על ויניל הוא ככל הנראה כפיל מוזיקה שכבר יש לך גישה אליה באמצעות שירות סטרימינג שאתה מנוי אליו.

פרויקט זה מנסה לשחזר את ההיבטים המיוחדים ובניית האוספים של ויניל תוך הסתמכות על ספוטיפיי כדי להעביר את המוזיקה בפועל. הצבת אובייקט פיזי על קורא NFC המחובר ל- Raspberry Pi (שאפשר להסתיר את שניהם) תתחיל לנגן את האלבום המשויך לתג זה.

אני אלווה אותך בכל השלבים - החל מהגדרת ה- Raspberry Pi ועד קידוד תגי NFC. זהו פרויקט ה- Raspberry Pi הראשון שלי וקוד ה- Python הראשון שלי, כך שלימדתי את עצמי בעת פיתוח זה. ככזה, הוראות אלה מניחות ממש אפס ידע קודם ומדברות אותך בכל שלב.

העלות הכוללת של הרכיבים החיוניים לבניית זה היא כ- 50-60 ליש ט.

אשמח לראות מה אתה בונה!

שלב 1: ציוד חובה 1: פטל פטל

הקצה האחורי שמתממשק לרשת שלך, Sonos ו- Spotify יופעל על ידי פטל פטל. למעשה, יש מעט מאוד מה שאתה צריך כדי שהדבר יסתיים.

חִיוּנִי:

Raspberry Pi: השתמשתי ב- Raspberry Pi 3 דגם B+ אך הוא יעבוד גם עם Raspberry Pi 3 דגם A+ (£ 23)

ספק כוח USB: היה לי אחד כזה - יש ספק רשמי אם לא (9 ליש ט)

כרטיס מיקרו SD: קיבלתי כרטיס 32GB, וזה מספיק לאפליקציה הזו, באמזון (6 ליש ט)

כמה ציוד Sonos פועל ברשת שלך (אני מניח שכבר יש לך את זה אם אתה כאן …)

חשבון Spotify Premium

מוּמלָץ:

מארז ל- Pi: יש הרבה אפשרויות, החל מ -5 £

בקבוק זינפנדל הגון בקליפורניה: אני ממליץ על רידג ', אך אחרים זמינים

שלב 2: חומרים מתכלים נדרשים 2: קורא NFC

חומרים מתכלים דרושים 2: קורא NFC
חומרים מתכלים דרושים 2: קורא NFC
חומרים מתכלים דרושים 2: קורא NFC
חומרים מתכלים דרושים 2: קורא NFC

הוראות אלה בנויות עבור קורא NFC ACR122U המתחבר באמצעות USB.

ACR122U

קניתי את זה מאמזון תמורת 38 פאונד (בעיקר מכיוון שהיתה לו משלוח מעולה) אבל ישנן אפשרויות זולות יותר לקנות אותו קורא.

באופן מבלבל נראה כי ה- ACR122U נמכר תחת חבורה של שמות מותג שונים (שלי היה תחת שם המותג הרחוק מלהרגיע "יוסו") אבל ממה שאני יכול להגיד שהם כולם אותו דבר ונבנו על ידי אמריקן קארד סיסטמס.

הזול ביותר שמצאתי את ה- ACR122U המפורסם הוא 21 ליש ט כולל משלוח, אבל זה מגיע ישירות מסין, כך שתצטרך לחכות קצת לזה.

אפשרויות אחרות

פרויקט זה מסתמך על ספריית פייתון בשם nfcpy השומרת כאן רשימה של מכשירים נתמכים:

בתיאוריה הפרויקט הזה אמור לעבוד עם כל אחד מאלה ברשימה עם מעט אינטגרציה.

אפשרות מפתה אחת היא ה- Adafruit PN532 המהווה לוח אשר אמור להתחבר ישירות ל- Raspberry Pi שלך באמצעות כבלי מגשר. ניסיתי את זה ומצאתי שזה ממש פאפ. זה דורש הלחמה, למשל.

יתרון אחד שלו הוא, באופן שטחי, שהוא קטן יותר אך למעשה הלוח הוא בערך באותו גודל כמו האומץ של ה- ACR122U. אם אתה באמת דחף מקום ליישום שלך, תוכל להסיר את הפלסטיק מה- ACR122U ופשוט להשתמש בלוח.

שלב 3: חומרים מתכלים נדרשים 3: תגי NFC

חומרים מתכלים דרושים 3: תגי NFC
חומרים מתכלים דרושים 3: תגי NFC

עבור כל אלבום שתרצה ליצור, תזדקק לתג NFC העומד בתקן NTAG213.

יש הרבה מקומות לרכוש כאלה.

קניתי את האצווה הראשונה שלי מאמזון, שם קיבלתי חבילה של 10 תמורת 9 ליש ט (כולל משלוח פריים)

המספק הטוב ביותר שמצאתי כאן בבריטניה הוא Seritag - יש להם מבחר ממש רחב של סגנונות שונים, עצות מצוינות באתר שלהם, אתה יודע בדיוק מה אתה מקבל (לא תמיד נכון באמזון). אין להם גודל הזמנה מינימלי והמון אפשרויות. תגים מתחילים ב 27p לכל תג

שלב 4: הורד את מערכת ההפעלה Raspberry Pi לכרטיס SD

הורד את מערכת ההפעלה Raspberry Pi לכרטיס SD
הורד את מערכת ההפעלה Raspberry Pi לכרטיס SD
הורד את מערכת ההפעלה Raspberry Pi לכרטיס SD
הורד את מערכת ההפעלה Raspberry Pi לכרטיס SD

במחשב האישי או ב- Mac, הורד והפעל את היישום Raspberry PI.

הכנס את כרטיס ה- SD עליו ברצונך להתקין את מערכת ההפעלה Raspberry Pi.

לחץ על CHOOSE OS ובחר ברירת המחדל של Rasbian.

לחץ על בחר כרטיס SD ובחר את כרטיס ה- SD שחיברת.

לחץ על WRITE. זה עשוי לקחת זמן.

לאחר סיום זה יגיד לך להסיר את כרטיס ה- SD, מה שאתה צריך לעשות. אבל תחבר אותו שוב מכיוון שיש כמה נקודות ניקיון שעליך לעשות קודם.

שלב 5: הפעל SSH בתמונת מערכת ההפעלה שלך Raspberry Pi

הפעל SSH בתמונת מערכת ההפעלה Raspberry Pi שלך
הפעל SSH בתמונת מערכת ההפעלה Raspberry Pi שלך

לאחר שנכתבה מערכת ההפעלה לכרטיס ה- SD, עליך לבצע מספר משימות נוספות.

אנו רוצים לגשת ל- Raspberry Pi מבלי לחבר מקלדת או צג (aka "ללא ראש"), אותם אנו יכולים לבצע באמצעות הרשת המקומית שלנו באמצעות המחשב האישי או ה- 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 לנתב שלך באמצעות Ethernet. (למרות שאולי תרצה לחשוב טוב טוב על ההחלטה הזו - הפעלת Wi -Fi הופכת את החיים להרבה יותר קלים מבחינת מיקום זה)

צור קובץ טקסט רגיל בשם wpa_supplicant.conf בספריית השורש של כרטיס ה- SD.

הכנס את הטקסט שלהלן לקובץ:

מדינה = gb

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

שנה את המדינה לפי הצורך (GB היא בריטניה, ארה"ב היא ארה"ב, DE היא גרמניה וכו ')

שנה את אישורי ה- wifi שם כדי להיות פרטי נתב ה- Wi -Fi שלך בפועל.

שמור את הקובץ.

הוצא את כרטיס ה- SD בבטחה.

שלב 7: הפעל את ה- Raspberry Pi שלך

הפעל את ה- Raspberry Pi שלך
הפעל את ה- Raspberry Pi שלך

הכנס את כרטיס ה- SD שיצרת זה עתה לתוך ה- Raspberry Pi שלך.

חבר את ה- Raspberry Pi לחשמל באמצעות כבל ה- USB. המתן דקה עד שיאתחל.

שלב 8: מצא את כתובת ה- IP של ה- Raspberry Pi שלך

כעת עליך למצוא את כתובת ה- IP של ה- Raspberry Pi כדי שתוכל להתחבר אליה. אתה יכול לעשות זאת בשתי דרכים:

  • דרך דף הגדרת הנתב שלך - אם יש לך נתב מודרני כמו eero אז זה סופר קל;
  • או באמצעות אפליקציית סמארטפון הזמינה ל- iOS ולאנדרואיד בשם "אצבע" - הורד אותה, התחבר לנתב שלך וסרוק מכשירים - אחד מהם צריך להיקרא "פטל" - זו תהיה כתובת ה- IP הדרושה לך.

שלב 9: התחבר לשורת הפקודה שלך Raspberry Pi

התחבר לשורת הפקודה שלך Raspberry Pi
התחבר לשורת הפקודה שלך Raspberry Pi

פתח את מסוף ב- Mac שלך (או אם אתה משתמש ב- Windows, הורד והשתמש במרק).

הזן את הפקודה הבאה:

ssh pi@[כתובת ה- IP של הפי שלך]

קבל את כל אזהרות האבטחה שאתה מקבל. תתבקש להזין את הסיסמה עבור משתמש ברירת המחדל של pi

פֶּטֶל

שלב 10: הגדר את ממשק המשתמש של OS Raspberry Pi

הגדר את ממשק המשתמש של Raspberry Pi OS
הגדר את ממשק המשתמש של Raspberry Pi OS
הגדר את ממשק המשתמש של Raspberry Pi OS
הגדר את ממשק המשתמש של Raspberry Pi OS

כעת אתה מחובר ל- Pi שלך באמצעות שורת הפקודה, וזה נהדר אבל אתה גם רוצה להגדיר אותו כך שתוכל לגשת לממשק המשתמש הגרפי שאליו נגיע באמצעות VNC (מחשוב רשתות וירטואליות). כצפוי, עלינו גם לאפשר זאת.

קודם כל בדוק שתוכנת ה- Pi שלך מעודכנת על ידי הזנת שתי הפקודות הבאות (כל אחת ואחריהן enter) בשורת הפקודה:

עדכון sudo apt

sudo apt להתקין realvnc-vnc-server realvnc-vnc-viewer

לאחר מכן, פתח את תפריט ההגדרות של Raspberry Pi על ידי הזנת:

sudo raspi-config

נווט לאפשרויות ממשק> VNC> כן.

צא מיישום התצורה על ידי לחיצה על מקש הבריחה והפעל מחדש את ה- Pi משורת הפקודה על ידי הקלדה:

sudo אתחול מחדש

שלב 11: התחבר והגדר את ממשק המשתמש של Raspberry Pi

התחבר והגדר את ממשק המשתמש של Raspberry Pi
התחבר והגדר את ממשק המשתמש של Raspberry Pi
התחבר והגדר את ממשק המשתמש של Raspberry Pi
התחבר והגדר את ממשק המשתמש של Raspberry Pi

הורד ופתח את VNC Viewer.

הקלד את כתובת ה- IP של ה- Raspberry Pi ולחץ על connect. הוא יבקש ממך שם משתמש וסיסמה שהם:

שם משתמש = pi

סיסמא = פטל

זה אמור לאתחל אותך ל- GUI.

הוא יבקש ממך לאשר את הגיאוגרפיה ואת פריסת המקלדת שלך.

לאחר מכן הוא יבקש ממך לשנות את הסיסמה שלך (רעיון טוב).

הוא יבקש ממך להגדיר את פרטי ה- wifi שלך, אך תוכל לדלג על כך מכיוון שהם כבר עובדים. (אם כי אם אתה פועל על אתרנט וחושב על מחשבה שנייה אז עכשיו זו ההזדמנות שלך … אך שים לב שכתובת ה- IP שלך עשויה להשתנות)

לאחר מכן הוא יבדוק אם יוריד, יוריד והתקין עדכונים (עלול לקחת זמן).

לאחר שתעבור באשף ההתקנה הייתי ממליץ לשנות את רזולוציית המסך מכיוון שברירת המחדל די קטנה. תוכל לעשות זאת על ידי לחיצה על הפטל בפינה השמאלית העליונה> העדפות> תצורת פטל פיי> תצוגה> הגדר רזולוציה

יהיה עליך לאתחל את ה- Pi שוב כדי לגרום לזה להיכנס לתוקף.

שלב 12: התקן את Node.js ו- NPM

התקן את Node.js ו- NPM
התקן את Node.js ו- NPM

בשלב הבא אתה רוצה לטעון את שורת הפקודה Raspberry Pi כדי להתקין את התלות הדרושות לנו.

אתה יכול לעשות זאת על ידי חיבור באמצעות VNC ולחיצה על הכפתור ליד החלק העליון שנראה כמו שורת פקודה; או שאתה יכול להתחבר ישירות מה- Mac/PC שלך באמצעות מסוף ופאט כפי שעשינו בעבר. אם אתה פחות רגיל לעבוד עם ה- Raspberry Pi, קל יותר לעשות את הראשון.

(טיפ: תוכל להעתיק טקסט מה- Mac/PC ולהדביק אותו ב- Raspberry Pi באמצעות VNC על ידי הקשה על CONTROL-V, אך אם אתה מנסה להדביק במסוף אז עליך ללחוץ על CONTROL-SHIFT-V)

התפקיד הראשון הוא לבדוק שוב שהתוכנה שלך מעודכנת על ידי הקלדת שתי הפקודות הבאות. ייתכן שיחלוף זמן מה להוריד ולהתקין.

עדכון sudo apt-get

sudo apt-get upgrade

לאחר מכן ברצונך להוריד ולהתקין node.js ו- NPM (אל תדאג יותר מידי מה הם, הם מועילים והכרחיים למשימות הבאות שלנו) על ידי הקלדת הדברים הבאים:

sudo apt-get להתקין nodejs npm

זה ישאל אותך כמה פעמים אם אתה שמח לתפוס שטח דיסק עם אלה - אתה צריך ללחוץ על Y

שלב 13: התקן את ה- SONOS HTTP API

הבסיס לקצה האחורי לפרויקט שלנו הוא חבילת node-sonos-http-api שנוצרה על ידי jishi. אתה יכול לקרוא הכל על זה כאן:

נוריד זאת מ- github כשהפקודה הבאה תיכנס לשורת הפקודה:

שיבוט git

ונתקין אותו עם הפקודות הבאות

צומת cd-sonos-http-api

npm להתקין -ייצור

לאחר מכן נוכל להריץ אותו באמצעות הפקודה הבאה:

npm התחלה

ברגע שזה נעשה אנחנו צריכים לבדוק שזה עובד.

קודם כל, פתח את דפדפן האינטרנט ב- Raspberry Pi שלנו ונווט אל https:// localhost: 5005/. ממשק נחמד צריך להיפתח עם הלוגו של Sonos וקצת תיעוד כיצד פועל ה- API.

לאחר מכן, נבדוק שזה עובד מהרשת הרחבה יותר על ידי שימוש בדפדפן במחשב אחר או ב- Mac באותה רשת וניווט אל https:// [theIPaddressofyourPi]: 5005/ונראה אם נקבל את אותה התוצאה. אנחנו צריכים.

עכשיו בעצם נגרום למערכת לעשות משהו. השתמש בדפדפן ונווט אל:

192.168.4.102:5005/ חדר אוכל/השהיית הפעלה

עליך להחליף את כתובת ה- IP לעיל בכתובת ה- Raspberry Pi שלך ו"חדר האוכל "באחד השמות של אזורי Sonos שלך. היא אמורה לנגן או להשהות (תלוי אם מוסיקה כבר מתנגנת או לא) את המוסיקה בחדר זה. ברור שמשהו צריך להיות בתור Sonos כדי שזה יעבוד.

בהמשך, אני הולך להשתמש בכתובת ה- IP שלמעלה ובחדר האוכל כדוגמאות במהלך הדרכה זו. ברור שאתה צריך להחליף אותם בכתובת ה- IP שלך ושם האזור שלך בכל פעם.

שלב 14: הפעל את ממשק ה- API של Sonos HTTP ללא הרף

הפוך את ה- API של Sonos HTTP לפעול כל הזמן
הפוך את ה- API של Sonos HTTP לפעול כל הזמן

זה נהדר שהפעלנו את ממשק ה- HTTP של Sonos, אבל מה אם הוא קורס? או שאתה מאבד כוח או שאתה צריך לאתחל את ה- Raspberry Pi שלך?

אתה יכול לראות את ההשפעה על ידי סגירת חלון הטרמינל וניסוי חוזר של מה שניסינו זה עתה. זה לא יעבוד מכיוון ש- HTTP API נעצר יחד עם חלון הטרמינל.

אנחנו בעצם רוצים שזה יפעל כל הזמן ועושה זאת מההפעלה בכל פעם. אנחנו עושים את זה עם דבר מגניב שנקרא PM2.

בחלון טרמינל חדש, התקן והפעל אותו באופן הבא:

sudo npm install -g pm2

מצב pm2

עכשיו בואו נעשה את זה כדי להריץ את ה- API של Sonos

צומת cd-sonos-http-api

pm2 התחלה npm - הפעלה pm2 מערכת ההפעלה d

הפקודה האחרונה יוצרת משהו שנראה קצת כמו:

sudo env PATH = $ PATH:/usr/bin/usr/local/lib/node_modules/pm2/bin/pm2 הפעלה systemd -u pi --hp/home/pi

העתק את מה שהפיק שלך מייצר (לא הטקסט המדויק למעלה - שלך עשוי להיות שונה) והזן אותו בשורת הפקודה. זה מורה למערכת להריץ את PM2 בעת האתחול בכל פעם.

לבסוף, הזן:

pm2 שמור

שחוסך הכל.

עכשיו בדוק אם זה עבד על ידי הפעלה מחדש של ה- Raspberry Pi שלך באמצעות הפקודה

sudo אתחול מחדש

יש לקוות שברגע שה- Pi יאתחל הוא יפעיל גם את PM2 ובתורו את ה- API של Sonos HTTP. תוכל לבדוק זאת על ידי ניווט באמצעות דפדפן באותה רשת לכתובת בה השתמשנו קודם ולראות את הלוגו וההוראות של Sonos:

192.168.4.102:5005/

זה מה שבשבילי, אבל שלך יהיה תלוי בכתובת ה- IP.

שלב 15: שחק קצת ספוטיפיי

בואו לבדוק שהשירות יכול לגשת לספוטיפיי.

פתח דפדפן ונווט אל הכתובת הבאה (החלפה כמובן בכתובת ה- IP שלך ושם החדר):

192.168.4.102:5005/ חדר אוכל/Spotify/עכשיו/Spotify/Spotify: אלבום: 2dfTV7CktUEBkZCHiB7VQB

כדאי שתשמע כמה ג'ון גרנט. תהנה.

שלב 16: מצא את URI של Spotify

מצא את URI של Spotify
מצא את URI של Spotify

מוזר, אני יודע, אבל לא כולם אוהבים את ג'ון גרנט. אולי אתה רוצה להקשיב למשהו אחר?

אתה יכול לקבל את הקישורים של Spotify משולחן העבודה, מהאינטרנט או מהיישומים הניידים, אך שולחן העבודה הוא ללא ספק הקל ביותר מכיוון שהוא מספק את ה- URI בדיוק בפורמט שאתה רוצה אז התחל עם זה.

באפליקציית שולחן העבודה של Spotify נווט לאלבום שאליו אתה רוצה להאזין (אולי לימונדה של ביונסה?)

לחץ על שלוש הנקודות הקטנות שליד כפתור הלב.

עבור למטה בתפריט כדי לשתף ובחר העתק URI של Spotify

זה יעתיק משהו כמו

spotify: אלבום: 7dK54iZuOxXFarGhXwEXfF

ללוח שלך, שהוא ה- URI של Spotify לאלבום Lemondade של ביונסה.

הפעל שוב את הדפדפן שלך ונווט לכתובת הבאה (ברור שהחלפת כתובת ה- IP והחדר והדבקה ב- URI שהעתקת זה עתה):

192.168.4.102:5005/ חדר אוכל/spotify/עכשיו/[Spotify URI שאתה רוצה לשחק]

אתה צריך לשמוע את הבחירה שלך משחקת.

אם אתה מעדיף להשתמש ביישום האינטרנט, הוא ייתן לך קישור אינטרנט (משהו כמו להלן):

open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF

אתה צריך להמיר את זה לפורמט spotify: album: קוד למעלה כדי שזה יעבוד.

שלב 17: הערה על URI של Spotify

URI של Spotify והם מתממשקים עם הצומת-sonos-http-api הם אינטואיטיביים, לרוב.

אתה יכול לקשר ישירות לאלבומים, רצועות ופלייליסטים.

URI של אלבום נראה כך:

spotify: אלבום: 6agCM9GJcebduMddgFmgsO

URI של מסלול נראה כך:

spotify: track: 4fNDKbaeEjk2P4GrRE1UbW

רשימות השמעה פועלות קצת אחרת. כאשר תעתיק את ה- URI מ- Spotify הוא ייראה בערך כך:

spotify: רשימת השמעה: 5huIma0YU4iusLcT2reVEU

עם זאת, בכדי לגרום לו לעבוד על ה- API עליך להוסיף spotify: user: לתחילת האמור לעיל. זה חל אפילו על פלייליסטים ציבוריים, וכן, זה אומר שאתה אומר spotify פעמיים.

כדי להיות ברור מאוד, המשתמש לא צריך להיות שם משתמש מסוים, אלא רק משתמש הטקסט. אז ה- URI הנכון עבור רשימת ההשמעה לעיל בכדי לגרום לו לפעול יהיה:

spotify: משתמש: spotify: רשימת השמעה: 5huIma0YU4iusLcT2reVEU

שלב 18: הגדר את Raspberry Pi לשליחת בקשות

הגדר את Raspberry Pi לשליחת בקשות HTTP
הגדר את Raspberry Pi לשליחת בקשות HTTP

במקום להקליד באופן ידני בקשות HTTP לדפדפן אינטרנט, אנו רוצים להפוך אותו לאוטומטי כך ש- Raspberry Pi יעשה זאת בעצמו כאשר יוצג לו גירוי מסוים (קורא ה- NFC מופעל).

אנו נשתמש בספרייה בשם בקשות כדי לאפשר ל- Raspberry Pi שלנו לעשות זאת. בואו לבדוק שזה מותקן.

פתח את הטרמינל ב- 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 באמצעות טלפון אנדרואיד, אך אני מוצא שהכי קל לעשות זאת באמצעות Mac או PC, כיוון שאז תוכל להשיג את ה- URI של Spotify מהאפליקציה לשולחן העבודה של Spotify.

חבר את קורא ה- NFC USB למחשב האישי או ל- Mac. אני משתמש ב- ACR122U של American Card Systems.

הורד את כלי NFC למחשב האישי או ל- Mac. התקן ופתח אותו.

לפעמים זה יכול להיות קצת איטי להתחבר לקורא ואולי לומר שהוא לא יכול למצוא את הקורא בכלל. עבור לכרטיסיה אחר בכלי NFC ולחץ מדי פעם על לחצן קורא NFC מחובר. ייתכן שיהיה עליך לנתק את הקורא ולחבר אותו כמה פעמים לפני שהוא מוצא אותו.

בסופו של דבר זה ייתן לך את האפשרות לבחור את הקורא שלך מתוך רשימה ולומר שהוא מחובר. עבור לכרטיסייה מידע שלא תראה דבר מלבד "מחכה לתג NFC".

קח תג NFC ריק. שים אותו על הקורא והשאיר אותו שם. NFC Tools יציג את המידע אודות התג.

עבור ללשונית כתיבה ולחץ על הוסף רשומה> טקסט. (היזהר לא לבחור URL או URI - אני יודע שזה מפתה כי אתה מעתיק URI, אבל אתה רוצה טקסט)

קח URI מ- Spotify בשיטה בה השתמשנו בעבר. אם אתה רוצה דוגמה קלה אז להלן אלבום ג'ון גרנט שלנו מקודם.

spotify: אלבום: 2dfTV7CktUEBkZCHiB7VQB

לחץ על אישור ולאחר מכן לחץ על כתוב (אל תשכח את השלב האחרון הזה - הוא לא כותב אותו בפועל עד שתלחץ עליו). הוא יגיד לך שהוא כתב את התג בהצלחה.

הסר את התג מהקורא

שלב 20: הגדר את קורא ה- NFC ב- Raspberry Pi

הגדר את קורא NFC ב- Raspberry Pi
הגדר את קורא NFC ב- Raspberry Pi

חבר את קורא ה- NFC שלך לאחת מיציאות ה- USB ב- Raspberry Pi.

אנו נשתמש בספריית ה- Python של nfcpy כדי לתקשר עם קורא ה- NFC. התקן אותו על ידי הקלדת הדברים הבאים בשורת הפקודה של Pi שלך:

pip install -U nfcpy

לאחר מכן נוכל לבדוק האם ספרייה זו מסוגלת לראות את קורא ה- NFC שלנו על ידי הקלדת הדברים הבאים:

python -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 \", ACTION == / "add \", ATTRS {idVendor} == / "04e6 \", ATTRS {idProduct} == / "5591 \", GROUP = / "plugdev \" >> /etc/udev/rules.d/nfcdev.rules '

sudo udevadm control -R

העתק והפעל את שתי הפקודות שהוא נותן לך (לא בדיוק מה שלמעלה, מכיוון ששלך עשוי להיות שונה), ולאחר מכן נתק וחבר את קורא ה- NFC שלך מיציאת ה- USB.

נסה שוב את הפקודה check:

python -m nfc

הפעם זה צריך לומר שהוא מצא אותו ללא הודעות שגיאה.

שלב 21: התקן את קובצי Script Python של Vinylemulator

כעת יש לנו את כל אבני הבניין במקום:

  • ה- Raspberry Pi שלנו מסוגל להאזין לקלט NFC
  • ה- Raspberry Pi שלנו יכול להגיד ל- Sonos לשחק רשימות השמעה של Spotify כאשר הוא מקבל URI של Spotify
  • יש לנו תג NFC שעליו מאוחסן URI של Spotify

כעת עלינו למשוך את כל אבני הבניין למשהו שימושי. זה נעשה באמצעות סקריפט פייתון קצר שכתבתי (עם הרבה עזרה מפרויקטים קודמים של NFC/Spotify/Sonos) שנקרא vinylemulator.

תוכל לצפות בקוד המקור של הקבצים ב github:

כדי להתקין זאת על ה- Raspberry Pi שלנו, עלינו לשכפל אותו מ- github באמצעות הפקודה הבאה:

שיבוט git

שלב 22: התאם אישית את ויניל אמולטור

התאם אישית ויניל אמולטור
התאם אישית ויניל אמולטור
התאמה אישית של ויניל אמולטור
התאמה אישית של ויניל אמולטור

פתח את מנהל הקבצים Raspberry Pi ונווט אל הבית> pi> וינומולטור

פתח את הקובץ userettings.py

אחת השורות בקובץ זה תקרא:

sonosroom = "חדר אוכל"

שנה את "חדר האוכל" לשם שם החדר של Sonos שאתה רוצה לשלוט בו.

קיימת גם הגדרה בקובץ זה המאפשרת לך להתאים אישית את כתובת ה- IP של sonos-http-api. אתה אמור להיות מסוגל להשאיר את זה ללא שינוי כ- "localhost", מה שאומר שזה ישתמש ב- Raspberry Pi עליו הוא פועל.

שמור את הקובץ וסגור אותו.

שלב 23: בדוק וינילמולטור

בדוק וינילמולטור
בדוק וינילמולטור
בדוק וינילמולטור
בדוק וינילמולטור

עבור אל שורת הפקודה שלך Raspberry Pi.

הזן את הפקודה הבאה:

python vinylemulator/readnfc.py

אם הכל בסדר זה יטען את התסריט ויגיד שהקורא מוכן. האור על הקורא צריך להיות ירוק.

שים את תג NFC על הקורא, אשר יצפצוף.

הטרמינל יראה את מה שהוא קרא מתגית NFC ויציג את כתובת בקשת HTTP ששלחה. האלבום המועדף עליך אמור להתנגן מרמקולי Sonos שלך.

סקריפט זה ימשיך לפעול עד שתסגור את חלון הטרמינל. אתה יכול להקיש על תגי NFC שונים של אלבומים והוא יעבור לאלבום זה.

שלב 24: הפעל את וינילמולטור להפעלה מתמדת והפעלה

בדיוק כמו ה- sonos-http-api, אנחנו רוצים שווינימולאטור יפעל כל הזמן ולא רק כשאנחנו קוראים לזה. אנו יכולים להשתמש ב- pm2 כדי לעשות זאת שוב.

סגור תחילה את כל מופעי הווינימולטור שאתה מפעיל על ידי סגירת חלונות הטרמינל שלהם.

לאחר מכן פתח חלון טרמינל חדש והקלד את שתי הפקודות הבאות:

pm2 התחל vinylemulator/readnfc.py

pm2 שמור

בואו לבדוק אם זה עבד על ידי הפעלה מחדש של ה- Raspberry Pi. (אתה יכול להקליד אתחול sudo או לעשות זאת מתפריט הפטל בעזרת העכבר.

המתן עד שה- Pi יתחיל מחדש ותראה שהוא פועל על ידי הקשה על תג NFC על הקורא. אתה צריך לקבל מוזיקה.

שלב 25: ברך את עצמך

עכשיו הכל מתפקד. אתה יכול להעביר את ה- Raspberry Pi לכל מקום שאתה מתכנן לאתר אותו. הוא יופעל מחדש ויפעל באופן שהגדרת אותו בכל פעם שאתה מחבר אותו לחשמל.

המשימות הבאות שלך הן הכיפיות: להפוך את הכל ליפה.

שלב 26: עשה את זה יפה - הסתר את הקורא שלך

עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך
עשה את זה יפה - הסתר את הקורא שלך

החלק הראשון בהפיכתו ליפה הוא הסתרת קורא ה- NFC מפלסטיק לבן מגעיל הרחק איפשהו.

הלכתי עם אופציה נמוכה בהחלט להדביק אותו בחלק התחתון של הדלפק ליד הסונוס פליי שלי: 5. עץ הדלפק דק מספיק כדי שה- NFC יכול לעבור, אז אני מנגן מוזיקה על ידי הקשה על תג NFC בנקודה קסומה ובלתי נראית.

מוּמלָץ: