Arduino und KNX
Arduino ist eine Hardwareplattform auf Basis eines Atmel Prozessors welcher sehr einfach über eine IDE programmiert werden kann. Es läuft kein Betriebssystem auf der Hardware sondern nur ein sehr schmaler Bootloader welcher direkt das eigene Programm startet. Dank vielfältiger I/O Anschlüsse, welche direkt angesprochen werden können, eignet er sich perfekt als Sensor und Steuerungsplattform.
Anbindung an KNX
Da ich bei mir KNX einsetze, stellte sich mir die Frage wie man es verbindet. Bei meinen Recherchen bin ich auf einen KNX Busankoppler von Siemens gestossen. Über den Pfostenstecker des Busankopplers wird eine Spannung von 5V sowie eine Serielle Schnittstelle bereit gestellt. Somit ist keine zusätzliche Spannungsversorgung notwendig.
Auswahl des Arduino Boards
Als erstes muss man sich für eine Hardwareversion entscheiden. Bei mir kommt der Arduino Pro Mini zum Einsatz. Ihn gibt es in einer besonders stromsparenden Variante mit 3.3V welche unter Volllast gerade mal 4,47mA verbraucht. Durch gesonderte Maßnahmen kann dies weiter optimiert werden.
API zum ansteuern des Busankopplers
Weiterhin gibt es mittlerweile 2 Community Projekte welche eine API für Arduino und genau diesen Busankoppler bereit stellen.
- Variante 1 ist meine Wahl und macht auf mich einen etwas schlankeren Eindruck.
- Variante 2 ist etwas komplexer und damit wahrscheinlich auch flexibler aber für meine Bedürfnisse Zuviel.
Bauteilliste
- Busankoppler 5WG1117-2AB12 von Siemens
- Arduino Pro Mini 3.3V
- Stiftleiste
- Pin Header 6-polig
- Pin Header 5-polig
- Pin Header Kabel 10cm
Zusamenbau
Als erstes wird der Pfostenstecker auf der Vorderseite des Busankopplers ausgelötet und auf der Rückseite eine auf 5 Stifte gekürzte Stiftleiste angelötet. Zusätzlich muss mit einem scharfen Messer oder Skalpell auf der Gehäuserückseite eine Aussparung für die neue Stiftleiste ausgeschnitten werden.
Nun wird der Arduino mit dem Busankoppler mit Hilfe der Pin Header Kabel verbunden. Hierzu folgende Pins miteinander verbinden
Arduino | Busankoppler |
---|---|
GND | GND (PIN 1) |
RAW | 5V VCC (PIN 5) |
RX | TX (PIN 4) |
TX | RX (PIN 2) |
Anbindung des 3.3V Arduino Pro Mini
oder Alternativ die 5V Arduino Pro Mini Variante
und der fertige Aufbau.
Ein Flüchtigkeitsfehler, der mich 2 Stunden gekostet hat, war am Anfang der falsche Anschluss des seriellen Ports zwischen Busankoppler und Arduino.
Die Pins RX und TX müssen gekreuzt werden.
Schlusswort
Nun kann man mit Hilfe der API aus seinem Arduino Programm heraus KNX Nachrichten an den KNX Bus senden oder empfangen. Auf diese Art können vom Arduino gemessene Sensordaten periodisch gesendet werden oder, falls das Arduinoboard als Listener programmiert ist, auch Nachrichten empfangen werden und damit Schaltvorgänge auslösen.
In meinem Fall sendet das Arduinoboard periodisch Sensordaten welche von OpenHAB mit dem KNX Binding empfangen werden.
Dank der kompakten Bauweise passt alles bequem in eine 40mm Unterputzdose.
Ein erstes Anwendungsszenario sind verschiedene Sensoren. Allerdings sind dank der Flexibilität von Arduino unendlich viele weitere Möglichkeiten denkbar.