Änderungen

KY-005 Infrarot Transmitter Modul

1.094 Byte entfernt, 16:33, 27. Apr. 2016
/* Codebeispiel Raspberry Pi */
Zu diesem Zwecke werden die Module KY-005 als Infrarot-Transmitter und KY-022 als Infrarot Receiver angewendet.
 
'''Anschlussbelegung Raspberry Pi:'''
 
KY-005
 
{| style="height: 58px; padding-left: 30px;" width="228"
|-
||Signal
||=
||GPIO17
||[Pin 11]
|-
||GND+Widerstand
||=
||[Nur wenn Widerstand eingelötet; anstatt dritter Verbindung | GND]
||[Pin 9]
|-
||GND
||=
||Masse
||[Pin 6]
|}
 
KY-022
 
{| style="height: 58px; padding-left: 30px;" width="228"
|-
||Signal
||=
||GPI18
||[Pin 12]
|-
||+V
||=
||3,3V
||[Pin 17]
|-
||GND
||=
||Masse
||[Pin 25]
|}
 
===Lirc Installation===
===Befehle senden mit dem Infrarot Transmitter===
 
Möchte man mit dem Raspberry Pi nun Geräte wie z.B. den Fernseher per Infrarot steuern, so können nun die vorab angelernten Befehle mit Hilfe des Infrarot Transmitters wieder versendet werden. So lässt sich z.B. eine Software gesteuerte Infrarot-Steuerung aufbauen oder einzelne Geräte mittels Netzwerk/Internet ein und Ausschalten.
Zuerst überprüfen wir mit folgendem Befehl...
<pre class="brush:bash">irsend LIST MeineFernbedienung ""
</pre>
...welche Zuordnungen für die jeweilige gespeicherte Fernbedienung verfügbar sind.
Nun können wir z.B. den Befehl [KEY_0] versenden, in dem wir den folgenden Befehl verwenden:
<pre class="brush:bash">irsend SEND_ONCE MeineFernbedienung KEY_0
</pre>
Auf dem Fernseher bzw. dem entsprechenden Empfänger-Endgerät, sollte sich nun eine Reaktion zeigen. Zu dem o.g. Befehl gibt es auch die Variation, dass das Signal wiederholend ausgegeben wird
<pre class="brush:bash">irsend SEND_START MeineFernbedienung KEY_0
</pre>
# coding=utf-8 <pre class="brush:py"># Benoetigte Module werden importiert und eingerichtetimport globimport timefrom time import sleepimport RPi.GPIO as GPIO # An dieser Stelle kann die Pause zwischen den einzelnen Messungen eingestellt werdensleeptime = 1 # Der One-Wire EingangsPin Hier nach wird deklariert und der integrierte PullUp-Widerstand aktiviertGPIO.setmode(GPIO.BCM)GPIO.setup(4, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Nach Aktivierung des Pull-UP Widerstandes wird gewartet,# gesendete Code [KEY_0] so oft wiederholt bis die Kommunikation mit dem DS18B20 Sensor aufgebaut istprint 'Warte auf Initialisierung...' base_dir = '/sys/bus/w1/devices/'while True: try: device_folder = glob.glob(base_dir + '28*')[0] break except IndexError: sleep(0.5) continuedevice_file = device_folder + '/w1_slave'  # Funktion wird definiert, mit dem der aktuelle Messwert am Sensor ausgelesen werden kanndef TemperaturMessung(): f = open(device_file, 'r') lines = f.readlines() f.close() return lines
# Zur Initialisierung, wird der Sensor einmal "blind" ausgelesenTemperaturMessung() # Die Temperaturauswertung: Beim Raspberry Pi werden erkennte one-Wire Slaves im Ordner# /sys/bus/w1/devices/ einem eigenen Unterordner zugeordnet. In diesem Ordner befindet sich die Datei w1-slave# in dem Die Daten, die über dem One-Wire Bus gesendet wurden gespeichert.# In dieser Funktion werden diese Daten analysiert und die Temperatur herausgelesen und ausgegebendef TemperaturAuswertung(): lines <pre class= TemperaturMessung() while lines[0].strip()[-3:] != 'YES': time.sleep(0.2) lines = TemperaturMessung() equals_pos = lines[1].find('t=') if equals_pos != -1: temp_string = lines[1][equals_pos+2:] temp_c = float(temp_string) / 1000.0 return temp_c # Hauptprogrammschleife# Die gemessene Temperatur wird in die Konsole ausgegeben - zwischen den einzelnen Messungen# ist eine Pause, deren Länge mit der Variable "sleeptime" eingestellt werden kanntrybrush: while True: print '---------------------------------------' print bash"Temperatur:", TemperaturAuswertung(), "°C" time.sleep(sleeptime) except KeyboardInterrupt: GPIO.cleanup()>irsend SEND_STOP MeineFernbedienung KEY_0
</pre>
'''Anschlussbelegung Raspberry Pi:'''
{| style=...wieder beendet wird. Dies wird z.B. bei Befehlen wie "height: 58px; padding-left: 30px;Lautstärke Hoch" width=oder "228Helligkeit runter"|-||Signal||=||GPIO4||[Pin 7]|-||+V||=||3,3V||[Pin 1]|-||GND||=||Masse||[Pin 6]|}angewendet.
'''Beispielprogramm Download'''
Bürokrat, Administrator
611
Bearbeitungen