สารบัญ:
- ขั้นตอนที่ 1: อุปกรณ์ที่จำเป็น 1: Raspberry Pi
- ขั้นตอนที่ 2: อุปกรณ์ที่จำเป็น 2: NFC Reader
- ขั้นตอนที่ 3: วัสดุที่จำเป็น 3: แท็ก NFC
- ขั้นตอนที่ 4: ดาวน์โหลด Raspberry Pi OS ไปยังการ์ด SD
- ขั้นตอนที่ 5: เปิดใช้งาน SSH บนอิมเมจ Raspberry Pi OS ของคุณ
- ขั้นตอนที่ 6: ตัวเลือก: ตั้งค่า Wifi บน Raspberry Pi. ของคุณ
- ขั้นตอนที่ 7: เพิ่มพลังให้ Raspberry Pi. ของคุณ
- ขั้นตอนที่ 8: ค้นหาที่อยู่ IP ของ Raspberry Pi. ของคุณ
- ขั้นตอนที่ 9: เชื่อมต่อกับบรรทัดคำสั่ง Raspberry Pi ของคุณ
- ขั้นตอนที่ 10: ตั้งค่า Raspberry Pi OS GUI
- ขั้นตอนที่ 11: เชื่อมต่อและตั้งค่า Raspberry Pi GUI ของคุณ
- ขั้นตอนที่ 12: ติดตั้ง Node.js และ NPM
- ขั้นตอนที่ 13: ติดตั้ง SONOS HTTP API
- ขั้นตอนที่ 14: ทำให้ Sonos HTTP API ทำงานอย่างต่อเนื่อง
- ขั้นตอนที่ 15: เล่น Spotify
- ขั้นตอนที่ 16: ค้นหา Spotify URIs
- ขั้นตอนที่ 17: หมายเหตุเกี่ยวกับ Spotify URIs
- ขั้นตอนที่ 18: ตั้งค่า Raspberry Pi เพื่อส่งคำขอ
- ขั้นตอนที่ 19: สร้างแท็ก NFCC ด้วย Spotify Data
- ขั้นตอนที่ 20: ตั้งค่า NFC Reader บน Raspberry Pi
- ขั้นตอนที่ 21: ติดตั้งสคริปต์ Python ของ Vinylemulator
- ขั้นตอนที่ 22: ปรับแต่ง Vinylemulator
- ขั้นตอนที่ 23: ทดสอบ Vinylemulator
- ขั้นตอนที่ 24: รับ Vinylemulator ให้ทำงานอย่างต่อเนื่องและเมื่อเริ่มต้น
- ขั้นตอนที่ 25: แสดงความยินดีกับตัวเอง
- ขั้นตอนที่ 26: ทำให้สวยงาม - ซ่อนผู้อ่านของคุณ
วีดีโอ: Sonos Spotify Vinyl Emulator: 26 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
โปรดทราบว่านี่ไม่ใช่ชุดคำสั่งล่าสุดสำหรับโครงการนี้:
โปรดไปที่ 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: ฉันมีการ์ดขนาด 32GB ซึ่งเพียงพอสำหรับแอปพลิเคชันนี้ใน Amazon (6 ปอนด์)
อุปกรณ์ Sonos บางตัวที่ทำงานบนเครือข่ายของคุณ (ฉันเดาว่าคุณมีอยู่แล้วถ้าคุณอยู่ที่นี่…)
บัญชี Spotify Premium
ที่แนะนำ:
กรณีสำหรับ Pi: มีตัวเลือกมากมายเริ่มต้นที่ 5 ปอนด์
California Zinfandel หนึ่งขวด: ฉันแนะนำ Ridge แต่มีอย่างอื่นให้เลือก
ขั้นตอนที่ 2: อุปกรณ์ที่จำเป็น 2: NFC Reader
คำแนะนำเหล่านี้จัดทำขึ้นสำหรับเครื่องอ่าน NFC ACR122U ซึ่งเชื่อมต่อผ่าน USB
ACR122U
ฉันซื้อเครื่องนี้จาก Amazon ในราคา 38 ปอนด์ (ส่วนใหญ่เป็นเพราะมีการจัดส่งที่สำคัญ) แต่มีตัวเลือกที่ถูกกว่าในการซื้อเครื่องอ่านเดียวกันนี้
ดูเหมือนว่า ACR122U จะขายได้อย่างสับสนภายใต้ชื่อแบรนด์ต่างๆ (ของฉันมาภายใต้ชื่อแบรนด์ "Yosoo") แต่จากสิ่งที่ฉันสามารถบอกได้ว่าพวกเขาทั้งหมดเหมือนกันและสร้างโดย American Card Systems
ราคาถูกที่สุดที่ฉันพบว่า ACR122U โฆษณาคือ 21 ปอนด์รวมค่าจัดส่ง แต่มาจากประเทศจีนโดยตรง ดังนั้นคุณอาจต้องรอสักครู่
ตัวเลือกอื่น
โครงการนี้อาศัยไลบรารีหลามที่เรียกว่า nfcpy ซึ่งดูแลรายการอุปกรณ์ที่รองรับที่นี่:
ตามทฤษฎีแล้ว โปรเจ็กต์นี้ควรทำงานร่วมกับผู้ใดก็ตามที่อยู่ในรายชื่อนั้นโดยมีการบูรณาการเพียงเล็กน้อย
ตัวเลือกหนึ่งที่น่าดึงดูดใจคือ Adafruit PN532 ซึ่งเป็นบอร์ดที่ควรต่อกับ Raspberry Pi ของคุณโดยตรงโดยใช้สายจัมเปอร์ ฉันลองและพบว่ามันเป็นของจริง มันต้องมีการบัดกรีเป็นต้น
ข้อดีอย่างหนึ่งของมันคือ ผิวเผิน ว่ามันเล็กกว่า แต่ในความเป็นจริง บอร์ดนั้นมีขนาดพอๆ กับส่วนท้ายของ ACR122U หากคุณต้องการพื้นที่สำหรับแอปพลิเคชันของคุณจริงๆ คุณสามารถดึงพลาสติกออกจาก ACR122U และใช้บอร์ดได้
ขั้นตอนที่ 3: วัสดุที่จำเป็น 3: แท็ก NFC
สำหรับแต่ละอัลบั้มที่คุณต้องการสร้าง คุณจะต้องมีแท็ก NFC ซึ่งตรงตามมาตรฐาน NTAG213
มีหลายสถานที่ที่จะซื้อเหล่านี้
ฉันซื้อชุดแรกจาก Amazon โดยได้ชุด 10 ชิ้นในราคา 9 ปอนด์ (รวมการจัดส่งแบบ Prime)
สิ่งที่ดีที่สุดที่ฉันเคยพบในสหราชอาณาจักรคือ Seritag - พวกเขามีรูปแบบที่แตกต่างกันมากมาย คำแนะนำที่ดีบนเว็บไซต์ของพวกเขา คุณรู้แน่ชัดว่าคุณได้รับอะไร (ไม่จริงเสมอไปใน Amazon) พวกเขาไม่มีขนาดการสั่งซื้อขั้นต่ำและตัวเลือกมากมาย แท็กเริ่มต้นที่ 27p ต่อแท็ก
ขั้นตอนที่ 4: ดาวน์โหลด Raspberry Pi OS ไปยังการ์ด SD
บนพีซีหรือ Mac ของคุณ ให้ดาวน์โหลดและเรียกใช้แอปพลิเคชันตัวสร้างภาพ Raspberry PI
ใส่การ์ด SD ที่คุณต้องการติดตั้งระบบปฏิบัติการ Raspberry Pi
คลิกที่ CHOOSE OS และเลือก Rasbian เริ่มต้น
คลิกที่ CHOOSE SD CARD และเลือกการ์ด SD ที่คุณเสียบไว้
คลิกที่เขียน อาจใช้เวลาสักครู่
เมื่อเสร็จแล้วระบบจะบอกให้คุณถอดการ์ด SD ออก ซึ่งคุณควรทำ แต่จากนั้นเสียบกลับเข้าไปใหม่ เนื่องจากมีบางจุดของการดูแลทำความสะอาดที่คุณต้องทำก่อน
ขั้นตอนที่ 5: เปิดใช้งาน SSH บนอิมเมจ Raspberry Pi OS ของคุณ
เมื่อระบบปฏิบัติการได้รับการเขียนลงในการ์ด SD แล้ว มีงานเพิ่มเติมบางอย่างที่คุณต้องทำ
เราต้องการเข้าถึง Raspberry Pi โดยไม่ต้องเสียบแป้นพิมพ์หรือจอภาพ (หรือที่เรียกว่า "หัวขาด") ซึ่งเราสามารถทำได้ผ่านเครือข่ายท้องถิ่นของเราโดยใช้พีซีหรือ Mac ของเราผ่านโปรโตคอลที่เรียกว่า SSH อย่างไรก็ตาม ด้วยเหตุผลด้านความปลอดภัย SSH จะถูกปิดใช้งานโดยค่าเริ่มต้น เราจำเป็นต้องเปิดใช้งาน
เราสามารถทำได้โดยสร้างไฟล์เปล่าที่เรียกว่า:
ssh
ในการ์ด SD ที่เราเพิ่งสร้างขึ้น สิ่งสำคัญคือต้องไม่มีนามสกุล (เช่น.txt) ไฟล์ไม่จำเป็นต้องมีเนื้อหาใด ๆ เพียงแค่มีอยู่เท่านั้นที่จะเปิดใช้งาน SSH เมื่อ Pi บูทขึ้น
ขั้นตอนที่ 6: ตัวเลือก: ตั้งค่า Wifi บน Raspberry Pi. ของคุณ
คุณสามารถข้ามขั้นตอนนี้ได้ หากคุณวางแผนที่จะต่อ Raspberry Pi กับเราเตอร์ของคุณทางอีเธอร์เน็ต (แม้ว่าคุณอาจต้องการคิดหนักเกี่ยวกับการตัดสินใจนั้น - การใช้งานผ่าน wifi ทำให้ชีวิตง่ายขึ้นมากในแง่ของการวางตำแหน่งนี้)
สร้างไฟล์ข้อความธรรมดาชื่อ wpa_supplicant.conf ในไดเร็กทอรีรากของการ์ด SD
แทรกข้อความด้านล่างลงในไฟล์:
ประเทศ=gb
update_config=1 ctrl_interface=/var/run/wpa_supplicant network={ scan_ssid=1 ssid="MyNetworkSSID" psk="MyPassword" }
เปลี่ยนประเทศตามความเหมาะสม (GB คือสหราชอาณาจักร US คือ US DE คือเยอรมนี ฯลฯ)
เปลี่ยนข้อมูลรับรอง wifi ในนั้นเพื่อให้เป็นรายละเอียดเราเตอร์ wifi จริงของคุณ
บันทึกไฟล์.
นำการ์ด SD ออกอย่างปลอดภัย
ขั้นตอนที่ 7: เพิ่มพลังให้ Raspberry Pi. ของคุณ
ใส่การ์ด SD ที่คุณเพิ่งสร้างลงใน Raspberry Pi
เสียบ Raspberry Pi เข้ากับแหล่งจ่ายไฟผ่านสาย USB รอสักครู่เพื่อให้บูตขึ้น
ขั้นตอนที่ 8: ค้นหาที่อยู่ IP ของ Raspberry Pi. ของคุณ
ตอนนี้คุณต้องค้นหาที่อยู่ IP ของ Raspberry Pi เพื่อให้คุณสามารถเชื่อมต่อได้ คุณสามารถทำได้สองวิธี:
- ผ่านหน้าการตั้งค่าเราเตอร์ของคุณ - หากคุณมีเราเตอร์ที่ทันสมัยเช่น eero สิ่งนี้ง่ายมาก
- หรือผ่านแอพสมาร์ทโฟนที่มีให้สำหรับ iOS และ Android ที่เรียกว่า "fing" - ดาวน์โหลด เชื่อมต่อกับเราเตอร์ของคุณและสแกนหาอุปกรณ์ - หนึ่งในนั้นควรเรียกว่า "Raspberry" - นี่คือที่อยู่ IP ที่คุณต้องการ
ขั้นตอนที่ 9: เชื่อมต่อกับบรรทัดคำสั่ง Raspberry Pi ของคุณ
เปิด Terminal บน Mac ของคุณ (หรือหากคุณใช้ Windows ให้ดาวน์โหลดและใช้ Putty)
ป้อนคำสั่งต่อไปนี้:
ssh pi@[ที่อยู่ IP ของ Pi ของคุณ]
ยอมรับคำเตือนด้านความปลอดภัยที่คุณได้รับ คุณจะได้รับแจ้งให้ใส่รหัสผ่านสำหรับผู้ใช้ pi เริ่มต้นซึ่งก็คือ
ราสเบอร์รี่
ขั้นตอนที่ 10: ตั้งค่า Raspberry Pi OS GUI
ตอนนี้คุณเชื่อมต่อกับ Pi ของคุณผ่านทางบรรทัดคำสั่ง ซึ่งดีมาก แต่คุณต้องการตั้งค่าเพื่อให้คุณสามารถเข้าถึงส่วนต่อประสานกราฟิกกับผู้ใช้ซึ่งเราจะเข้าถึงผ่าน VNC (Virtual Network Computing) เราจำเป็นต้องเปิดใช้งานสิ่งนี้ด้วย
ก่อนอื่น ให้ตรวจสอบว่าซอฟต์แวร์ Pi ของคุณเป็นเวอร์ชันล่าสุดโดยป้อนคำสั่งสองคำสั่งต่อไปนี้ (แต่ละคำสั่งตามด้วย Enter) ลงในบรรทัดคำสั่ง:
sudo apt อัปเดต
sudo apt ติดตั้ง realvnc-vnc-server realvnc-vnc-viewer
ถัดไป เปิดเมนูการตั้งค่า Raspberry Pi โดยป้อน:
sudo raspi-config
ไปที่ตัวเลือกการเชื่อมต่อ > VNC > ใช่
ออกจากแอปพลิเคชันการกำหนดค่าโดยกดปุ่ม Escape และรีบูต Pi จากบรรทัดคำสั่งโดยพิมพ์:
sudo รีบูต
ขั้นตอนที่ 11: เชื่อมต่อและตั้งค่า Raspberry Pi GUI ของคุณ
ดาวน์โหลดและเปิด VNC Viewer
พิมพ์ที่อยู่ IP สำหรับ Raspberry Pi ของคุณแล้วกดเชื่อมต่อ มันจะแจ้งให้คุณใส่ชื่อผู้ใช้และรหัสผ่านซึ่งก็คือ:
ชื่อผู้ใช้ = pi
รหัสผ่าน = ราสเบอร์รี่
สิ่งนี้ควรบูตคุณสู่ GUI
ระบบจะแจ้งให้คุณยืนยันรูปแบบภูมิศาสตร์และแป้นพิมพ์ของคุณ
จากนั้นจะแจ้งให้คุณเปลี่ยนรหัสผ่าน (เป็นความคิดที่ดี)
มันจะขอให้คุณตั้งค่ารายละเอียด wifi ของคุณ แต่คุณสามารถข้ามสิ่งนี้ได้เนื่องจากใช้งานได้แล้ว (แม้ว่าคุณจะใช้อีเธอร์เน็ตและมีความคิดที่สอง ตอนนี้ก็เป็นโอกาสของคุณแล้ว… แต่โปรดทราบว่าที่อยู่ IP ของคุณอาจเปลี่ยนแปลงได้)
จากนั้นจะตรวจสอบ ดาวน์โหลด และติดตั้งการอัปเดต (อาจใช้เวลาสักครู่)
เมื่อคุณผ่านวิซาร์ดการตั้งค่าแล้ว ฉันขอแนะนำให้เปลี่ยนความละเอียดหน้าจอเนื่องจากค่าเริ่มต้นมีขนาดเล็กมาก คุณสามารถทำได้โดยคลิกที่ Raspberry ที่ด้านบนซ้าย > Preferences > Raspberry Pi Configuration > Display > Set Resolution
คุณจะต้องรีบูต Pi อีกครั้งเพื่อให้สิ่งนี้มีผล
ขั้นตอนที่ 12: ติดตั้ง Node.js และ NPM
ถัดไปคุณต้องการโหลดบรรทัดคำสั่ง Raspberry Pi เพื่อติดตั้งการพึ่งพาที่เราต้องการ
คุณสามารถทำได้โดยเชื่อมต่อผ่าน VNC และคลิกปุ่มใกล้ด้านบนที่ดูเหมือนบรรทัดคำสั่ง หรือคุณสามารถเชื่อมต่อโดยตรงจาก Mac/PC ของคุณโดยใช้ Terminal และ Putty ตามที่เราทำก่อนหน้านี้ หากคุณไม่ค่อยคุ้นเคยกับการทำงานกับ Raspberry Pi การทำแบบเดิมจะง่ายกว่า
(เคล็ดลับ: คุณสามารถคัดลอกข้อความจาก Mac/PC ของคุณแล้ววางลงใน Raspberry Pi ผ่าน VNC ได้โดยกด CONTROL-V แต่ถ้าคุณพยายามวางลงใน Terminal คุณต้องกด CONTROL-SHIFT-V)
งานแรกคือการตรวจสอบอีกครั้งว่าซอฟต์แวร์ของคุณเป็นเวอร์ชันล่าสุดโดยพิมพ์คำสั่งสองคำสั่งต่อไปนี้ อาจใช้เวลาสักครู่ในการดาวน์โหลดและติดตั้ง
sudo apt-get update
sudo apt-get อัพเกรด
ถัดไป คุณต้องการดาวน์โหลดและติดตั้ง node.js และ NPM (อย่ากังวลมากว่ามันคืออะไร สิ่งเหล่านี้มีประโยชน์และจำเป็นสำหรับงานต่อไปของเรา) โดยพิมพ์ข้อความต่อไปนี้:
sudo apt-get ติดตั้ง nodejs npm
มันจะถามคุณสองสามครั้งว่าคุณยินดีที่จะใช้พื้นที่ดิสก์กับสิ่งเหล่านี้หรือไม่ - คุณกด Y
ขั้นตอนที่ 13: ติดตั้ง SONOS HTTP API
พื้นฐานของแบ็คเอนด์สำหรับโครงการของเราคือแพ็คเกจ node-sonos-http-api ที่สร้างโดย jishi คุณสามารถอ่านทั้งหมดได้ที่นี่:
เราจะดาวน์โหลดสิ่งนี้จาก github ด้วยคำสั่งต่อไปนี้ที่ป้อนลงในบรรทัดคำสั่ง:
โคลน git
และเราจะติดตั้งด้วยคำสั่งต่อไปนี้
cd node-sonos-http-api
ติดตั้ง npm --production
จากนั้นเราสามารถเรียกใช้ด้วยคำสั่งต่อไปนี้:
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 แต่ถ้าเกิดขัดข้องล่ะ หรือคุณสูญเสียพลังงานหรือต้องการรีบูต Raspberry Pi ของคุณ?
คุณสามารถเห็นผลได้โดยการปิดหน้าต่างเทอร์มินัลแล้วลองอีกครั้งในสิ่งที่เราเพิ่งลอง จะไม่ทำงานเนื่องจาก HTTP API หยุดทำงานพร้อมกับหน้าต่างเทอร์มินัล
เราต้องการให้มันทำงานอย่างต่อเนื่องและดำเนินการตั้งแต่เริ่มต้นในแต่ละครั้ง เราทำสิ่งนี้ด้วยสิ่งดีๆ ที่เรียกว่า PM2
ในหน้าต่างเทอร์มินัลใหม่ ให้ติดตั้งและเรียกใช้ดังนี้:
sudo npm ติดตั้ง -g pm2
สถานะ pm2
มาเริ่มกันเลยเพื่อเรียกใช้ Sonos HTTP API ของเรา:
cd node-sonos-http-api
pm2 เริ่ม npm -- เริ่ม pm2 เริ่มต้น 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/ห้องอาหาร/spotify/ตอนนี้/spotify/spotify:อัลบั้ม:2dfTV7CktUEBkZCHiB7VQB
คุณน่าจะได้ยินจอห์น แกรนท์บ้าง สนุก.
ขั้นตอนที่ 16: ค้นหา Spotify URIs
แปลก ฉันรู้ แต่ไม่ใช่ทุกคนที่ชอบจอห์น แกรนท์ บางทีคุณอาจต้องการฟังอย่างอื่น?
คุณสามารถรับลิงก์ Spotify จากเดสก์ท็อป เว็บ หรือแอปบนอุปกรณ์เคลื่อนที่ได้ แต่เดสก์ท็อปนั้นง่ายที่สุด เนื่องจากส่ง URI ในรูปแบบที่คุณต้องการ ดังนั้นให้เริ่มต้นด้วยสิ่งนั้น
ในแอป Spotify บนเดสก์ท็อป ให้นำทางไปยังอัลบั้มที่คุณต้องการฟัง (อาจจะเป็น Lemonade โดย Beyonce?)
คลิกที่จุดเล็ก ๆ สามจุดถัดจากปุ่มหัวใจ
ไปที่เมนูเพื่อแชร์และเลือกคัดลอก Spotify URI
สิ่งนี้จะคัดลอกบางสิ่งเช่น
spotify:อัลบั้ม:7dK54iZuOxXFarGhXwEXfF
ไปยังคลิปบอร์ดของคุณ ซึ่งเป็น Spotify URI สำหรับอัลบั้ม Lemondade ของ Beyonce
เปิดเบราว์เซอร์ของคุณอีกครั้งและไปที่ที่อยู่ต่อไปนี้ (เห็นได้ชัดว่าแทนที่ที่อยู่ IP และห้องและวางใน URI ที่คุณเพิ่งคัดลอก):
192.168.4.102:5005/ห้องรับประทานอาหาร/spotify/ตอนนี้/[Spotify URI ที่คุณต้องการเล่น]
คุณควรได้ยินการเล่นที่คุณเลือก
หากคุณต้องการใช้เว็บแอป แอปจะให้ลิงก์เว็บแก่คุณ (เช่นด้านล่าง):
open.spotify.com/album/7dK54iZuOxXFarGhXwEXfF
คุณต้องแปลงเป็นรูปแบบ spotify:album:code ด้านบนจึงจะใช้งานได้
ขั้นตอนที่ 17: หมายเหตุเกี่ยวกับ Spotify URIs
Spotify URI และวิธีที่พวกเขาเชื่อมต่อกับ node-sonos-http-api นั้นใช้งานง่าย ส่วนใหญ่
คุณสามารถเชื่อมโยงไปยังอัลบั้ม แทร็ก และเพลย์ลิสต์ได้โดยตรง
อัลบั้ม URI มีลักษณะดังนี้:
spotify:อัลบั้ม:6agCM9GJcebduMddgFmgsO
URI ของแทร็กมีลักษณะดังนี้:
spotify:track:4fNDKbaeEjk2P4GrRE1UbW
เพลย์ลิสต์ทำงานแตกต่างกันเล็กน้อย เมื่อคุณคัดลอก URI จาก Spotify จะมีลักษณะดังนี้:
spotify:playlist:5huIma0YU4iusLcT2reVEU
อย่างไรก็ตาม เพื่อให้มันทำงานบน API ได้จริง คุณต้องเพิ่ม spotify:user: ที่จุดเริ่มต้นของด้านบน สิ่งนี้ใช้ได้กับเพลย์ลิสต์สาธารณะ และใช่ หมายความว่าคุณกำลังพูด Spotify สองครั้ง
เพื่อความชัดเจน ผู้ใช้ไม่จำเป็นต้องเป็นชื่อผู้ใช้เฉพาะ ผู้ใช้แบบข้อความเท่านั้น ดังนั้น URI ที่ถูกต้องสำหรับเพลย์ลิสต์ด้านบนเพื่อให้ใช้งานได้คือ:
spotify:ผู้ใช้:spotify:playlist:5huIma0YU4iusLcT2reVEU
ขั้นตอนที่ 18: ตั้งค่า Raspberry Pi เพื่อส่งคำขอ
แทนที่จะพิมพ์คำขอ HTTP ด้วยตนเองลงในเว็บเบราว์เซอร์ เราต้องการทำให้เป็นอัตโนมัติเพื่อให้ Raspberry Pi ทำเช่นนั้นเองเมื่อมีสิ่งกระตุ้นบางอย่าง (เครื่องอ่าน NFC ถูกทริกเกอร์)
เราจะใช้ไลบรารีที่เรียกว่าการร้องขอเพื่อให้ Raspberry Pi ของเราทำสิ่งนี้ได้ ให้ตรวจสอบการติดตั้ง
เปิดเทอร์มินัลบน Pi ของคุณและพิมพ์ดังต่อไปนี้:
คำขอติดตั้ง sudo pip
เป็นไปได้มากที่มันจะกลับมาและบอกว่าติดตั้งแล้ว ซึ่งในกรณีนี้ก็เยี่ยมมาก ถ้าไม่ก็จะติดตั้ง
ขั้นตอนที่ 19: สร้างแท็ก NFCC ด้วย Spotify Data
ตอนนี้เราต้องการเขียน URI อัลบั้ม Spotify ลงในแท็ก NFC แต่ละแท็กเหล่านี้คือสิ่งที่คุณจะใช้เพื่อบอกให้ Raspberry Pi เล่นอัลบั้มใดอัลบั้มหนึ่ง
คุณสามารถเขียนไปยังแท็ก NFC โดยใช้โทรศัพท์ Android แต่ฉันคิดว่ามันง่ายที่สุดที่จะทำผ่าน Mac หรือ PC เพราะคุณจะได้รับ Spotify URI จากแอพ Spotify บนเดสก์ท็อปที่ง่ายที่สุด
เสียบเครื่องอ่าน USB NFC เข้ากับพีซีหรือ Mac ฉันกำลังใช้ ACR122U โดย American Card Systems
ดาวน์โหลดเครื่องมือ NFC ไปยังพีซีหรือ Mac ของคุณ ติดตั้งและเปิดขึ้น
การเชื่อมต่อกับเครื่องอ่านอาจช้าเล็กน้อยในบางครั้งและอาจกล่าวได้ว่าไม่พบเครื่องอ่านเลย ไปที่แท็บอื่นๆ ในเครื่องมือ NFC และคลิกทุก ๆ ครั้งบนปุ่ม Connected NFC Reader คุณอาจต้องถอดปลั๊กและเสียบปลั๊กเครื่องอ่านใหม่สองสามครั้งก่อนที่จะพบ
ในที่สุดก็จะให้ตัวเลือกแก่คุณในการเลือกผู้อ่านของคุณจากรายการและบอกว่าเชื่อมต่อแล้ว ไปที่แท็บข้อมูลซึ่งจะไม่แสดงอะไรเลยยกเว้น "กำลังรอแท็ก NFC"
ใช้แท็ก NFC เปล่า วางบนเครื่องอ่านแล้วปล่อยไว้ที่นั่น NFC Tools จะแสดงข้อมูลเกี่ยวกับแท็ก
ไปที่แท็บ เขียน แล้วคลิก เพิ่มเรกคอร์ด > ข้อความ (ระวังอย่าเลือก URL หรือ URI - ฉันรู้ว่ามันน่าสนใจเพราะคุณกำลังคัดลอก URI แต่คุณต้องการข้อความ)
หยิบ URI จาก Spotify โดยใช้วิธีที่เราใช้ก่อนหน้านี้ หากคุณต้องการตัวอย่างง่ายๆ ต่อไปนี้คืออัลบั้ม John Grant ของเราก่อนหน้านี้
spotify:อัลบั้ม:2dfTV7CktUEBkZCHiB7VQB
คลิก ตกลง แล้วคลิก เขียน (อย่าลืมขั้นตอนสุดท้ายนี้ เนื่องจากจะไม่เขียนจริงๆ จนกว่าคุณจะคลิกที่นี่) มันจะบอกคุณว่ามันเขียนแท็กสำเร็จแล้ว
แกะป้ายคนอ่านออก
ขั้นตอนที่ 20: ตั้งค่า NFC Reader บน Raspberry Pi
เสียบเครื่องอ่าน NFC ของคุณเข้ากับพอร์ต USB ของ Raspberry Pi
เราจะใช้ไลบรารี nfcpy Python เพื่อสื่อสารกับเครื่องอ่าน NFC ติดตั้งโดยพิมพ์ข้อความต่อไปนี้บนบรรทัดคำสั่ง Pi ของคุณ:
pip ติดตั้ง -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' ให้ฉันดู -- แต่ระวังว่านี่อาจทำให้ devs อนุกรมอื่น ๆ เสียหาย
อย่างไรก็ตาม มีโอกาสดีที่คุณจะได้รับข้อความแสดงข้อผิดพลาดที่แจ้งว่าพบผู้อ่านแล้ว แต่ผู้ใช้ของคุณ (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 ควบคุม -R
คัดลอกและดำเนินการคำสั่งทั้งสองที่คุณให้ไว้ (ไม่ใช่สิ่งที่กล่าวข้างต้น เนื่องจากคำสั่งของคุณอาจแตกต่างกัน) จากนั้นถอดปลั๊กและเสียบเครื่องอ่าน NFC ของคุณใหม่จากพอร์ต USB
ลองใช้คำสั่งตรวจสอบอีกครั้ง:
หลาม -m nfc
คราวนี้น่าจะบอกว่าเจอแล้วไม่มีข้อความแสดงข้อผิดพลาด
ขั้นตอนที่ 21: ติดตั้งสคริปต์ Python ของ Vinylemulator
ตอนนี้เรามีหน่วยการสร้างทั้งหมด:
- Raspberry Pi ของเราสามารถฟังอินพุต NFC ได้
- Raspberry Pi ของเราสามารถบอกให้ Sonos เล่นเพลย์ลิสต์ Spotify เมื่อได้รับ Spotify URI
- เรามีแท็ก NFC ที่มี Spotify URI จัดเก็บอยู่
ตอนนี้เราจำเป็นต้องดึงบล็อคการสร้างทั้งหมดเหล่านี้เป็นสิ่งที่มีประโยชน์ สิ่งนี้ทำได้ผ่านสคริปต์หลามสั้น ๆ ที่ฉันเขียน (ด้วยความช่วยเหลือมากมายจากโครงการ NFC/Spotify/Sonos ก่อนหน้า) ซึ่งเรียกว่าไวนิลอีมูเลเตอร์
คุณสามารถดูซอร์สโค้ดของไฟล์ได้ที่ github:
ในการติดตั้งบน Raspberry Pi ของเรา เราจำเป็นต้องโคลนจาก github ด้วยคำสั่งต่อไปนี้:
ขั้นตอนที่ 22: ปรับแต่ง Vinylemulator
เปิดตัวจัดการไฟล์ Raspberry Pi และไปที่หน้าแรก > pi > vinylemulator
เปิดไฟล์ usersettings.py
บรรทัดใดบรรทัดหนึ่งในไฟล์นี้จะเขียนว่า:
sonosroom="ห้องรับประทานอาหาร"
เปลี่ยน "Dining Room" เป็นชื่อห้อง Sonos ที่คุณต้องการควบคุม
นอกจากนี้ยังมีการตั้งค่าในไฟล์นี้ซึ่งช่วยให้คุณปรับแต่งที่อยู่ IP ของ sonos-http-api คุณควรปล่อยให้สิ่งนี้ไม่เปลี่ยนแปลงเป็น "localhost" ซึ่งหมายความว่าจะใช้ Raspberry Pi ที่กำลังทำงานอยู่
บันทึกไฟล์และปิด
ขั้นตอนที่ 23: ทดสอบ Vinylemulator
ไปที่พรอมต์คำสั่ง Raspberry Pi ของคุณ
ป้อนคำสั่งต่อไปนี้:
หลามไวนิลอีมูเลเตอร์/readnfc.py
ถ้าทุกอย่างเรียบร้อย สคริปต์จะโหลดขึ้นมาและบอกว่าผู้อ่านพร้อม ไฟที่เครื่องอ่านควรเป็นสีเขียว
ใส่แท็ก NFC บนเครื่องอ่านซึ่งจะส่งเสียงบี๊บ
เครื่องอ่านบัตรจะแสดงสิ่งที่อ่านจากแท็ก NFC และแสดงที่อยู่คำขอ HTTP ที่ส่งไป อัลบั้มที่คุณเลือกควรเล่นจากลำโพง Sonos ของคุณ
สคริปต์นี้จะทำงานต่อไปจนกว่าคุณจะปิดหน้าต่างเทอร์มินัล คุณสามารถแตะแท็ก NFC ของอัลบั้มต่างๆ ได้ แล้วแท็กจะสลับไปที่อัลบั้มนั้น
ขั้นตอนที่ 24: รับ Vinylemulator ให้ทำงานอย่างต่อเนื่องและเมื่อเริ่มต้น
เช่นเดียวกับ sonos-http-api เราต้องการให้ vinylemulator ทำงานตลอดเวลา ไม่ใช่แค่ตอนที่เราเรียกมัน เราสามารถใช้ pm2 ทำเช่นนี้ได้อีกครั้ง
ขั้นแรกให้ปิดไวนิลอีมูเลเตอร์ที่คุณใช้งานอยู่โดยปิดหน้าต่างเทอร์มินัล
จากนั้นเปิดหน้าต่างเทอร์มินัลใหม่และพิมพ์คำสั่งสองคำสั่งต่อไปนี้:
pm2 เริ่ม vinylemulator/readnfc.py
บันทึก pm2
ลองตรวจสอบว่าใช้งานได้หรือไม่โดยการรีบูต Raspberry Pi (คุณสามารถพิมพ์ sudo reboot หรือพิมพ์จากเมนู Raspberry ด้วยเมาส์ของคุณ
รอให้ Pi เริ่มทำงานอีกครั้งและดูว่าใช้งานได้โดยแตะแท็ก NFC บนเครื่องอ่าน คุณควรได้รับเพลง
ขั้นตอนที่ 25: แสดงความยินดีกับตัวเอง
ตอนนี้ทุกอย่างใช้งานได้แล้ว คุณสามารถย้าย Raspberry Pi ไปที่ใดก็ได้ที่คุณวางแผนจะวาง มันจะรีสตาร์ทและทำงานในแบบที่คุณตั้งค่าไว้ทุกครั้งที่คุณเสียบปลั๊ก
งานต่อไปของคุณคืองานที่สนุก: ทำให้ทุกอย่างสวยงาม
ขั้นตอนที่ 26: ทำให้สวยงาม - ซ่อนผู้อ่านของคุณ
ส่วนแรกของการทำให้สวยงามคือการซ่อนตัวอ่าน NFC พลาสติกสีขาวที่น่ารังเกียจไว้ที่ไหนสักแห่ง
ฉันได้ใช้ตัวเลือกเทคโนโลยีต่ำอย่างแน่นอนในการติดเทปไว้ที่ด้านล่างของเคาน์เตอร์ถัดจาก Sonos Play ของฉัน:5 ไม้ของเคาน์เตอร์นั้นบางพอที่ NFC จะทะลุผ่านได้ ฉันจึงเล่นเพลงโดยแตะแท็ก NFC บนจุดที่มีมนต์ขลังและมองไม่เห็น
แนะนำ:
Retro CP/M Stand Alone Emulator: 8 ขั้นตอน
Retro CP/M Stand Alone Emulator: โปรเจ็กต์นี้ใช้โมดูล VGA32 ESP v1.4 เพื่อเรียกใช้ชุดค่าผสมหรือ RunCPM และ FabGL เพื่อให้คอมพิวเตอร์แบบสแตนด์อโลนที่ใช้ระบบเทียบเท่ากับ CP/M 2.2 เป็นที่นิยมในช่วงปี 1980 เป็นระบบปฏิบัติการสำหรับคอมพิวเตอร์ขนาดเล็ก สามารถกลับเข้า
Sonos Like Spotify Wifi Speaker: 9 ขั้นตอน (พร้อมรูปภาพ)
Sonos Like Spotify Wifi Speaker: ในโครงการนี้ เราจะสร้างลำโพง Wifi ที่มี Spotify Client ในตัว ซึ่งหมายความว่าคุณสามารถเลือกใน Spotify เพื่อเล่นบนลำโพงตัวนั้นได้อย่างง่ายดาย คุณไม่ต้องจัดการกับบลูทู ธ เส็งเคร็งเพราะมันใช้อีเธอร์เน็ต ของคุณ
อัลบั้มที่มีแท็ก NFC เพื่อเล่นเพลง Spotify บน Chromecast โดยอัตโนมัติ: 5 ขั้นตอน
อัลบั้มที่มีแท็ก NFC เพื่อเล่นเพลง Spotify บน Chromecast โดยอัตโนมัติ: โครงการนี้เริ่มต้นด้วยแนวคิดในการสร้างคอลลาจอัลบั้มของศิลปินที่เล่นบ่อยที่สุดบน Spotify หลังจากที่เล่น Spotify API ใน Python แล้ว ฉันคิดว่าน่าจะเชื่อมโยงปกอัลบั้มเหล่านี้กับ Spotify URI และเริ่มเล่น
Raspberry Pi Spotify Player พร้อมเคสพิมพ์ 3 มิติ: 4 ขั้นตอน (พร้อมรูปภาพ)
Raspberry Pi Spotify Player พร้อมเคสพิมพ์ 3 มิติ: ในคำแนะนำนี้ฉันจะแสดงให้คุณเห็นถึงวิธีการสร้างเครื่องเล่นเพลงจาก Raspberry Pi ที่สามารถเล่นเพลงท้องถิ่น สถานีวิทยุบนเว็บ และทำหน้าที่เป็นลำโพงเชื่อมต่อ spotify ทั้งหมดติดตั้งบนผนัง เคสพิมพ์ 3 มิติ ฉันสร้างเครื่องเล่นเพลงนี้สำหรับ
DIY Macbook Air Padded Vinyl Envelope Sleeve ราคาไม่ถึง $10.00: 9 ขั้นตอน
DIY Macbook Air Padded Vinyl Envelope Sleeve ในราคาไม่ถึง 10.00 ดอลลาร์: แม้ว่าคุณจะลดราคา MacBook Air จาก 1800 ดอลลาร์ เหลือ 3200 ดอลลาร์ แต่คุณอาจยังลังเลที่จะจ่าย 30-100 ดอลลาร์สำหรับซองนี้ ฉันตัดสินใจใช้วิธีการที่แท้จริงและพยายามใช้ซองขายปลีกแบบปกติเพื่อใส่ MacBook Air ของฉันอย่างปลอดภัยในขณะที่ยัง