Switchit

This started 6 years ago

I didn’t enjoy coming home to a dark house. There’s something welcoming coming home to a lit house even if no one else is home and SwitchIt is my solution to automatically controlling lights and appliances to improve my experience at home. It started with lights and evolved to other applicants like the the kettle and Christmas tree. It can also change the colour of the light in the kitchen and I’m working on an interface for the air conditioner and audio amplifier.

Check out the video of Switchit in action.

Ethernet Arduino interface and 433MHz transmitter Ethernet Arduino interface and 433MHz transmitter

Sometimes I actually finish things

I always have a few projects on the go but most lose my interest before becoming a worthy reality. The SwitchIt project managed to keep me hooked for months and evolved into a system which operates a variety of appliances at home using an iPhone app. The messages communicated between the app and devices are delivered through a server hosted on the Internet. This means devices can be controlled from anywhere in the world *where that part of the world is connected to the Internet ;). I made an effort to keep control messages small given the distance they must travel, and I’m really happy with the speed at which a device responds to commands.

The components which make up one of the device controller. This one is for a Christmas tree. The components which make up one of the device controller. This one is for a Christmas tree.

Lets get into details

Okay, you’re still reading :-) Here are some more details - There are a few hi-level components which make up the solution.

Component Detail
A cloud service The cloud service bridges the connection between the mobile app and the devices in a home, and orchestrates commands between these devices. I initially wrote the cloud service using NodeJs, however, it has evolved to a Springboot application written in Java and Kotlin.
The mobile app The app issues commands to devices in the home via the cloud service. It can be used anywhere an Internet connection is available. So I can turn the lights during my trip home, for example.
Arduino transmitter The transmitters plays the role of a hub and receiver’s instructions over an IP connection from the cloud service, and relays these instructions to end-point devices over a 433MHz radio connection.
Receiver Receiver devices listen for instructions on the 433MHz frequency and drive physical devices. For example, relays are used to turn simple 220v devices on and off, and an array of Darlington transistors is used to drive RGB LEDs.

The components assembled into a device controller The components assembled into a device controller

The components include an AtMega micro-controller, relay, a status LED, and a 433MHz receiver. The simpler on/off devices contain a relay while the RGB lights exchange the relay for an array of Darlington transistors which drive RGB LEDs.

The next photo is of the inside of my Christmas tree, into which I’ve cable-tied a controller.

A controller built into the base of my Christmas tree A controller built into the base of my Christmas tree

Devices need to receive commands from a 433MHz transmitter, which in turn is connected to an Internet service through my local ethernet network. To accomplish this I’ve built a 433MHz transmitter onto an Arduino board and ethernet shield.