Michał Jonik
2009-10-15 · archive

Mobile platforms

Archived post from 2009, recovered from my old blog. The technology described here is probably out of date. Original at the Internet Archive.

One of the coolest ideas related to an intelligent home is an ability to control the house using a mobile phone. Nowadays everyone has its own phone and actually many peoples keep them always in their pockets even at home. So it would be great to have at least the most commonly used functionality implemented as a mobile application.
Recently released mobile phones are actually a mobile computers ready to run even sophisticated applications. There are several main mobile platforms including Symbian, Windows Mobile, Android, iPhone OS. Last two especially brought my attention.

iPhone
It has been very loudly about iPhone OS last months and it is many people consider it as the coolest phone available today. I agree that many interesting ideas has been implemented in it gained huge popularity BUT there are things I don’t like:

  • it is a proprietary, closed technology
  • I don’t know Objective C which is a main programming language used to develop iPhone applications
  • you need Mac to write applications for iPhone

Android
From the other hand Android is a new promising platform which has been already accepted by many mobile phone vendors. There are many features that makes it an excellent platform for developing an application to control intelligent home:

  • it is open
  • it is based on Linux
  • development environment is based on eclipse and it runs on multiple platforms
  • Java is the main programming language for android applications
  • build in GPS
  • build in sensors: light, compass, accelerometer

The idea is to create a mobile application that would run in background to be easily accessible at any moment. Here are some ideas regarding the functionality:

  • controlling basic functions (switching devices on and off)
  • monitoring state of the devices
  • act as a remote control for tv set (change channels, volume)
  • more sophisticated media functions (browse and play music, movies, and watch photos)
  • control heating, alarms
  • track other inhabitants

The application should be easy to use. The most commonly used functions should be easy accessible with as few clicks as possible. For example a user could first select a context and then select a function or device. A context groups some functions and devices. A context can be related to a location (room, bathroom, outdoor, garage, etc.) or type (light, heating, alarm).

One of the most sophisticated idea is to select a device to control by aiming it with a phone. A location and direction could be determined based on GPS and accelerometer sensors. So for example to switch on the light you could aim the light with the phone and press “switch on” button on the screen. However it may not be feasible because of not enough accuracy of GPS, especially indoor.