IOT Hub - A Connected Home



Profile information

Jamie Dixon's profile picture

Skills Used

  • PHP & MySQL
  • CodeIgniter MVC Framework
  • jQuery & jQuery Mobile
  • NodeJS
  • C Language

Open Source Project (Github)

My source code for the IOT Hub project is now obtainable from Github. Feel free to modify and re-distribute with attribution.

Project Description

Internet of Things Hub is an API/web application combo primarily targeting mobile devices to assist in the automation of connected devices in the home.

The problem being - many manufacturers are marketing their own Internet of Things devices, these devices lack interoperability, are usually unaware of one another and the user interfaces used to control these 'things' are incompatible with one another so for example to change the temperature on your NEST thermostat and set a sleep timer on your Smart Television would at least require the use of 2 applications - the NEST application and the Smart TV application.

Indeed there are other 'devices' coming to market that overcomes this issue, such devices are Amazon's Echo and Apple's HomeKit features. After extensive research into these devices it is clear to see they do their job - and well, but they falter in some key areas which lead me to the decision that something needed to be built!

Firstly I will identify the aforementioned flaws with the Amazon Echo & Apple HomeKit.

Amazon Echo

The Echo is a portable Bluetooth speaker which uses voice commands to control Internet of Things devices (and a whole lot more - but the topic is IOT), the range of device support is huge and developers can develop their own 'skills' to add device support for the Amazon Echo which potentially makes device support limitless! It does however only operate using voice - so the scenario outlined earlier (Setting the Thermostat temperature and a TV timer) is achievable, but discretion is not! Possibly waking the rest of the household up.


Apple HomeKit

Apple's HomeKit devices can be controlled natively from within the HomeKit App pre-installed on iOS devices. However it does only support HomeKit approved devices thus dramatically limited device support. And as trend suggests accessories carrying the Apple logo also carry a price tag. On top of this, an iOS device must be present to carry out any actions on HomeKit enabled devices - the Apple TV box can be used as the 'hub' in this instance - but they are also costly.


The IOT Hub

The IOT Hub - it is an all-in-one solution to combat the need to install an app to control single devices within a home, built using popular technologies including PHP, MySQL, HTML & jQuery/jQuery Mobile with which device support can be built in a single PHP file and dropped into the 'drivers' directory!

The Hub's hardware requirements are

Currently supported devices include

  • TP-Link Smart Plugs
  • Belkin WeMo Smart Plugs/Lights
  • Sonos Music Player
  • Panasonic Smart TV
  • Custom Arduino Thermostat - I really wanted a way of using the application to control my heating from anywhere, while the other devices were inexpensive or already owned I did not want the expenditure of approximately £200 for a NEST thermostat - so as part of my project I wanted to code & setup a custom IOT 'smart' thermostat.

The custom thermostat built on the Arduino - whilst it is not smart like the NEST thermostat (which has habit learning algorithms) is designed to check temperature and respond to that temperature by operating a LED on the Arduino itself - the LED on/off state indicates the state of the boiler should it be connected to a relay on the Arduino.

The hardware behind the Hub is a Raspberry Pi 3, its low cost - £30 was the main reason for using the Raspberry Pi as the Hub as comparable boards which could have performed the Task (Such as the Intel Galilleo) is more than double this at around £72.

To see how I built support for devices visit my Building Device Support page

Final Project - Report