Today's Hardware Friday project by a friend of the blog, Marco Minerva, shows how he, and with his help, us, can build a cool home automation system with some of our favorite tools.
In this post I want to describe how to create a Home Automation System that puts together many of the modules and source code we talked about on this blog during the past months. In particular, we’ll create a Gadgeteer device that uses touch screen capabilities of Display T35 to provide access to all the functionalities of the system.
So, let’s start. Connect the following modules to a FEZ Spider Mainboard:
- USB ClientDP;
- WiFi RS21, to retrieve current time from the Internet;
- Display T35, to manage the system using touch;
- SD Card, to store the configuration file of the application;
- Temp & Humidity, to show an example of information that can be acquired using sensors;
- Relays, to control eletrical devices;
- Camera, with which we can show, for example, people that ring our bell.
You can see the result in following screenshot.
Almost all the FEZ Spider sockets are filled. As said before, we’ll use source code from some articles that have been published on this blog. In particular:
- XML Configuration Files for .NET Micro Framework
- Synchronize the Clock with a Reference Server on the Internet
- Windows-like Interface for the .NET Gadgeteer Display
Moreover, we need to create some custom fonts for the application. .NET Micro Framework SDK provides a command line tool that allows to do this. Alternatively, you can use the Tiny Font Tool GUI to make things simpler. In the ZIP file attached to this article you can find all the fonts we’ll use.
This project goes into all the details, from build the hardware, coding it and constructing the UI
Our application has three sections: Temperature & Humidity, Relays and Camera. So, we need to create three menu items:
The result is shown in the following screenshot.
Here's a video of it in action.
And as you would expect, the source available for download (click through and it's at the bottom of the page)