Creation of a secure, device-independent web interface with an Arduino bridge for control, monitoring and automation of home devices such as lights, central heating, doors etc.

Home Automation

Home Automation

The system currently consists of half a dozen remote power switches with lamps attached to each. The remote control for the switches has been hacked apart and the buttons replaced with transistors to allow them to be connected via an Arduino to a web server. The server provides a simple web page displaying a few buttons, and some JavaScript running in the background to send off requests to the server whenever a button is pressed. The JavaScript also polls the server to check if any anything else has changed the state of the switches.


Pressing a button will turn the corresponding lamp, or group of lamps on or off in my house. This occurs via an Arduino to which a remote power switch controller (only slightly hacked) has been attached.

The buttons will only update when the web server has received confirmation from the Arduino that a switching signal has been sent, so they may take a while to update.

Please don't turn my lights on and off while I'm sleeping ;)

Try live demo

New post

Automatic raspberries

Posted over 4 years ago by Ed Bassett

My home automation system has been working fairly well for a while now, though not without the occasional light obstinately refusing to turn off despite repeated requests for it to do so. This (I hope) is not so much an issue of any particular affinity for perverseness on the part of my lights but rather a weak radio signal coming from the transmitter I butchered whilst creating the system.

In its current state, this project also suffers from some other not entirely insignificant inconveniences. Firstly, while it's quite nice to be able to turn lights on and off remotely, there are times when it would be much nicer to simply flick a switch. One of the next phases of this project will be to investigate using some cheap 433mhz transceivers as the basis of a physical interface to the system.

There's also a small issue whereby my modem/router won't allow for connections to my external IP from within my local network. A very simple solution to this is to buy a new modem, though that feels too much like giving up to be truly viable. The current, not particularly elegant workaround is to run a local DNS so at least my phone would be directed to my server's internal IP whenever I'm home and connected to wifi. There's always a minute or two's delay while it sorts itself out after connecting to wifi and that's usually the very same minute or two I'd ordinarily like to spend turning on lights so I don't walk into things as I enter my house.

What I'd like to do, now that my web server is happy floating around in the cloud somewhere, is to have a low power server – in all likelihood a Raspberry Pi – as the bridge between the web frontend and the electronics that will drive the various components of the automation system. This not only provides an excellent excuse to play with my RasPi, but will also be quite energy efficient, and importantly means that the interface to which my phone connects will always be accessible via the same IP/domain name.

Have your say

Leave a comment --->

New comment