Jump to content
Sign in to follow this  
moallen

BeagleBoardXm Home Energy Monitor

Recommended Posts

Over the past 10 years I've used various micro-controllers and devices to monitor and control my home heating and cooling system, water heater, sump pump, humidifier, AC power, lights, as well as a custom security system. After downsizing and moving into a condo a couple years ago, I also downsized my system toys, much to my wife's relief. But I am currently using a BeagleBoardXM to monitor our gas furnace and relevant weather datapoints. I thought I would share some of this project with anyone who might be interested.

 

The heart of the monitoring system is a BeagleBoardXm running Ubuntu 13.04 headless. The program itself is written in Python 2.7.4. Data passed to the program consists of whether the furnace's gas burner is on or off, the temperature and humidity inside our home and the temperature, wind chill and wind speed outside. These 6 data points are uploaded to Xively every 60 seconds where they are automatically graphed for web analysis. In addition all data is logged to the BeagleBoard's SD card everytime the status of the furnace changes.

 

To be more specific about the hardware, a 24VAC relay is connected to the furnace's gas valve. It's normally closed contacts are connected to a digital input pin on a Xbee radio module. The Xbee is  set up in I/O line passing mode. When the furnace fires, pin D3 goes High, which is reflected on another Xbee, also running in I/O line passing mode, connected to a USB port on the BeagleBoard. This Xbee then sends a 13 byte packet to the serial port which is read by the Python program.

 

I could add more appliances to the Xbee in our utility room, for example, the water heater, clothes washer/dryer and AC power. But for now I'm keeping things minimal.

 

To measure the temperature and humidity inside our home, I'm using a Phidgets 8/8/8 Interface Board. Phidgets temperature and humidity sernsors are connected to a couple of its analog inputs. Here again I could add more sensors.

 

To get outside conditions, I'm pulling down metadata from WeatherBug.com, parsing its 30 some data elements and retreiving just temperature, wind chill and wind speed. Those seemed to be the things most relevant to how much my furnace runs.

 

Then as I mentioned, these 6 data elements are uploaded to Xively.com for online viewing. This has come in handy when we are away to make sure things are running OK at home. Here's a link to my account: https://xively.com/feeds/97217%C2'> It may not always be updating, as I fiddle around with the program.

 

I use MobaXterm to SSH into the BeagleBoardXm and WinSCP for more extensive file management, both from my Windows machine through our home network. I did find it necessary to setup a static IP adress for the BBXm.

 

Some of the Python packages this project uses are: PySerial, Mechanize and Phidgets. I'm using an embedded class from: github.com/mattvenn/cosm to format the data elements into a format suitable for uploading to Xively. Interestingly, Pachube was bought by Cosm and finally by Xively during the years I have been using them to graph my data.

 

I also managed to get my sound working and may use it for audible warnings or messages. Perhaps more to come...

 

 

post-249-14264691132105_thumb.jpg

post-249-14264691132683_thumb.jpg

Share this post


Link to post
Share on other sites

@@moallen Welcome to the Forum. Looks sweet so far. 

Wasn't Xively the website that changed many names.. I think it was cosm first.

Yes, my free account with them stated as Pachube, then Cosm and now Xively. I think the 1st time was a change of ownership, but the 2nd was just a name change.

Share this post


Link to post
Share on other sites

I'm planning something fairly similar to control my heating and AC (and likely other appliances down the line) with a RESTful api in node.js and angular.js client on the BB and MSP43-G2553/NRF24L01+ sensor nodes. I will almost certainly use Xively for data logging although I haven't thought much about that part.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×