Hey Leute,
Zum Anfang möchte ich etwas über mich selbst sagen. Ich habe dieses Projekt zusammen mit meinem Vater und einem Freund durchgeführt, wobei sie mir einerseits bei der handwerklichen und softwaretechnischen Seite geholfen haben.
Meine Programmierkenntnisse in Python sind etwas beschränkt, weswegen ihr kein komplettes Tutorial, vor allem auf Seiten der Software erwarten dürft. Doch ich bin lernwillig und würde mich sehr über Tipps und Ratschläge freuen :thumbs1:
Ich wurde durch dieses Video inspiriert ein Kippschalterpanel/ Schreibtischaufsatz (wie auch immer ihr es nennen wollt ;)) zu bauen.
Es ist noch nicht zu 100% fertig, aber ich möchte euch schon einmal ein paar Einblicke in das Projekt geben (Dropbox-Link mit Bildern am Ende des Tutorials).
Was wird für das Möbelstück benötigt:
- Buchenholz (passte in meinem Fall schon zum selbstgebauten Schreibtisch)
- Holzdübel + Leim
- Aluminiumblech
- Kippschalter
- (Einbau)-Steckdosen
- USB-Einbau-Hub
- 3,5 mm LEDs
- Platine
Das macht das Möbelstück funktionstüchtig:
- Rasberry Pi mit entsprechender Software
- Funksender 433 Mhz
- Funksteckdosen-Set
- Python Script
- Korrekte Verkabelung/Verdrahtung/Verlötung mit den GPIOs am Pi und der Platine
Zu was ist dieses „Kippschalterpanel“ überhaupt in der Lage?
Mein Ziel war es durch diese Kippschalter mir „das Leben“ am Schreibtisch ein bisschen zu erleichtern. Mit den Kippschaltern sollen sich verschiedene Lampen im Zimmer an- und ausschalten lassen und mit der Zeit noch andere Geräte. Hier bin ich sehr offen für Ideen
Das ganze hört sich vielleicht ein bisschen nach Faulheit an, nicht mehr von seinem Stuhl aufstehen zu wollen um das Licht anzumachen, doch ich fand die Idee einfach genial, alles von einem „Kontrollcenter“ direkt am Schreibtisch steuern zu können. Zudem versteckt das Möbelstück den Kabelsalat und bietet sich noch dazu als nützlicher Stauraum an.
Extras:
- (Einbau)-Steckdosen
- USB-Einbau-Hub
Das sollte ursprünglich noch rein:
- Display (Hitachi HD44780)
Dieses Display sollte ursprünglich verschiedene Informationen anzeigen lassen, doch es fand einerseits wegen seiner nicht immer stabilen Blickwinkel und des mangelnden Platzes im Möbelstück keine Verwendung
Diese Extras waren nicht zwingend notwendig bei meiner Idee, doch ich sah es als sehr hilfreich an, den USB-Stick einfach in die USB-Dose am Schreibtisch zu stecken, statt unter den Tisch an den PC.
Die Steckdose kann man auch immer gebrauchen, sei es auch nur zum Laden seines Smartphones.
Funktionsbelegung der Schalter (das können sie schon: GRÜN | soll noch folgen/ mögliche Belegungen: ROT):
- Lampen/Licht schalten
- PC An/Aus (Noch zu verbessern)
- LED Streifen steuern
Funktionsweise (Beispiel an einem Schalter der das Licht steuert):
Zu Beginn: Ich unterscheide zwischen:
Stellung 1 (S1): Schalter AN
Stellung 2 (S0): Schalter AUS
Wenn ein Kippschalter umgelegt wird (S1) dann soll das Licht angehen. Um den Status des Schalters auch in Dunkelheit zu erkennen, zeigt diesen die rote LED über dem Schalter an. Wenn S1, dann leuchtet sie rot, sonst (bei S0) nicht.
Der Schalter ist nun umgelegt und ein ständig auf dem Pi laufendes Skript liest den Zustand des Schalters, der an einem GPIO Pin und an den Ground angeschlossen ist, aus.
Wenn die Stellung nun S1 ist, dann sendet das Skript automatisch den Funksteckdosenbefehl für die gewünschte Steckdose und das Licht geht an. Umgekehrt passiert das gleiche wenn die Stellung wieder auf S0 geht, wobei dann die Lampe ausgeschaltet wird.
Hier schon mal das Skript, in welches neben den Befehlen für Lichtersteuerung auch schon ein Befehl integriert ist, der den PC über Wake On Lan startet:
import os
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
#Pin Eingaenge deklarieren
GPIO.setup(26, GPIO.IN)
GPIO.setup(24, GPIO.IN)
GPIO.setup(22, GPIO.IN)
GPIO.setup(18, GPIO.IN)
GPIO.setup(16, GPIO.IN)
#Variablen deklaration
var1 = ""
var2 = ""
var3 = ""
var4 = ""
var5 = ""
while True:
time.sleep(0.1)
#Schalter 1 (Stehlampe) wird gesteuert
if ( GPIO.input(26) == True ):
if not var1 == "aus":
var1 = "aus"
print "Befehl AUS (Nr 1)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 2 0 ")
else:
if not var1 == "an":
print "Befehl AN (Nr 1)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 2 1 ")
var1 = "an"
#Schalter 2 (Leselampe)
if ( GPIO.input(24) == True ):
if not var2 == "aus":
var2 = "aus"
print "Befehl AUS (Nr 2)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 3 0 ")
else:
if not var2 == "an":
print "Befehl AN (Nr 2)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 3 1 ")
var2 = "an"
#Schalter 3 (WOL PC)
if ( GPIO.input(22) == True ):
if not var3 == "aus":
var3 = "aus"
print "Befehl Shutdown(Nr 3)"
os.popen("sudo echo \"0\" > /var/www/desk/pc.txt")
else:
if not var3 == "an":
print "Befehl Start (Nr 3)"
os.popen("sudo python /home/pi/desk/pc_start.py")
var3 = "an"
os.popen("sudo echo \"1\" > /var/www/desk/pc.txt")
#Schalter 4 (Schreibtischlampe)
if ( GPIO.input(18) == True ):
if not var4 == "aus":
var4 = "aus"
print "Befehl AUS (Nr 4)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 1 0 ")
else:
if not var4 == "an":
print "Befehl AN (Nr 4)"
os.popen("sudo /home/pi/rcswitch-pi/./send 10001 1 1 ")
var4 = "an"
Alles anzeigen
Dropbox-Link:
https://www.dropbox.com/sh/d7rs47a0a30…6oH6UNebn1ZJSTa