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 it was obvious to try to connect both. During my research I came across a bus coupler 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.
- Siemens bus coupler 5WG1117-2AB12
- Arduino Pro Mini 3.3V (get it on EBay)
- Pin strip
- Pin Header 6-polig
- Pin Header 5-polig
- Pin Header caple 10cm
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
|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 **.
Now you can send or receive KNX messages from your arduino program thru 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.