SmartThings-IR-Bridge mit Arduino UNO & ThingShield selbst bauen
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino UNO | 1 |
| SmartThings ThingShield für Arduino | 1 |
| IR-Empfänger (z. B. TSOP38238) | 1 |
| IR-Sende-LED (940 nm) | 1 |
| Widerstand 100 Ω (optional, für IR-LED) | 1 |
Projektbeschreibung
Eine einfache TV-Fernbedienung wird mit der SmartThings-Cloud zum mächtigen Steuerwerkzeug. Mit minimalem Bauteilaufwand und sofortigem Nutzen eignet sich dieses Projekt hervorragend, um die SmartThings-Plattform kennenzulernen.
Hintergrund: Arduino & ThingShield
Der SmartThings ThingShield verbindet den Arduino UNO per Zigbee direkt mit dem SmartThings-Hub. Ein Schalter auf dem Shield wählt zwischen den Pin-Paaren (0/1 oder 2/3) für die serielle Kommunikation. Pin 6 wird vom Shield reserviert.
Mehr zu Arduino-Grundlagen: Arduino Guide
Schritt 1: Benötigte Teile
- 1× SmartThings Arduino ThingShield
- 1× Arduino Uno
- 1× IR-Empfänger
- 1× IR-Sende-LED
- 1× 100 Ω Widerstand (optional)
Schritt 2: IR-Bibliothek installieren
Das Projekt nutzt die ausgezeichnete Arduino-IRremote-Bibliothek von Ken Shirriff. Installation wie gewohnt über den Bibliotheksverwalter oder manuell.
Wichtig: In IRRemoteInt.h muss der Timer auf Pin 9 gelegt werden, da Pin 3 für die ThingShield-Kommunikation verwendet wird.
Schritt 3: Arduino-Sketch hochladen
Der vollständige Sketch befindet sich im Code-Bereich. Er initialisiert die IR-Empfangs- und Sende-Routinen, kommuniziert per SoftwareSerial mit dem ThingShield und sendet empfangene IR-Codes (NEC, Sony, RC5, RC6, RAW) als formatierte Strings an den SmartThings-Hub.
Schritt 4: Hardware-Aufbau
- ThingShield auf den Arduino stecken.
- IR-Empfänger: VCC → 5 V, GND → GND, OUT → Arduino Pin 11.
- IR-Sende-LED: Anode → Pin 9 (über 100 Ω optional), Kathode → GND.
Hinweis: Der 100 Ω Widerstand ist optional, da die LED nur kurz gepulst wird. Bei Dauerstrom würde sie ohne Vorwiderstand überhitzen.
Schritt 5: Eigenen SmartThings Device Type erstellen
- In der SmartThings IDE: „My Device Types“ → „New SmartDevice“.
- Name: Ir Bridge (wird später im SmartApp referenziert).
- Attribute und Commands definieren:
- Attribute:
recStatus,buttonAStatus,buttonBStatus,buttonAHex,buttonACode,buttonBHex,buttonBCode,lastButton - Commands:
record,buttonA,buttonB
- Attribute:
- Device-Definition (Groovy-Code) einfügen, speichern und veröffentlichen.
Schritt 6: ThingShield auf neuen Device Type umstellen
- ThingShield mit Hub koppeln: Shield auf Arduino, Strom an, „Switch“-Taste 6 s gedrückt halten, in SmartThings-App „Gerät hinzufügen“, nochmals Switch drücken.
- In der IDE unter „Devices“ das ThingShield auswählen, „Edit“, im Dropdown „Type“ den neuen Ir Bridge wählen, Update.
Schritt 7: SmartApp schreiben
- In der IDE: „My SmartApps“ → „New SmartApp“.
- Code einfügen (siehe Code-Bereich), speichern, veröffentlichen.
- Referenz auf Device Type:
input "irDevice", "device.IrBridge"(CamelCase ohne Leerzeichen).
Schritt 8: SmartApp aktivieren & Fernbedienung anlernen
- In der SmartThings-App: Neue SmartApp auswählen, IR-Device und gewünschte Schalter (Lampen, Steckdosen) zuordnen, „Installieren“.
- In der Geräte-Detailansicht (Zahnrad-Symbol) den großen „Record“-Button drücken → wird rot.
- Gewünschten Steuer-Button (Play/Pause oder B) antippen → wird gelb.
- Fernbedienung auf ThingShield richten, gewünschte Taste drücken. Code wird gelernt und dem Button zugewiesen.
- Button wird grün, Record-Button wieder weiß. Fertig.
Ab sofort schaltet der Druck der gelernten Fernbedienungstaste den zugeordneten SmartThings-Schalter um.
Code
Arduino Sketch (C/C++)
Enthält: IR-Empfang mit Dekodierung (NEC, Sony, RC5, RC6, RAW), Senden per IRsend, Kommunikation mit ThingShield über SoftwareSerial (Pins 2/3), LED-Statusanzeige auf Shield.
Device Definition (Groovy)
Definiert Tiles für Record-Status (rot/weiß), Button A & B (grau/gelb/grün), Parsing eingehender IR-Codes, Umschaltung in Lernmodus, Senden gespeicherter Codes via Zigbee.
SmartApp (Groovy)
Abonniert Events button.A und button.B des IR-Devices und toggelt die konfigurierten Schalter (switch1, switch2).
Weiterführende Links
- IRremote Library: GitHub
- SmartThings Developer Docs: developer.smartthings.com
Herstellungsprozess
- Roboter mit Raspberry Pi und Python bauen: Komplette Anleitung
- Selbstbalancierenden Segway mit Raspberry Pi bauen
- Daten im Internet of Reliability nutzen: Strategien für effektives Management
- Wassertropfen-Hochgeschwindigkeitsfotografie mit Arduino Nano – DIY Setup
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- Heimtemperatur weltweit überwachen: Arduino Cloud Integration mit TMP36
- Aufbau der Belegschaft von morgen: Wie intelligente Automatisierung Employee Experience verbessert