I am new to the Arduino platform, but I am an experienced professional software engineer with basic skills in electronics and microcontrollers. I am currently planning a new approach to home automation (I think) for my house. I have conventional cabling in my house plus ethernet (Cat 5e) cable running from wall outlet to wall outlet. So, there is no dedicated place for a single home automation central, and i need a decentralized concept. I built the house 10 years ago and I did all electrical installations myself.
My first thought was a network of Arduino Micros, connected by 1-Wire or I2C busses. On second thought, I preferred a CanBus network, which is much more capable and much more robust. To support it on the Arduino platform, I would either need a CanBus shield or an Arduino Due with only transceivers. The CanBus library is currently under development. But those Dues are way to large for outlet sockets.
So I developed a third, mixed strategy: Every room gets a large „head“ controller and small headless peripherals. The head will be an Arduino Due with Touch-LCD (or a cheap Android device), while the peripherals can be Micros or just external Buttons. The controllers will be networked with each other using CanBus. Each controller has one or more peripherals, connected using I2C.
I will make larger holes into the walls for the controllers, which I expect to have a „connection shield“ (CanBus, I2C, Buttons) and the TFT shield with the TFT on top (3.2“ TFT by SaintSmart). But the peripherals should go into standard outlet sockets. I will design a printed circuit board with two buttons, a status LED and a photo resistor on top, and a socket for the Arduino Micro plus connectors for I2C, buttons and relay boards below. This PCB will cover one outlet socket. The bus cable will contain CanBus, I2C and power supplies. The connecter will be an RJ-45. Maybe every controller should have its own power supply to avoid introducing a single point of failure?
I have played with a Micro and a starter kit and I got pretty far just within 2 hours, so I am pretty optimistic I can write all the software I need. I will try to use just one software for all modules with #ifdefs for the additional Due parts (CanBus, IR-Remote, TFT). This way I won’t have to mess with different software variants.
The hardware variants for controlling lights, window blinds or external buttons will all share the same PCB, just configured differently. All lights we be dimmable using the famous Velleman K8064 dimmer kit, the window blinds will be controlled by the very fine SaintSmart relay boards (mostly the SSR ones), so I can exchange them later on.
Mechanical problems will be solved using custom 3D-prints: Boxes and casings for the different modules as well as a switch mechanic pressing the buttons and using the original switch covers of my existing installation. Since all of these 3D-printed parts are invisible, a cheap printer will do, so I might get one myself. The only visible part would be the frames around the TFTs. I consider this not important.
Finally, a central home server will be added to bring it all into my intranet. This will be a RaspberryPi, a BeagleBoneBlack or the Arduino Tre (once that becomes available). It will run headless in the „engine room“ and it will need CanBus connectivity, as well.
I just ordered a Due with TFT and TFT shield to get familiar with it, to experiment with TFT programming and I2C communication over several meters to my Micro. Once this works, I will order a couple more. and try to get that running, as well. Then I will design, order and assemble the PCB. If this also works I will construct and print the 3D-Parts. And after that everything will be ready to install. I probably will iterate theses steps room- or floorwise.
BoM: - Basement: 2 controllers, 2 light peripherals, 4 external buttons - Ground floor: 1-4 controllers, 6 window blinds peripherals, 4 light peripherals, 8 external buttons - 1st floor: 4 controllers, 5 window blinds peripherals, 2 light peripherals, 5 external buttons - 1 home server
This means - 36 identical boards (custom PCB), each with 2 buttons, pressed by a 3D-printed mechanic - 10 Arduino Due with LCD and probably another custom PCB (connection shield) - 19 Arduino Micro
So, what do you guys say, is this realistic? Is there a chance it will finally work? Or are there major flaws in my big plan? Because to me this all seems almost too easy! 8)
Best regards, KussBus