My new home automation project – KitchenTouch

Posted in DIY Projects,Home Automation,Software by Ruslan Ulanov on the August 6th, 2010

It has been a little quiet in my blog lately. But it’s not because I was lazy (well, maybe just a little).

I’ve been busy celebrating many many birthdays in July (including my own) and also I spent a lot of my time learning new technologies (namely HTML5, CSS3 and C# languages) and coding my own home automation project called KitchenTouch.

That last thing is what I want to tell you about.

Origins

Here’s a bit of a history for this project.

KitchenTouch originally started as part of an anniversary gift for my wife, when I decided to install a tiny Win7 Home Premium HTPC for her entertainment in the kitchen. For the curious ones the HTPC is the Acer AspireRevo 3610 with dual-core Intel Atom, Nvidia ION graphics and 2Gb of RAM. If you want more details on the Revo system check this very good site called RevoHTPC by James “Motz” Montemagno.

I started thinking of how to customize that system and make it easier for my wife to use. Taking into account the kitchen environment and possible usage patterns, I realized that keyboard and mouse were impractical controls while cooking. Therefore I decided to look into touch options. I acquired a touch-screen monitor for that system and started looking into available user interfaces. Alas, all products I could find were either too sophisticated (complex and difficult to use) or didn’t provide the features I was looking for. So, naturally I decided to write my own. :)

I had limited time on my hands (around 2 weeks before the event), but I really wanted to learn a new programming language – C#. I set off to quickly learn C# while doing something useful. Thus, KitchenTouch was born! I really didn’t have the time to plan the project through properly, but I had a general idea of what I want to achieve. Some features were written and re-written several times, layout was constantly changing as I was testing the program’s usability. And I expect it to change in the future as I go ahead with new features.

Objectives

  • Create a simple, touch-friendly user interface where most of the tasks could be completed in 2-3 clicks/touches.
  • Primary input should come from the touch, so an easy-to-use software keyboard should be implemented.
  • Allow the GUI to be skinned.
  • Provide customization of features (modules) and options within these features (avoid hard-coded links, etc.).

Modules supported / planned

  • Easy to see and always available time/date display;
  • Picture frame (slideshow);
  • Cameras pane for CCTV and remote Webcams (convenient to keep an eye on the kids and check traffic in the morning);
  • Weather;
  • Internet browser for quick searches (Google) and up-to-date news (Facebook, Twitter, CNN, etc);
  • Music player for local and streaming sources;
  • Cookbook for quick recipes lookup (possibly with a timer and pictures);
  • Lighting status and control (I primarily target X10 and INSTEON systems);
  • Security system status and control;

Screenshots

The screenshots are available in Picasa.

System Requirements

To run:

  • Windows XP SP2+, Vista, Win7
  • .Net 3.5 runtime
  • Display with 800×600 or higher resolution (1024×768 recommended)

To build:

  • same as above, plus
  • MS VisualStudio 2008 with C# language support

License

This project is a free software developed under GNU Lesser General Public License (aka GNU LGPL).
Please see http://www.gnu.org/licenses/lgpl.html for details.

Icons by Axialis Team (http://axialis.com)

For now there are no binaries (aka Setup/Installer) to download, but the full C# source code is available for anyone interested from http://kitchentouch.codeplex.com.

Let me know if you want to see photos of my kitchen HTPC set-up and I’ll post them here. Stay tuned for updates to this project — follow me on Twitter (@rusgrafx).

I’d also like to get feedback from C# developers, as this is my first project in this language and I’m sure there is a lot of code that could be improved.

Related Articles: