Änderungen

KY-005 Infrarot Transmitter Modul

2.600 Byte hinzugefügt, 09:34, 28. Apr. 2016
/* Codebeispiel Fernbedienung */
==Codebeispiel Arduino==
======Codebeispiel ON/OFF======
Diese Codebeispiel zeigt auf, wie eine LED mittels eines definierbaren Ausgangspins abwechselnd für Vier Sekunden ein- und danach zwei Sekunden ausgeschaltet werden kann.
'''[[Medium:LedTestArduino_4On_2Off.zip|LedTestArduino_4On_2Off.zip]]'''
 
----
======Codebeispiel Fernbedienung======
<br />Mithilfe der beiden Sensormodule KY-005 und KY-022 lässt sich ein Infrarot-Fernbedienung + Infrarot Receiver System aufbauen. Hierzu werden neben den zwei Modulen auch zwei einzelne Arduinos benötigt. Der eine fungiert hierbei dann als Sender und der andere empfängt die Signale und gibt diese dann in der seriellen Konsole aus.<br /><br />
'''Anschlussbelegung Arduino 1 [Empfänger]:'''
 
''KY-022''
{| style="height: 58px; padding-left: 30px;" width="228"
'''Anschlussbelegung Arduino 2 [Sender]:'''
KY-005 {| style="height: 70px67px; padding-left: 30px;" width="775462"
|-
||Signal
||GND+Widerstand
||=
||[Nur wenn Widerstand eingelötet; anstatt dritter Verbindung | Pin GND*]
|-
||GND
||[Pin GND]
|}
* *Nur wenn Vorwiderstand auf dem Modul verlötet wurde und nicht vor dem Modul geschaltet ist
==Codebeispiel Raspberry Pi==
Es sind zwei Anwendungsbeispiele für dieses Sensormodul hier vorgestellt. Eines, welches die Infrarot-Transmitter Diode kurz ein und wieder ausschaltet (emittierendes Licht nicht sichtbar - kann z.B. durch eine Handykamera gesehen werden), sowie ein direktes Anwendungsbeispiel für den Raspberry Pi, wo er als entweder Infrarot Receiver für Fernbedienungen zum Steuern von z.B. der Mediencenter-Software OpenElec oder als Infrarot-Transmitter zur Software-gesteuerten Fernbedienung programmiert werden kann.
 
===Codebeispiel ON/OFF===
Programmierbeispiel in der Programmiersprache Python
 
<pre class="brush:py"># Benoetigte Module werden importiert und eingerichtet
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
# Hier wird der Eingangs-Pin deklariert, an dem der Sensor angeschlossen ist. Zusaetzlich wird auch der PullUP Widerstand am Eingang aktiviert
LED_PIN = 24
GPIO.setup(LED_PIN, GPIO.OUT, initial= GPIO.LOW)
print "LED-Test [druecken Sie STRG+C, um den Test zu beenden]"
 
# Hauptprogrammschleife
try:
while True:
print("LED 4 Sekunden an")
GPIO.output(LED_PIN,GPIO.HIGH) #LED wird eingeschaltet
time.sleep(4) #Wartemodus fuer 4 Sekunden
print("LED 2 Sekunden aus")
GPIO.output(LED_PIN,GPIO.LOW) #LED wird ausgeschaltet
time.sleep(2) #Wartemodus fuer weitere zwei Sekunden, in denen die LED Dann ausgeschaltet ist
# Aufraeumarbeiten nachdem das Programm beendet wurde
except KeyboardInterrupt:
GPIO.cleanup()
 
 
</pre>
'''Anschlussbelegung Raspberry Pi:'''
 
{| style="height: 75px; padding-left: 30px;" width="263"
|-
||Sensor Signal
||=
||GPIO24
||[Pin 18]
|-
||GND+Widerstand
||=
||GND*
||[Pin 9]
|-
||Sensor GND
||=
||Masse
||[Pin 6]
|}
* *Nur wenn Vorwiderstand auf dem Modul verlötet wurde und nicht vor dem Modul geschaltet ist
 
'''Beispielprogramm Download'''
 
[[Medium:LedTest_RPi_4On_2Off.zip|LedTest_RPi_4On_2Off.zip]]
 
Zu starten mit dem Befehl:
 
<pre class="brush:bash">sudo python LedTest_RPi_4On_2Off.py
</pre>
 
----
===Codebeispiel Fernbedienung===
Der Raspberry Pi besitzt mit seiner fortschrittlichen Prozessorarchitektur den Vorteil gegenüber dem Arduino, dass dieser ein komplettes Linux-Betriebssystem betreiben kann. Mit Hilfe eines Infrarot-Receivers können somit nicht nur einfache Datensignale ausgetaucht, sondern es können auch komplette Software-Programme wie z.B. die Mediencenter Software OpenElec per Fernbedienung bedient werden.
Zu diesem Zwecke werden die Module KY-005 als Infrarot-Transmitter und KY-022 als Infrarot Receiver angewendet.
'''<br />Anschlussbelegung Raspberry Pi:'''
''KY-005''
{| style="height: 67px63px; padding-left: 30px;" width="690275"
|-
||Signal
||GND+Widerstand
||=
||[Nur wenn Widerstand eingelötet; anstatt dritter Verbindung | GND]*
||[Pin 9]
|-
||GND
||=
||MasseGND
||[Pin 6]
|}
* *Nur wenn Vorwiderstand auf dem Modul verlötet wurde und nicht vor dem Modul geschaltet ist
''<br />KY-022''
{| style="height: 58px; padding-left: 30px;" width="228"
||GND
||=
||MasseGND
||[Pin 25]
|}
----
===Lirc Installation===
Als erstes öffnen wir auf dem Desktop ein Terminal oder verbinden wir uns per SSH mit dem Raspberry Pi. Dort geben Sie den folgenden Befehl ein, um lirc auf den Raspberry Pi zu installieren:
''dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pull=up''
 
Hierbei definiert "gpio_in_pin=18" den Eingangspin für den IR-Receiver, sowie "gpio_out_pin=17" den Ausgangspin für den IR-Transmitter.
 
Die Datei kann mit folgenden Befehl editiert werden:
... zu verwenden. Hier müssen die die folgenden Zeilen modifiziert werden. An den entsprechenden Stellen muss dann ...
''dtoverlayDRIVER=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pull=up"UNCONFIGURED"'' '' --->>'' ''dtoverlayDRIVER=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pull=up"default"''---
''dtoverlayDEVICE=lirc""'' ''-rpi,gpio_in_pin-->>'' ''DEVICE=18,gpio_out_pin"/dev/lirc0"''  ''MODULES=17,gpio_in_pull=up""'' '' --->>'' ''dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pullMODULES=up"lirc_rpi"''
''dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pull=up'' --->>
''dtoverlay=lirc-rpi,gpio_in_pin=18,gpio_out_pin=17,gpio_in_pull=up''
...geändert werden.
Die modifizierte Datei muss dann wie folgt aussehen:
 
<pre class="brush:py"># /etc/lirc/hardware.conf
#
# Arguments which will be used when launching lircd
LIRCD_ARGS=""
 
#Don't start lircmd even if there seems to be a good config file
#START_LIRCMD=false
 
#Don't start irexec, even if a good config file seems to exist.
#START_IREXEC=false
 
#Try to load appropriate kernel modules
LOAD_MODULES=true
 
# Run "lircd --driver=help" for a list of supported drivers.
DRIVER="default"
# usually /dev/lirc0 is the correct setting for systems using udev
DEVICE="/dev/lirc0"
MODULES="lirc_rpi"
 
# Default configuration files for your hardware if any
LIRCD_CONF=""
LIRCMD_CONF=""
 
</pre>
Danach starten wir den Raspberry Pi mit dem folgenden Befehl neu:
<pre class="brush:bash">sudo reboot
</pre>
 
----
 
===IR-Receiver Test===
Um den angeschlossenen Receiver zu testen, muss vorab lirc mit dem Befehl...
</pre>
... kann der lirc-Dienst wieder gestartet werden.
 
----
===Fernbedienung anlernen===
Um eine Infrarot-Fernbedienung im lirc System zu registrieren, muss für die Fernbedienung die Datei "/etc/lirc/lircd.conf" konfiguriert werden. In dieser sind die jeweiligen Zuordnungen von Befehl zu empfangenen Infrarot-Codes gespeichert.
...die Zuordnungen und die Funktion der Fernbedienung getestet werden.
 
Will man die Fernbedienung nun z.B. in OpenElec verwenden, kann es je nach Konfiguration der Mediensoftware sein, dass lirc in den Optionen von OpenElec vorab noch aktiviert werden muss.
 
----
===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 indem wir den folgenden Befehl verwenden:
<pre class="brush:bash">irsend SEND_ONCE MeineFernbedienung KEY_0
...wieder beendet wird. Dies wird z.B. bei Befehlen wie "Lautstärke Hoch" oder "Helligkeit runter" angewendet.
 
'''Beispielprogramm Download'''
 
[[Medium:KY-001_RPi_TemperaturSensor.zip|KY-001_RPi_TemperaturSensor.zip]]
 
Zu starten mit dem Befehl:
 
<pre class="brush:bash">sudo python KY-001_RPi_TemperaturSensor.py
</pre>
Bürokrat, Administrator
611
Bearbeitungen