I’m finally taking the step of adding an online store to the SuperHouse site to make it easier to share parts for my projects. I often have people ask where they can buy boards I’ve designed for the projects in SuperHouse, so now I’ll be able to list them for sale.
I get the same comment over and over again about my home automation system: “Why didn’t you just put an ESP8266 in it and use WiFi? You’re living in the past! Wires make it so hard!”
Not so fast, my friend. This video explains why in many situations, wires beat wireless.
My home automation light switches have gone through a series of versions, starting with very complicated switches that all had Ethernet built in. Over time I’ve simplified the system so now the light switches themselves are electrically very simple: they’re just illuminated buttons on a breakout board with an RJ45 connector, and absolutely nothing else in them.
The switches connect to a pair of centralised light switch controllers over Cat-5 cable, so that it can detect when the buttons have been pressed and report events to MQTT.
In this episode I show some of the previous versions of my light switches, and then show how I built an Arduino based light switch controller.
Parts used in this project:
The source code for the sketch running on the controller is called “LightSwitchControllerMQTT”. You can find it on GitHub at github.com/SuperHouse/LightSwitchControllerMQTT.
There’s also a general introduction to the I/O breakout schema that I use at I/O Breakout. I’ll probably cover this in detail in a future episode because the same breakout shield will be used in other projects.
The light switches themselves are just illuminated buttons on a breakout board, mounted on a standard wall plate. The 4-button panel uses all 4 available data lines. The 3 and 2 button panels simply use fewer data lines. Click on the schematic for a larger version:
I didn’t spend much time in this episode explaining the current version of my light switches because I’m going to cover it in much more detail in the future. This episode is mostly about the controller.
Addendum: Chris Aitken has written a handy library to detect different button press events, such as single-press, double-press, and press-hold. This could be used to extend the functionality of the button controller significantly. Check it out: github.com/caitken-com/MultiFunctionButton
After years of using cheap lino cutting mats from the $2 shop, I’ve finally put proper ESD mat down on my electronics benches.
I wanted to use a nice blue mat, but Dave Jones (@eevblog) had a bad experience with discoloration so I decided to try plain grey instead. Hopefully this won’t end up going a strange green colour like Dave’s.
I got the mat from Oritech in Sydney. Their full range is listed here: