Whole House Monitor

Update June 12, 2011:  I've essentially stopped development on this program.  It works nicely, but it ties up my laptop or other computer running the software.  I still use it to troubleshoot something or graph a short term experiment, but my Home Controller has become the device that centralizes control.  At some point I'll put a detailed description of the Home Controller and its operation, however right now it is only beginning.
-------

Gotta put it all together somehow.  I'm just barely starting on this but it works real well right now.  As you can see, the items I have made so far are displayed using a web interface I made.  It updates at different intervals for each item and can control the thermostats remotely; temperature up, down that sort of thing.  I'm using processing to develop this tool since it is so similar to the Arduino IDE (or vice versa).  It's got its own set of problems and things to learn, but it is working quite well

I wanted to display this for those folks that are watching what I've been doing and wondering how it will all tie together at some point.  I even animated the display, the little fans spin when the heat pumps are running, and the color indicates what is happening.  Red for heating, green for recirculating, blue for cooling and a black fan that doesn't turn for idle.  This is a multi-threaded application with each Arduino controller having its own thread for displaying data.  That keeps it from hanging on a single device to the exclusion of the others.

I'll update this page from time to time.  And, yes, I really am using over 11Kw.  This is an off peak day and I have the heaters and clothes dryer running.  Just wait until I turn on the oven and start dinner!


Update Feb 20, 2011: I couldn't leave this alone.  The Mode button (M) above stepped from heat to cool to off and that seemed silly since I could add buttons to this control without drilling any holes or waiting for parts to arrive.  So, now the application looks like this:


Now that fan button is starting to tempt me....

Update Feb 21, 2011:  I wanted to be able to see power usage over time and a graph would be easier to visualize what was going on, so


Each graph point represents a reading at 90 second intervals, so the entire black area is 10 hours of data.  This can be easily changed in the code to be anything I want.  I'm not saving it and it restarts each time I restart the monitor.  Heh, heh, this energy project may be getting out of hand, but imagine if I started indicating when the various appliances kicked on and off and charted against outside temperature.  I'm going to be experimenting more and more over time.  Let's see, I could watch the freezer and refrigerator compressors, pool pump, ovens,  dryer.....  I should look into wireless mesh networks and outside sensors.

Update Feb 22, 2011:  I couldn't stand it, the buttons to directly control the fan have been put in.  I may, just may have to put this to bed for a while so I can build another input for it.  I think the fridge is next.


4 comments:

  1. Nice app! I am working on a similar problem where i want to display rmps in a program like this. What program did you use? Prossesing? Could you post the part of your program you used for the graph?

    ReplyDelete
  2. Yes, this was done in Processing, version 1.2. The graph was oddly easy to do after I had the values in hand. This is the code for the graph portion.


    // for the little graph at the bottom
    if (millis() % 90000 == 0){ // update every once in a while
    for(int i=1; i<width; i++){
    powervals[i-1] = powervals[i]; //shift the array over one
    //add new value to the end
    powervals[width-1] = int(map(int(value[0]), 0, 10000, 0, 100));
    }
    }
    // this code is for the power graph at the bottom
    for(int i=1; i<width; i++){ //redraw the array
    stroke(255);
    line(i-1, height -powervals[i-1], i, height - powervals[i]);
    }

    ReplyDelete
  3. thank you for you immediate response.also How did you put buttons on the interface?You drew them or is there something ready?

    ReplyDelete
  4. They were easy to put on, but it took me freakin' forever to draw them. I'm not a photo wizard and drawing those things was a painful learning process. Yep, I drew them. However, there are lots of buttons out there that you can grab, and not make the same mistake I did by drawing my own.

    ReplyDelete