Gerade ist die Anleitung für die Junior Jukebox fertig geworden, und schon habe ich etwas weiter gebastelt und die verbesserte Version 2.0 gebaut.
Die beiden Jukeboxen unterscheiden sich in den Punkten:
und wieder mit STRG+O speichern und mit mit STRG+X beenden und die start.sh mit den Rechten von 755 versehen.
Die füllen wir nun mit folgenden Inhalt
import datetime
import os
import sys
import time
import RPi.GPIO as GPIO
while True:
GPIO.setmode (GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2,GPIO.OUT)
DAY, NIGHT = 1, 2
def check_time(time_to_check, on_time, off_time):
if on_time > off_time:
if time_to_check > on_time or time_to_check < off_time:
return NIGHT, True
elif on_time < off_time:
if time_to_check > on_time and time_to_check < off_time:
return DAY, True
elif time_to_check == on_time:
return None, True
return None, True
on_time = datetime.time(18,30)
off_time = datetime.time(07,00)
timenow = datetime.datetime.now().time()
current_time = datetime.datetime.now().time()
when, matching = check_time(current_time, on_time, off_time)
if matching:
if when == NIGHT:
print("Night")
GPIO.output(2,GPIO.LOW)
os.system ("mpc volume 98")
time.sleep (180)
os.system ("mpc volume 96")
time.sleep (180)
os.system ("mpc volume 94")
time.sleep (180)
os.system ("mpc volume 92")
time.sleep (180)
os.system ("mpc volume 90")
time.sleep (180)
os.system ("mpc volume 88")
time.sleep (180)
os.system ("mpc volume 86")
time.sleep (180)
os.system ("mpc volume 84")
time.sleep (180)
os.system ("mpc volume 82")
time.sleep (180)
os.system ("mpc volume 80")
time.sleep (180)
break
else:
print ("Day")
GPIO.output(2,GPIO.HIGH)
os.system ("mpc volume 100")
break
#break
Die beiden Jukeboxen unterscheiden sich in den Punkten:
- Display - nun mit Coveranzeige, statt Text
- Optimierung Read-Script - bei der alten Version lies sich das Script nach 100 Karten leider nicht mehr starten, weil es einfach zu lang wurde, deswegen werden nun die NFC-Tags beschrieben und das Problem somit gelöst
- Night-Modus - das ist ein Zusätzliches Script, dass die Beleuchtung der Buttons nach 18:30 automatisch ausschaltet und die Lautstärke allmählich auf 80% reduziert. Somit ist es nun auch ideal zum Einschlafen geeignet.
Und hier nun schon mal ein kleines Video wie das Radio nun aussieht.
Technische Sachen
Ganz klar, wir brauchen einen Raspberry Pi 3. Er bietet uns genügend GPIO-Pins um alles anzuschließen und hat gleichzeitig WLAN an Board um unsere Junior-Jukebox mit neuer Musik zu versorgen.
Der Pi Supply ist eine kleine Platine, die ich nicht mehr missen möchte. Dadurch ist es möglich den Raspberry per Knopfdruck ein- und wieder auszuschalten. So wie man es von jedem handelsüblichen Radio ja kennt.
Diesmal habe ich nicht das original Netzteil von Raspberry genommen, sondern ein leistungsstärkeres (Netzteil 3,1A). Denn es muss ja nicht nur der Raspberry versorgt werden, sondern auch die anderen Bauteile. Gerade die Buttons und die Lautsprecher brauchen viel Saft.
Das kurze USB Kabel, die USB Verlängerung und die Micro-USB Einbaubuchse sind später dafür da, damit man die Powerbank später laden kann, ohne den Koffer öffnen zu müssen. Alternativ kann so auch das Ladekabel direkt angeschlossen werden und somit wird der Akku geschont, wenn das Radio nur teilweise mobil sein soll.
Natürlich muss das Radio nicht mit einer Powerbank betrieben werden, aber somit ist es super mobil.
Empfehlen kann ich auch noch, dass du dir ein Dupont Set kaufst, denn so kann man die Stecker bequem als ein Bündel zusammenfassen bzw. auch mal defekte Stecker schnell neu crimpen ohne gleich das Kabel auszutauschen.
Gehäusebauteile
Alukoffer
Filz (weiß)
Filz (grün)
Sprühkleber
Anstelle des Alukoffer kann natürlich auch etwas selbst entworfen werden. Aber wir hatten den Koffer noch übrig. Er hat zwei Vorteile. Er ist leichter als eine vergleichbare Holzkiste und durch den Griff kann er wunderbar durch ein Kleinkind transportiert werden.
Einkaufsliste
Einige Dinge sind wie bei der ersten Version der Juke-Box, aber der Vollständigkeit halber führe ich sie mit auf.
Technische Sachen
Raspberry Pi 3
64GB Speichkarte
Netzteil 3,1A
Pi Supply
Mifare Reader
NFC Sticker
Jumper Kabel
Acrade Button (grün)
Arcade Button (rot)
Arcade Button (gelb)
Arcade Button (blau)
Logitech USB PC-Lautsprecher
kurzes USB Kabel
USB Verlängerung
Micro-USB Einbaubuchse
Powerbank
5" HDMI Display
64GB Speichkarte
Netzteil 3,1A
Pi Supply
Mifare Reader
NFC Sticker
Jumper Kabel
Acrade Button (grün)
Arcade Button (rot)
Arcade Button (gelb)
Arcade Button (blau)
Logitech USB PC-Lautsprecher
kurzes USB Kabel
USB Verlängerung
Micro-USB Einbaubuchse
Powerbank
Ganz klar, wir brauchen einen Raspberry Pi 3. Er bietet uns genügend GPIO-Pins um alles anzuschließen und hat gleichzeitig WLAN an Board um unsere Junior-Jukebox mit neuer Musik zu versorgen.
Der Pi Supply ist eine kleine Platine, die ich nicht mehr missen möchte. Dadurch ist es möglich den Raspberry per Knopfdruck ein- und wieder auszuschalten. So wie man es von jedem handelsüblichen Radio ja kennt.
Diesmal habe ich nicht das original Netzteil von Raspberry genommen, sondern ein leistungsstärkeres (Netzteil 3,1A). Denn es muss ja nicht nur der Raspberry versorgt werden, sondern auch die anderen Bauteile. Gerade die Buttons und die Lautsprecher brauchen viel Saft.
Das kurze USB Kabel, die USB Verlängerung und die Micro-USB Einbaubuchse sind später dafür da, damit man die Powerbank später laden kann, ohne den Koffer öffnen zu müssen. Alternativ kann so auch das Ladekabel direkt angeschlossen werden und somit wird der Akku geschont, wenn das Radio nur teilweise mobil sein soll.
Natürlich muss das Radio nicht mit einer Powerbank betrieben werden, aber somit ist es super mobil.
Empfehlen kann ich auch noch, dass du dir ein Dupont Set kaufst, denn so kann man die Stecker bequem als ein Bündel zusammenfassen bzw. auch mal defekte Stecker schnell neu crimpen ohne gleich das Kabel auszutauschen.
Gehäusebauteile
Alukoffer
Filz (weiß)
Filz (grün)
Sprühkleber
Anstelle des Alukoffer kann natürlich auch etwas selbst entworfen werden. Aber wir hatten den Koffer noch übrig. Er hat zwei Vorteile. Er ist leichter als eine vergleichbare Holzkiste und durch den Griff kann er wunderbar durch ein Kleinkind transportiert werden.
Wir haben uns auch für Grün-Weiß entschieden, da es am besten zu den Möbeln unseres Kindes passt.
Den Sprühkleber brauchst du, um den Filz auf dem Koffer zu bekommen.
All unsere Teile wurden geliefert, das Gehäuse ist nach unseren Wünschen gebaut.
Und nun heißt es die Teile alle schön einzubauen und zu Verkabeln.
Aber wohin nur mit all den bunten Kabeln?!
Keine Angst, ich habe mal einen kleinen Plan aufgestellt, der dank des HDMI Displays wesentlich abgespeckter aussieht als noch in der ersten Version.
Den Sprühkleber brauchst du, um den Filz auf dem Koffer zu bekommen.
Gehäusebau
Auf den Gehäusebau geh ich diesmal nicht ein, da er nicht wirklich anders ist als bei der ersten Version.
Verkabelung
All unsere Teile wurden geliefert, das Gehäuse ist nach unseren Wünschen gebaut.
Und nun heißt es die Teile alle schön einzubauen und zu Verkabeln.
Aber wohin nur mit all den bunten Kabeln?!
Keine Angst, ich habe mal einen kleinen Plan aufgestellt, der dank des HDMI Displays wesentlich abgespeckter aussieht als noch in der ersten Version.
Den Aufmerksamen unter uns ist jetzt sicherlich aufgefallen, dass der Pi-Supply und die On und Off-Buttons gar nicht in dem Plan vorkommen.
Um die kleine SD Karte mit Raspbian zu bespielen, brauchen wir Win32Disk Imager.
Das können wir uns bequem hier runterladen.
Das Programm mit den Standardeinstellungen installieren.
Nun brauchen wir natürlich auch noch das Raspbian.
Das laden wir uns hier runter.
Die im Lieferumfang enthaltende SD-Karte stecken wir in unserem PC und starten das Win32Disk Imager Programm, dass wir zuvor installiert haben,
Nun musst du auf den kleinen blauen Ordner klicken und zu dem Pfad navigieren, wo du das Image gespeichert hast. Wenn du in dem sich geöffneten Fenster dann auf "Öffnen" geklickt hast, sollte es nun so aussehen.
Als nächstes installieren wir unseren Mifare RC522 Reader. Dazu habe ich mal ein kurzes Video erstellt, in dem ihr sehen könnt, welche Befehle ihr wann eingeben musst.
Wem die Befehle zu schnell gingen, hier dann noch mal die Schritt für Schritt Anleitung mit vielen bunten Bildern. :)
Als erstes verbinden wir uns mit Putty über SSH.
Dort geben wir als erstes
sudo raspi-config
ein.
Und navigieren zu
Interfacing Options
Im nächsten Menü wählen wir dann
SPI
aus.
Bestätigen mit YES und wählen OK aus. Und schon sind wir wieder bei unserer Shell.
Ob die Aktivierung geklappt hat, können wir ganz einfach überprüfen.
Dazu öffnen wir die config.txt mit
sudo nano /boot/config.txt
und dort muss dann fast ganz unten
dtparam=spi=on
drin stehen. Wenn ein # davor steht, dann ist die Zeile auskommentiert. Dann einfach das # entfernen.
Mit STRG+O speichern und STRG+X die Datei schließen.
Ein nächster Test zeigt uns, ob der SPI nun wirklich funktionieren wird und wir alles richtig gemacht haben.
Dazu geben wir
lsmod | grep spi
ein und die Ausgabe sollte so ähnlich wie diese aussehen.
Um eine möglich einfache Bedienung zu haben, nutzen wir die Erweiterung von Louis Thiery & Connor Wolf.
Um auf unseren SPI Bus nun zugreifen zu können, laden wir uns erstmal deren Bibliotheken herunter.
Dafür einfach folgende Befehle eingeben und warten bis sie erfolgreich ausgeführt wurden.
sudo apt-get install git python-dev --yes
sudo apt-get install python2.7-dev
git clone https://github.com/lthiery/SPI-Py.git
Nun wechseln wir mit
cd SPI-Py
in unseren neuen Ordner und unsere Shell sieht nun so aus
Von dort starten wir nun die Installation mit
sudo python setup.py install
Wir verlassen den Ordner mit
cd ..
und laden uns die nächste notwendige Bibliothek mit
git clone https://github.com/mxgxw/MFRC522-python.git
herunter.
Nun wechseln wir wieder in unseren neu erstellten Ordner mit
cd MFRC522-python
und bearbeiten dort die MFRC522.py mit
sudo nano MFRC522.py
In Zeile 10 finden wir eine 22 in eine 11 geändert werden muss.
Und in Zeile 113 ändern wir wieder die 22 in eine 11.
Mit STRG+O speichern und mit STRG+X beenden
Nun starten wir den Raspberry Pi mit
sudo reboot
neu.
Die Installation des RFID/NFC Readers ist damit abgeschlossen.
Um zu Testen einfach wieder mit
cd MRFC522-python
in den Ordner wechseln und
sudo python Read.py
eingeben.
Nun könnt ihr eure Tags vorhalten und bekommt eine Ausgabe.
ein
Natürlich kannst du auch statt playliste.m3u irgendein anderen Namen geben.
die Playliste abspielen.
Sollte keine Musik abgespielt werden, müsst ihr die playliste.m3u überprüfen, ob sich ein Tippfehler eingeschlichen hat. Diesen dann korrigieren und wieder die Datenbank mit
starten wir das Script und halten das Tag davor. Nun wird uns eine ID angezeigt, diese merken wir uns. Das Schema der ID ist 123,456,789,123
um das Script zu beenden.
if uid == [123,456,789,123]:
os.system("mpc stop")
os.system("mpc clear")
os.system("mpc load playliste")
os.system("mpc play")
das if muss auf derselben Höhe stehen wie das else: in der vorletzten Zeile.
neustarten und schon könnt ihr das Tag vorhalten (sofern das Ready.py im Autostart ist) und die passenden Playliste wird abgespielt.
Sudo nano /boot/config.txt
mit STRG+O speichern und STRG+X schließen
Das liegt daran, dass ich bei Fritzing kein Bauteil gefunden habe, das ich dafür nehmen kann. Aber auf der Webseite von pi-Supply kann man sich die Anleitung für das Bauteil runterladen und zusammen löten.
Hier mal ein Bild wie der pi-supply dann fertig zusammengelötet im Radio aussieht.
Das schwarze Kabel was rechts vom pi-supply wegführt, sind die on-/off Schalter, die am Gehäuse befestigt sind. Dafür habe ich zusätzliche Kabel an der Unterseite der kleinen Buttons (die ja im Lieferumfang vom pi-supply sind) angelötet.
Raspbian installieren
Das können wir uns bequem hier runterladen.
Das Programm mit den Standardeinstellungen installieren.
Nun brauchen wir natürlich auch noch das Raspbian.
Das laden wir uns hier runter.
Die im Lieferumfang enthaltende SD-Karte stecken wir in unserem PC und starten das Win32Disk Imager Programm, dass wir zuvor installiert haben,
Nun musst du auf den kleinen blauen Ordner klicken und zu dem Pfad navigieren, wo du das Image gespeichert hast. Wenn du in dem sich geöffneten Fenster dann auf "Öffnen" geklickt hast, sollte es nun so aussehen.
Nun noch auf "Write" klicken.
Bei der Meldung nicht erschrecken. Die ist normal und warnt uns nur.
Also da klicken wir dann einfach auf "Yes" und schon wird die SD-Karte beschrieben.
Nach kurzer Wartezeit kommt dann die Meldung, dass der Schreibvorgang erfolgreich war.
SSH und WLAN aktivieren
Wir haben nun die SD Karte fertig bespielt.
Aber anstatt sie direkt in den Raspberry Pi zulegen, lassen wir sie im PC und gehen über den Explorer zu der SD Karte.
So nun kann die SD Karte in den Raspberry Pi gesteckt werden und sobald er mit Strom versorgt wird, startet er auch gleich.
Wenn wir nun alles richtig gemacht haben, können wir uns auch gleich mit Putty verbinden.
Der Benutzername ist pi und das Kennwort lautet raspberry.
Eine wichtige Einstellung ist, die SD zu erweitern. Wie das geht, zeige ich euch in dem Video.
Aber anstatt sie direkt in den Raspberry Pi zulegen, lassen wir sie im PC und gehen über den Explorer zu der SD Karte.
In dem Verzeichnis erstellen wir nun zwei Dateien. Die eine nennen wir "ssh" und die andere "wpa_supplicant.conf". Eine Dateiändung wie "txt" muss natürlich entfernt werden.
Wenn ihr das gemacht habt, dann sieht es bei euch genauso aus wie auf dem oberen Bild.
Die ssh-Datei erlaubt es uns nun, uns mit dem Raspberry Pi per SSH zu verbinden (seit Raspbian Jessi ist das nicht mehr per Default aktiv) und die zweite Datei ist für unsere WLAN-Einstellungen und muss nach folgendem Schema gefüllt werden.
Natürlich können wir auch ein Display anschließen und uns mit Maus und Tastatur durch das Menü hangeln, aber so geht es schneller. :)ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=DEnetwork={
ssid="euer WLAN Name"
psk="euer WLAN Passwort"
key_mgmt=WPA-PSK
}
So nun kann die SD Karte in den Raspberry Pi gesteckt werden und sobald er mit Strom versorgt wird, startet er auch gleich.
Wenn wir nun alles richtig gemacht haben, können wir uns auch gleich mit Putty verbinden.
Der Benutzername ist pi und das Kennwort lautet raspberry.
Eine wichtige Einstellung ist, die SD zu erweitern. Wie das geht, zeige ich euch in dem Video.
Dadurch haben wir nun die volle Kapazität der Speicherkarte. Wem das Video zu schnell ging noch einmal die Befehle zum Kopieren.
Nach dem Einloggen geben wir
sudo raspi-config
ein. Nun wird der Hintergrund blau und ein graues Menü wird sichtbar.
Dort navigieren wir zu
Advanced Options
Im nächsten Menü geht es dann zu
Expand Filesystem
Die Meldung bestätigen wir mit
OK
Und schließen das Menü mit
finish
Nun werden wir gefragt, ob wir neustarten möchten. Das bestätigen wir mit
Yes
Und nach dem der Raspberry Pi wieder gebootet ist, können wir nun Updates runterladen.
Auch dafür habe ich ein Video erstellt. Das Laden dauert eine Weile, deswegen ist das Video ist der 5-fachen Geschwindigkeit.
Folgende Befehle werden dafür der Reihe nach eingegeben.
sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo reboot
Nun haben wir sämtliche Updates geladen.
Installation Mifare RC522 Reader
Als nächstes installieren wir unseren Mifare RC522 Reader. Dazu habe ich mal ein kurzes Video erstellt, in dem ihr sehen könnt, welche Befehle ihr wann eingeben musst.
Als erstes verbinden wir uns mit Putty über SSH.
Dort geben wir als erstes
sudo raspi-config
ein.
Und navigieren zu
Interfacing Options
Im nächsten Menü wählen wir dann
SPI
aus.
Bestätigen mit YES und wählen OK aus. Und schon sind wir wieder bei unserer Shell.
Ob die Aktivierung geklappt hat, können wir ganz einfach überprüfen.
Dazu öffnen wir die config.txt mit
sudo nano /boot/config.txt
und dort muss dann fast ganz unten
dtparam=spi=on
drin stehen. Wenn ein # davor steht, dann ist die Zeile auskommentiert. Dann einfach das # entfernen.
Mit STRG+O speichern und STRG+X die Datei schließen.
Ein nächster Test zeigt uns, ob der SPI nun wirklich funktionieren wird und wir alles richtig gemacht haben.
Dazu geben wir
lsmod | grep spi
ein und die Ausgabe sollte so ähnlich wie diese aussehen.
Um eine möglich einfache Bedienung zu haben, nutzen wir die Erweiterung von Louis Thiery & Connor Wolf.
Um auf unseren SPI Bus nun zugreifen zu können, laden wir uns erstmal deren Bibliotheken herunter.
Dafür einfach folgende Befehle eingeben und warten bis sie erfolgreich ausgeführt wurden.
sudo apt-get install git python-dev --yes
sudo apt-get install python2.7-dev
git clone https://github.com/lthiery/SPI-Py.git
Nun wechseln wir mit
cd SPI-Py
in unseren neuen Ordner und unsere Shell sieht nun so aus
sudo python setup.py install
Wir verlassen den Ordner mit
cd ..
und laden uns die nächste notwendige Bibliothek mit
git clone https://github.com/mxgxw/MFRC522-python.git
herunter.
Nun wechseln wir wieder in unseren neu erstellten Ordner mit
cd MFRC522-python
und bearbeiten dort die MFRC522.py mit
sudo nano MFRC522.py
In Zeile 10 finden wir eine 22 in eine 11 geändert werden muss.
Und in Zeile 113 ändern wir wieder die 22 in eine 11.
Mit STRG+O speichern und mit STRG+X beenden
Nun starten wir den Raspberry Pi mit
sudo reboot
neu.
Die Installation des RFID/NFC Readers ist damit abgeschlossen.
Um zu Testen einfach wieder mit
cd MRFC522-python
in den Ordner wechseln und
sudo python Read.py
eingeben.
Nun könnt ihr eure Tags vorhalten und bekommt eine Ausgabe.
MPD installieren
Natürlich soll unsere Jukebox auch Musik abspielen können. Das machen wir mit MPD.
Wir ihr das bei dem Raspberry Pi macht, zeige ich euch in dem Video.
Wem die Befehle zu schnell waren, folgt jetzt wie gewohnt die bebilderte Schritt-für-Schritt-Anleitung.
Als erstes geben wir
sudo apt-get install mpd mpc alsa-utils
ein, um die benötigten Pakete zu installieren
Wem die Befehle zu schnell waren, folgt jetzt wie gewohnt die bebilderte Schritt-für-Schritt-Anleitung.
Als erstes geben wir
sudo apt-get install mpd mpc alsa-utils
ein, um die benötigten Pakete zu installieren
Nach kurzer Zeit wird eine Bestätigung von uns gefordert, da einfach
Y
für YES (Ja) eingeben
für YES (Ja) eingeben
und weiter gehts.
sudo modprobe snd_bcm2835
eingeben, um das Modul der Soundkarte zu laden
Da unsere Lautsprecher über den Klinkenschluss am Raspberry verbunden werden sollen, muss die Soundausgabe noch auf diesem mit den Befehl
sudo amixer cset numid=3 1
umgestellt werden.
mit sudo amixer cset numid= 3 2 (für HDMI-Ausgabe) und sudo amixer cset numid=3 0 (automatische Auswahl), kann die Einstellung auch verändert werden.
Wollen wir, dass unsere Lautstärkeinstellungen auch nach dem Neustart immer gleich sind, dann müssen wir folgenden Befehl eingeben
sudo alsactl store
Mit
sudo nano /etc/mpd.conf
die Konfigurationsdatei von mpd aufrufen.
Bei Bedarf die Pfade anpassen. Und mit STRG+O speichern und mit STRG+X schließen.
Wenn die Pfade für die Playlisten und der mp3 nicht geändert wurden, müssen natürlich noch die Berechtigungen gesetzt werden.
Dafür einfach
sudo chmod g+w /var/lib/mpd/music /var/lib/mpd/playlists/
sudo chgrp audio /var/lib/mpd/music /var/lib/mpd/playlists/
eingeben.
Nun noch den Dienst mit
sudo /etc/init.d/mpd restart
neustarten.
Und die Datenbank aktualisieren.
sudo mpc update
Playlisten den NFC-Tags zuordnen
Als erstes installiert ihr euch FileZilla und startet es.
Nun tragt ihr bei Server oben die IP-Adresse von euren Raspberry Pi ein, Username ist im Standard "Pi" und Kennwort "raspberry". Der Port ist 22 für SFTP.
Dann auf Verbinden und schon seht ihr sämtliche Ordner von eurem Raspberry Pi auf der rechten Seite und auf der linken Seite die Ordner von eurem PC.
Auf dem PC navigiert ihr zu eurer Musik und auf der rechten Seiten nach
/var/lib/mpd/Music
/var/lib/mpd/Music
Nun schiebt ihr einfach die Musik von links nach rechts.
Je nachdem wie viele MP3s ihr übertragen wollt, kann dieser Vorgang einige Minuten in Anspruch nehmen.
Währenddessen verbinden wir uns mit Putty um die Playliste zu erstellen.
Sobald du dich eingeloggt, hast gibst du
cd /var/lib/mpd/playlists/
ein
nun erstellen wir eine neue Playliste mit
sudo nano playliste.m3u
Natürlich kannst du auch statt playliste.m3u irgendein anderen Namen geben.
Nun füllst du die Datei nach folgendem Schema.
Ich habe in dem Ordner "music" einen Unterordner "Asterix" mit einem Unterordner "Folge 3_ Asterix als Gladiator" und in dem sind dann sieben mp3s.
Nun mit
STRG+O speichern und mit STRG+X beenden.
Nun gebt ihr in der Konsole folgende Befehle nach einander ein (sofern die mp3-Übertragung erfolgreich abgeschlossen wurde)
mpc stop
mpc clear
mpc update
Nun ist die Playliste und die mp3s dem Raspberry bekannt und wir können mit
mpc load playliste
mpc Play
die Playliste abspielen.
Sollte keine Musik abgespielt werden, müsst ihr die playliste.m3u überprüfen, ob sich ein Tippfehler eingeschlichen hat. Diesen dann korrigieren und wieder die Datenbank mit
mpc stop
mpc clear
mpc update
aktualisieren.
Um nun ein Tag dazu zu nutzen die Playliste abzuspielen, wechseln wir in den Ordner wo unsere Read.py liegt
cd ~
cd /MFRC522-python
Mit
sudo python Read.py
starten wir das Script und halten das Tag davor. Nun wird uns eine ID angezeigt, diese merken wir uns. Das Schema der ID ist 123,456,789,123
drücken
STRG+C
um das Script zu beenden.
nun öffnen wir die Read.py mit
sudo nano Read.py
und ergänzen es am Ende pro Playliste mit folgenen Zeilen
if uid == [123,456,789,123]:
os.system("mpc stop")
os.system("mpc clear")
os.system("mpc load playliste")
os.system("mpc play")
das if muss auf derselben Höhe stehen wie das else: in der vorletzten Zeile.
Nun noch den Raspberry Pi mit
sudo nano reboot
neustarten und schon könnt ihr das Tag vorhalten (sofern das Ready.py im Autostart ist) und die passenden Playliste wird abgespielt.
HDMI Display
Der anschluss des Displays sollte selbsterklärend sein, einfach mit dem HDMI Kabel das Display mit dem Rasperry Pi verbinden. Aber damit die Auflösung stimmt, müssen noch einige Sachen eingestellt werden. Dafür einfach:
eingeben und folgende Sachen eintragen
hdmi_drive=1
max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0
und mit
sudo reboot
den Raspberry Pi neustarten.
Buttons
Nun haben wir unser Radio schon fast fertig. Damit die Buttons nun eine Funktion bekommen, habe ich mir ein einfaches Python-Script geschrieben, was die notwendigen Aktionen ausführt.
Zu nächst geben wir wieder
Sudo nano Switches.py
ein und füllen es mit folgendem Inhalt.
if input_state == True:
Zu nächst geben wir wieder
Sudo nano Switches.py
ein und füllen es mit folgendem Inhalt.
#!/usr/bin/env python
import sys
import time
import RPi.GPIO as GPIO
import os
from subprocess import call
#PLAY_SWITCH = 12
#NEXT_Switch = 38
#Prev_Switch = 10
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(3,GPIO.OUT)
GPIO.setup(12, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(38, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(10, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
input_state = GPIO.input(12)
if input_state == True:
os.system("mpc toggle")
time.sleep(2)
if(GPIO.input(10)):
os.system("mpc next")
time.sleep(2)
if(GPIO.input(38)):
os.system("mpc prev")
time.sleep(2)
Mit
sudo python Button.py
können wir das Script starten und nun das Radio bedienen.
Mit
sudo python Button.py
können wir das Script starten und nun das Radio bedienen.
Cover auf Display anzeigen
Damit wir die Cover auf unserem Display sehen können, brauchen wir feh.
Das ist schnell mit
sudo apt-get install feh
installiert.
Dann wollen wir natürlich keinen störenden Mauszeiger sehen, also blenden wir uns den mit
sudo apt-get install unclutter
aus.
Den Bildschrimschoner wollen wir auch nicht haben, dafür einfach
sudo apt-get install xscreensaver
installieren und über die GUI deaktivieren.
Den Pi-Supply können wir einfach mit einem Befehl installieren
Powerknopf installieren
curl -sSL https://pisupp.ly/piswitchcode | sudo bash
nun können wir den Py-Supply anschließen und testen, ob wie ihn per Knopfdruck einschalten und ausschalten können.
nun können wir den Py-Supply anschließen und testen, ob wie ihn per Knopfdruck einschalten und ausschalten können.
Autostart einrichten
Damit wir nicht sämtliche Scripte immer manuell starten müssen, richten wir uns eine Autostart Datei ein.
sudo nano start.sh
diese Datei füllen wir mit folgenden Inhalt.
feh -F /home/pi/Pictures/Cover.jpg &
python /home/pi/MFRC522-python/Switches.py &
python /home/pi/MFRC522-python/MyRead.py &
python /home/pi/MFRC522-python/Night.py &
Mit STRG+O speichern und mit STRG+X schließen
nun noch folgende Befehle eingeben
mkdir ~/.config/autostart
touch ~/.config/autostart/start.desktop
und mit
nano ~/.config/autostart/start.desktop
touch ~/.config/autostart/start.desktop
und mit
nano ~/.config/autostart/start.desktop
eine neu Datei anlegen und mit folgenden Inhalt füllen
[Desktop Entry]
Name=Start
Type=Application
Exec=sh start.sh
und wieder mit STRG+O speichern und mit mit STRG+X beenden und die start.sh mit den Rechten von 755 versehen.
Nachtmodus einrichten
Den aufmerksamen ist nun aufgefallen, dass wir in der Autostart-Datei ein Script aufrufen, dass wir noch gar nicht erstellt haben. Und zwar das Night.py. Dieses Script sorgt dafür, dass die Beleuchtung der Buttons ausgeschaltet wird und die Lautstärke allmählich von 100% auf 80% reduziert wird.
Das machen wir nun.
cd MFRC522-python
sudo nano Night.pyDie füllen wir nun mit folgenden Inhalt
import datetime
import os
import sys
import time
import RPi.GPIO as GPIO
while True:
GPIO.setmode (GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(2,GPIO.OUT)
DAY, NIGHT = 1, 2
def check_time(time_to_check, on_time, off_time):
if on_time > off_time:
if time_to_check > on_time or time_to_check < off_time:
return NIGHT, True
elif on_time < off_time:
if time_to_check > on_time and time_to_check < off_time:
return DAY, True
elif time_to_check == on_time:
return None, True
return None, True
on_time = datetime.time(18,30)
off_time = datetime.time(07,00)
timenow = datetime.datetime.now().time()
current_time = datetime.datetime.now().time()
when, matching = check_time(current_time, on_time, off_time)
if matching:
if when == NIGHT:
print("Night")
GPIO.output(2,GPIO.LOW)
os.system ("mpc volume 98")
time.sleep (180)
os.system ("mpc volume 96")
time.sleep (180)
os.system ("mpc volume 94")
time.sleep (180)
os.system ("mpc volume 92")
time.sleep (180)
os.system ("mpc volume 90")
time.sleep (180)
os.system ("mpc volume 88")
time.sleep (180)
os.system ("mpc volume 86")
time.sleep (180)
os.system ("mpc volume 84")
time.sleep (180)
os.system ("mpc volume 82")
time.sleep (180)
os.system ("mpc volume 80")
time.sleep (180)
break
else:
print ("Day")
GPIO.output(2,GPIO.HIGH)
os.system ("mpc volume 100")
break
#break
Spannungswarung ausschalten
Wem der Blitz am oberen rechten Bildschirmrand stört, der kann ihn ganz einfach wie folgt ausschalten.
Erst einmal gehen wir in die config-Datei rein
sudo nano /boot/config.txt
Diese ergänzen wir mit folgenden Zeile
avoid_warnings=1
Wieder speichern wir mit SRTG+O und beenden mit STRG+X
Kommentare
Kommentar veröffentlichen