Arduino and KNX
Arduino is a hardware platform based on an Atmel processor which can be programmed via an IDE. It runs no operating system on it, just a very tiny bootloader which directly starts its own program. With a variety of I / O ports, which can be directly addressed, it is perfect as a sensor and control platform
Connection to KNX
Since I use KNX as my main bus system, I ask myself how to connect it. During my research I came across a knx bus connector from Siemens. A voltage of 5 V as well as a serial interface is provided via the pin header of the bus coupling unit. Thus no additional voltage supply is necessary.
Chosse the right arduino board
First you need to decide on a hardware version. For me the Arduino Pro Mini fits perfect. It is available in a energy-saving variant with 3.3V which consumes under full load just 4,47mA. This can be further optimized.
API to control the bus coupler
There are 2 community projects which offers an API to access the bus coupler from your Arduino program.
- Version 1 is my choice and it seams to be very small but enought.
- Version 2 is more complex and therefore probably more flexible but for my needs too much.
Component list
- Siemens bus coupler 5WG1117-2AB12
- Arduino Pro Mini 3.3V
- Stiftleiste
- Pin Header 6-polig
- Pin Header 5-polig
- Pin Header Kabel 10cm
Assembly
First, the pin connector on the front of the bus coupler is unsoldered and on the back a new 5-pin header is soldered . In addition, you must cut, with a sharp knife or scalpel, a small opening for the new pin strip.
Now you can connect the bus coupler with Arduino using the pin header cable and the following pins
Arduino | Bus coupler |
---|---|
GND | GND (PIN 1) |
RAW | 5V VCC (PIN 5) |
RX | TX (PIN 4) |
TX | RX (PIN 2) |
Connection of the 3.3V Arduino Pro Mini
or of the 5V Arduino Pro Mini Variant
and the final solution.
A careless mistakes at the beginning, which cost me 2 hours, was the wrong connection of the serial port between the bus coupler and Arduino.
**The pins RX and TX need to be crossed **.
Resume
Now you can send or receive KNX messages from your arduino program through the KNX bus. In this way, data measured by the Arduino can be sent periodically or, if the Arduino Board is programmed as a listener, messages can also be received and trigger switching operations.
In my case the Arduinoboard periodically sends sensor data which are received by openHAB with its KNX Binding.
All together is small enough to fit comfortably in a 40 mm flush-mounted box.
A first scenario are my different sensors. However, an infinite number of other possibilities are conceivable thanks to the flexibility of Arduino.