Uzun süredir gerçekleştirmek istediğim bir Raspberry Pi projesi: BiipBox!
Vakit buldukça, internette bu proje ile ilgili argüman toplamaya çalışıyordum. Malesef anlaşılır ve tüm detayların yer aldığı bir makale yer almamakta. Hatta bu yazı da konuyla ilgili internetteki ilk Türkçe kaynak olacak. Eğer Raspberry Pi, Linux ve Python ile ilgiliyseniz, referans linklerini paylaşacağım farklı kaynaklardan da faydalanarak projeyi tamamlayabilir veya geliştirebilirsiniz.
Öncelikle bu mini proje için gerekli donanım ve yazılımları listeleyelim;
Donanım
125khz USB RFID kart okuyucu
125khz RFID kartlar
Raspberry pi (herhangi bir model)
4 GB SD kart
Hoparlör veya alternatif bir ses çıkış cihazı
Yazılım
Musixbox image
Spotify premium üyelik
Image ve WIFI yapılandırması
https://www.pimusicbox.com/ adresinden musicbox image’ını indirip etcher veya benzer bir program ile SD karta yazdırın. Eğer wifi bağlantısı kullanacaksanız image işlemi bittiğinde SD kart içerisindeki config klasöründe bulunan settings.ini dosyasını düzenlemeniz gerekiyor. Görselde belirtildiği gibi ilgili satırına wifi bilgilerinizi girip kaydetmelisiniz. Bu sayede boot işlemi ardından cihazınız wifi ağına otomatik olarak katılmış olacak.
USB RFID okuyucuyu Raspberry’nin usb girişine taktıktan sonra SD kartı da yerleştirip cihaza elektrik verebilirsiniz.
Boot işlemi ardından oturum açmanız için gereken default kullanıcı adı: root / parola: musicbox
Oturum açtıktan sonra #sudo raspi-config komutu ile yapılandırma arayüzünden root parolasını değiştirmeniz gerekiyor. Bu parola değişikliğini yapmadan SSH servisi enable edilemiyor. Eğer root parolasını değiştirip cihazı reboot ettiyseniz cihazın aldığı ip adresini kontrol etmek için #ifconfig komutunu kullanabilirsiniz. Karşınıza çıkan ip adresini tarayıcınıza yazarak musicbox web arayüzüne ulaşabilirsiniz.
SSH Enable
İşlemlere daha konforlu devam edebilmek için SETTINGS menüsü altında Network başlığına girerek Enable SSH seçeneğini “ON” duruma getirebilirsiniz.
Spotify bağlantısı
Web arayüzün SERVICES menüsü altında Spotify başlığına tıklayın. Alttaki resimde görüldüğü gibi Enable playing music from Spotify, Spotify Connect ve Spotify-Web seçeneklerini “On” duruma getirin.
Burada username, password ve Client ID, Client Secret ile oturum açma seçeneklerini görüyorsunuz. Client ID ve Secret kullanmak için buradaki mopidy linkine tıklayabilirsiniz. Mopidy üzerinden spotify oturum açma bilgilerinizi girdiğinizde size username ve parolarınızı encrypt ederek teslim ediyor. Siz de bu bilgileri Client ID ve Client Secret kutucuklarına girerek Spotify oturumunuzu musicbox üzerinde açabiliyorsunuz.
Spotify bağlantısından emin olmak için Search menüsünden herhangi bir şarkıcı veya şarkıyı aratabilirsiniz.
Scriptler
İhtiyacımız olan scriptleri buraya tıklayarak github’dan edinebilirsiniz.
İlk olarak scriptlerin bulunduğu dizin içerisine gelip “touch cardList.csv” komutunu çalıştırıp bir csv dosyası oluşturun. Eşleşen Kart ID’leri ve Spotify URI kodları CardList.csv dosyasında kayıt altında tutulacak. Dizinin içerisindeki dosyalar yukarıdaki gibi olacaktır. Sonrasında aynı dizinde bulunan “python config.py” komutunu çalıştırın. Sizden kullanmak istediğiniz card reader’i seçmenizi isteyecek. USB Card Readeri seçtikten sonra “python add_cards.py” komutunu çalıştırın. Komut çıktısı sizden herhangi bir kartı okutmanızı isteyecek.
Ekranda okuttuğunuz kartın ID numarası çıkacak ve karta tanımlamak istediğiniz şarkının spotify URI’sini yazmanızı isteyecek. Spotify’dan kopyaladığınız şarkının URI kodunu başında boşluk bırakmadan yapıştıracaksınız.
URI kodunu nasıl edinirim?
Spotify masaüstü uygulamasında herhangi bir şarkı veya albümün üzerine sağ tıklayıp paylaş menüsünde “Spotify URI’sini kopyala” seçeneğini göreceksiniz.
Kartlara Spotify URI tanımlamalarını bitirdiğinizde kontrol sağlamak için more cardList.csv komutunu çalıştırın. Eğer kart ID ve Spotify URI kodları doğru atanmış görünüyorsa son olarak “python box.py” komutunu çalıştırıp yapılandırmayı hazır hale getirebilirsiniz.
Şimdi kartınızı okutun!
SON OLARAK!
Malesef cihazı yeniden başlattığınızda tekrar oturum açıp “python box.py” komutunu çalıştırmanız gerekecek. Cihaz her yeniden açıldığında orada linux bilgisine sahip biri olmayabilir. Bu da çalışmayan bir biipbox demektir. Bunun için komutu /etc/rc.local dosyasının içerisine yazıp boot esnasında çalışıp hazır hale gelmesini sağlayabilirsiniz. Böylece otomatize ettiğiniz bu komutla biipbox tak çalıştır bir cihaz olacak.
Komutu bulunduğu dizini kapsayacak şekilde yazmalısınız. Ayrıca “&” işareti ile arka planda çalışmasını sağlayabilirsiniz.
Aşağıdaki linkten rc.local ve crontab yöntemleriyle startup script hazırlama konusunda detaylı bilgi alabilirsiniz.
Projeyle ilgili sorularınızı yorum kısmında paylaşabilirsiniz.
Görme engelliler için harika bir çözüm olabilir
bu bahsettiğiniz kodları nasıl yazabilriz
hangi kısımdan bahsettiğinizi tam olarak anlamadım. Rica etsem daha fazla detay verebilir misiniz?