Arduino Controlled Spotify
โปรเจกต์นี้สร้างขึ้นเพื่อสาธิตการทำงานร่วมกันของ Arduino Uno กับภาษา Python โปรเจกต์นี้ควบคุมแอป Spotify โดยใช้เพียง 3 ปุ่มที่เชื่อมต่อเข้ากับ Arduino Uno Rev3 Arduino สื่อสารคำสั่งหลัก (เช่น pause, forward, และ back) ไปยัง Python script ผ่านทางพอร์ต COM3 และใช้ฟังก์ชันของ PyAutoGui ในการ pause/play track, เล่นเพลงก่อนหน้า, และเล่นเพลงถัดไป นอกจากนี้ยังมี 1602 LCD ที่เชื่อมต่อกับบอร์ด Arduino เพื่อแจ้งให้ผู้ใช้ทราบเกี่ยวกับคำสั่ง pause, forward, และ back รวมถึงเพลงที่กำลังเล่นอยู่ สำหรับข้อมูลโดยละเอียดของโปรเจกต์นี้ สามารถเข้าชม GitHub ของฉันที่ @akkik04 หรือคลิก ที่นี่ เพื่อไปยัง repository
คลิก ที่นี่ เพื่อดูวิดีโอโปรเจกต์ขณะกำลังทำงาน

เอกสารสำคัญ:
- PyAutoGUI's Documentation: ฉันใช้เอกสารนี้เพื่อทำความคุ้นเคยกับฟังก์ชันที่ PyAutoGUI module มีให้ PyAutoGUI module มีบทบาทสำคัญใน Python script ของฉัน เพราะหลังจากสัญญาณถูกส่งจาก Arduino ไปยัง Python script เราจะใช้ฟังก์ชันจาก PyAutoGUI module เพื่อทำงานร่วมกับแอป Spotify โดยอัตโนมัติตามประเภทของสัญญาณ หากต้องการดูเอกสารของ PyAutoGUI module คลิก PyAutoGUI documentation.
- pySerial's Documentation: ฉันใช้เอกสารนี้เพื่อหาวิธีเข้าถึง serial port pySerial module มีบทบาทสำคัญอย่างยิ่งใน Python script ของฉัน เพราะมันทำหน้าที่หลักในการรับสัญญาณจากปุ่มที่เชื่อมต่อกับ Arduino Uno สำหรับโปรเจกต์นี้ การสื่อสารทำผ่านพอร์ต COM3 หากต้องการดูเอกสารของ pySerial module คลิก pySerial documentation.
- SwSpotify's Documentation: ฉันใช้เอกสารนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับฟังก์ชันที่ SwSpotify module มีให้ module นี้เป็นส่วนเสริมสำหรับโปรเจกต์ของฉัน เพราะมันสามารถดึงชื่อเพลงและศิลปินของเพลงที่กำลังเล่นอยู่จากแอปพลิเคชัน Spotify โดยไม่ต้องใช้ API จริง หลังจากได้เพลงปัจจุบันจากฟังก์ชันของ module ข้อมูลจะถูกส่งไปยัง Arduino Uno ผ่านพอร์ต COM3 และแสดงผลออกทาง 1602 LCD หากต้องการดูเอกสารของ SwSpotify module คลิก SwSpotify documentation.
Arduino Script's Function: นี่คือส่วนหนึ่งของซอฟต์แวร์สำหรับโปรเจกต์ที่เขียนด้วย C++ ซอฟต์แวร์ส่วนนี้รับข้อมูลอินพุตที่สำคัญจากปุ่มที่เชื่อมต่อกับ Arduino Uno จากอินพุตที่ได้รับจากปุ่ม มันจะพิมพ์ keyword ลงบน serial monitor ซึ่งจะถูกสื่อสารไปยัง Python script ผ่านพอร์ต COM3 ตอนนี้ script ส่วนนี้สามารถรับชื่อเพลงจาก Python script และแสดงผลออกทาง 1602 LCD ได้แล้ว คลิก ที่นี่ เพื่อดู Arduino Script.
Python Script's Function: นี่คือส่วนหนึ่งของซอฟต์แวร์สำหรับโปรเจกต์ที่เขียนด้วย Python ซอฟต์แวร์ส่วนนี้รับสัญญาณ keyword ที่ส่งมาจาก Arduino/C++ script ผ่านพอร์ต COM3 และใช้ PyAutoGUI module เพื่อทำงานอัตโนมัติบนแอป Spotify (เช่น เล่นเพลงก่อนหน้า, หยุดเพลงชั่วคราว, เล่นเพลงถัดไป) ฉันได้อัปเดต script นี้เพื่อรวม module สำหรับการตรวจจับเพลงที่ชื่อ SwSpotify ตอนนี้ script สามารถส่งชื่อเพลงไปยัง Arduino ผ่านพอร์ต COM3 เพื่อแสดงผลออกทาง 1602 LCD ได้แล้ว คลิก ที่นี่ เพื่อดู Python Script.
การเชื่อมต่อ LCD:
- VSS pin ไปยัง GND หรือแถว '-' ของ breadboard.
- VDD pin ไปยัง 5V หรือแถว '+' ของ breadboard.
- V0 pin ไปยัง GND หรือแถว '-' ของ breadboard.
- RS pin ไปยัง Digital Pin #13.
- RW pin ไปยัง GND หรือแถว '-' ของ breadboard.
- E pin ไปยัง Digital Pin #8.
- D4 pin ไปยัง Digital Pin #9.
- D5 pin ไปยัง Digital Pin #10.
- D6 pin ไปยัง Digital Pin #11.
- D7 pin ไปยัง Digital Pin #12.
- A pin ไปยัง 5V หรือแถว '+' ของ breadboard.
- K pin ไปยัง GND หรือแถว '-' ของ breadboard.
การเชื่อมต่อทั่วไป:
- การเชื่อมต่อทั่วไปคือการเชื่อมต่อที่เรียบง่ายเข้ากับแถว '+' และ '-' ของ breadboard, การเชื่อมต่อปุ่มพร้อมตัวต้านทานที่ติดอยู่, และการเชื่อมต่อ Arduino หลักเข้ากับแล็ปท็อปของคุณ หากคุณต้องการทำความคุ้นเคยกับการเชื่อมต่อทั่วไปของบอร์ด Arduino Uno R3 ฉันแนะนำให้ดู Arduino tutorial นี้
รายละเอียดทางเทคนิคเพิ่มเติม
การเชื่อมต่อสื่อทางกายภาพเข้ากับ Cloud
โปรเจกต์นี้สร้าง "Remote Control" ทางกายภาพที่สามารถสัมผัสได้สำหรับ Spotify desktop application ซึ่งช่วยให้คุณควบคุมเพลงได้โดยไม่ต้องสัมผัสคอมพิวเตอร์ของคุณ
- PC-Side Web Server: Arduino (มักจะเป็น Leonardo หรือ Pro Micro) ทำหน้าที่เป็น USB HID keyboard โดยส่ง media keys (Play/Pause, Skip) โดยตรง หรืออีกทางเลือกหนึ่ง สำหรับวิธีการที่รวมเข้ากับเดสก์ท็อป มันจะส่งคำสั่ง Serial ไปยังแอป Node.js ที่กำหนดเองซึ่งทำงานอยู่บน PC
- Spotify Web API Bridge: แอป Node.js ใช้ Spotify API เพื่อสั่งการ "Track Skips" และ "Volume Changes" บนอุปกรณ์เล่นเพลงที่ใช้งานอยู่ของผู้ใช้
สัญญาณโต้ตอบ
- Now Playing Display: Arduino รับข้อมูลเพลงปัจจุบัน (Title/Artist) จาก PC และแสดงผลบน 128x64 I2C OLED ที่คมชัด เพื่อมอบแดชบอร์ด "Now Playing" ที่สวยงามบนเดสก์ท็อป