![]() |
Arduino - Networked Temperature Monitor
I have two large upright freezers in my garage that I use as beer coolers. Both use an E-bay aquarium temperature controller, to keep my beers at about 50°.
Since I have Rolladen Security Shutters installed on all of the exterior doors and windows of my home, including the door between the house and the garage, I don't go into the garage often. One day my wife came from the garage and told me that one of the freezers was making a racket. When I investigated, it turned out that the fan that circulates the cold air was on its way out, and the freezer was struggling to hold temperature. I replaced the fan, and everything was copacetic, but I was concerned about the possibility of another problem that might cause one of the freezers to not hold temperature. What I needed was something that would allow me to monitor the freezers remotely. I initially considered one of the wireless indoor/outdoor thermometers that I use in my kitchen, but the wireless signal would not penetrate the metal skin of the freezer. Then I hit upon using an Arduino microcontroller board to run some One-Wire temperature sensors, and have it serve a web page over my home intranet when interrogated. I then picked up the following parts: Freetronics EtherTen: This is a single board that is 100% Ardunio Uno-compatible, and has the equivalent of an Arduino Ethernet Shield baked into a single board. It's 100% compatible with standard Arduino libraries, and costs about the same or slightly less than the street cost of the two Arduino boards it replaces (unless of course you buy knock-offs off of ebay). It also reduces the overall height of the project, which involves "stacking" the cards. Freetronics Short Protoshield: This is a prototyping breadboad that fits behind the RJ-45 jack on the Etherten or Ethernet Shield. I used this to hold the connectors and components for the One-Wire system. DS18B20 Temperature Probes: These probes use a Maxim DS18B20 Digital Thermometer that uses the One-Wire technology that allows multiple devices to share a simple two or three wire microlan. I chose to use the three wire setup, which simply involved placing a 4k7 ohm resistor between DS2 of the Etherten (Uno) and 5V Adafruit I2C RGB 16x2 LCD Display: This is a slick little kit that allows you to run an LCD display that can change backlight color under software control. It can also be used as a stackable shield, or connected with just 4 wires from the Etherten. Once I had the boards assembled and stacked, I downloaded the IDE from the Arduino "Getting Started" page. I use OSX, Linux and Windows, so I got the IDE for all three and installed them. I also downloaded the "Adafruit RGB LCD Shield Library" and the "OneWire Library" from their respective sites, and loaded them into the appropriate locations in the IDE. I then wrote some code that will read each probe, and display the result on both the display, and on a simple text-based web page. I used the RGB backlighting to indicate whether or not the temperature was within a specified range. If the temp was too high, the display would turn red: http://www.buttcrackbrewery.com/imag...o/RedImage.png If the temp was too cold it would turn blue: http://www.buttcrackbrewery.com/imag.../BlueImage.png But if everything was correct, then the display would be green: http://www.buttcrackbrewery.com/imag...GreenImage.png You can watch the monitor in action here. If I ran into a situation where one was too cold, and one was too hot, I opted to display a red screen. Additionally, the red and blue screens both blink on and off as another visual indication of a problem. I use Powerline Communication Adapters that allow me to use my house wiring for ad hoc ethernet communication. I've been using the older 200 MBPS adapter for a while now, and they work great. I can simply put one of the adapters in my garage, connect it to the Etherten, and then interrogate it from any other computer in my home using a web browser: http://www.buttcrackbrewery.com/imag.../WebScreen.png I also use red, blue and green on the web pages to show too hot, too cold, and just right. I'm planning on doing something similar to monitor "Barney", so stay tuned for further developments. |
Hi
How many probes do you think you could support without adding more hardware than the probes themselves? Bob |
Awesome stuff, definitely will be ripping this off. Well done.
|
Quote:
I'm using an RJ-45 patch panel wired in parallel, and am using some of the several bazillion ethernet cables I have laying around to make new probes. Supposedly there can be reflection problems if you use a star-type network instead of a short stub off of a main line, but I haven't seen it in my tests. |
Quote:
Code:
/*If you have more than 2 sensors, you can use the "UP"and "DOWN" buttons to vertically scroll the sensors on the display. The display should only change color if one of the sensors currently displayed is out of bounds. Just be aware that the web page is pretty simple, and may just try to print all of the sensor info on a single line (I'll fix that later). |
Subscribed! Awesome idea.
Do you have the page listed under a DNA server so you can access it from anywhere? |
Quote:
It's on an internal subnet right now, although I do have the ability to twitter an alert if I want to add the code. :D I'm primarily interested in checking it without having to roll up the security shutter to my garage just to check the temperature. I'm also interested in building another to monitor and log my brewstand temperatures onto an SD card during a session. :rockin: |
FYI, I just created two new temp probes using a flat flexible telephone extension cable that was lying around. It was a flat 4-wire cable, and the two probe cables are about 10ft each, and are working just fine.:mug:
|
Subscribed. I'm about to embark on a similar project.
|
Subscribed. I love projects like this and can't wait to get started on some of my own.
|
| All times are GMT. The time now is 09:13 PM. |
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.