Arduino/Android Home Automation (updated 6/15/14)

This is a web remote control whole house automation project for Arduino which supports speaker zone and outlet control. Android and iPhone apps released!


This application relies on Arduino as the server which exposes URLs for getting status and changing state.


API for getting status and state is:[0-4]&state=[0-1][1-3]&channel=[A-D]&state=[0-1]

IP address will be the DHCP address assigned to the Arduino. In the PhoneGap app for Android and iPhone, this is configure via the settings screen.

The webserver library is Webduino 1.7, which will need to be placed in your Arduino libraries folder for the build.

Folder OutletWebControl is the Arduino Server.

Folder HTMLRemote is the PhoneGap project for Arduino/iPhone app. However, these apps are available for purchase on the respective marketplaces for purchase to simplify this part of the project.


  • The web server supports controlling Speaker zones controlled by a relay, and Outlets controlled by 315 MHz RF signaling.
  • The PhoneGap app supports toggling these and configuring options such as renaming zones, changing IP address, disabling unused features and zones, etc.

App Screenshot: App Screenshot

Arduino Wireless Speaker Selector

This feature supports controlling Speaker zones via an 8-relay chip connected to the Arduino server. The wiring for your existing speaker zones must be simply altered on the negative for each channel of a zone to pass through the relay.


See complete parts list and build instructions at my original blog post: Arduino/Android 4 Zone Speaker Selector.

Android/Arduino RF Outlets Selector

This feature supports controlling Outlet relays via RF. So, there is a 315MHz transmitter to the Arduino which controls the unmodified Outlet modules.


This simplest type of outlet relay does not provide mechanism to change the channel it is on -- there are 4 channels A-D, and each channel has 3 separate outlets, for a maximum possible of 12 individually controllable outlets. The app by default has all 12 enabled, those can be disabled in the settings screen.

See complete parts list and build instructions at my original blog post: Android/Arduino RF Outlets Selector.

The RC code was based heavily on the project RCSwitch, however the protocol used by these outlets was not in that library, and support for it has been added, and extra code not needed removed to minimize the memory footprint of the program.