Monitoring our machine room temperature with nagios, perl and arduino
martin-evans.me.uk
martin-evans.me.uk
Just google cisco (or Juniper, Extreme, etc) temperature MIB to get started. Some devices give you 4 or even more readings (like temp at the intake fan, cpu temp, temp at out fan, etc).
Many servers have multiple temperature sensors as well, generally accessible with some vendor-specific MIBs, plus you of course have LM78-style sensors for pretty much any modern motherboard. Of course some of these don't give you room temperature, but they will climb anyway if something's wrong with the room temperature. If 5 or 6 different boxes in the top left corner of the room all start climbing you know something's up.
For Linux, check libsensors and lm78. Many Sun boxes will give you temperature readings with prtdiag -v and you can easily turn that into a MIB via e.g. ucDavis SNMP agent.
On the other hand, sometimes you want to measure cabinets where either no easily accessible monitoring device is located (servers operated by contractors, telecommunications equipment that does not connect to ethernet or standard protocols,...) or you want to have readings directly at cold-air-outlets/hot-air-inlets, or in the middle of corridors.
In that situation some independent sensor network might be a reasonable solution, I had good experience with onewire temperature sensors, not the most precise thermometers, but rather cheap, and very easy to connect in parallel to a 3-wire cable (GND, +5V, Data). All devices have a worldwide unique ID and can be read out by a simple...
cat /mnt/onewire/01-ABCDEFGHIJKL/temperature
- DS18S20 temperature sensor
http://www.maxim-ic.com/datasheet/index.mvp/id/2815
- DS9490 USB to 1Wire interface
(like a USB stick with a RJ11 connector on the back)
http://www.maxim-ic.com/datasheet/index.mvp/id/3834
- Onewire Filesystem
http://owfs.org/Plain reader/logger: https://gist.github.com/2980913
EDIT: I don't have an Arduino on hand to test this with, I hope it works.
EDITEDIT: Pulled my Arduino out, it works now.
Grapher/reader/logger: https://gist.github.com/2980955
If you don't want to build your own it's worth noting that you can also buy USB-thermometers relatively cheaply on amazon, they're around $20 bucks.
We've had good success with the ones labeled "TEMPer" under linux. Don't forget to buy USB extension chords if you want to place them at a distance of the machine.
Something like this http://www.adafruit.com/products/270 and this http://www.adafruit.com/products/269 play nicely together. Hook the sensor up to the Arduino, have it print out the values when you want them, go to town.
The only draw back is that you'll have to run the thermocouple into the refrigerator and seal it. Most electronics are rated to about -40C, so unfortunately you won't have a nice wireless solution.
Anyway, is it due to thermal contraction/expansion at that temp vs. "room temperature" that they spend at least some of their life at?
A little bit of googling brought me here http://www.electronics-cooling.com/2004/02/the-temperature-r... where they said 'hot electrons' are a cause of degradation. When electronics are running under normal conditions, there's lots of bumping into each other. The kinetic energy of the electrons never gets too high, as any electrons that gain energy will 'collide' with another electron, transferring some of the energy. When it gets sufficiently cold though, the electrons are not moving around as much. There's less chance of a collision, and more chance they electrons will gain enough energy to quantum mechanically tunnel into the insulator. This is bad, as we now have charges that are stored in our gate and they cannot be removed. Interestingly, this is the same principle that allows us to build flash memory. There is a 'floating gate' that stores charge for an extended period of time (hopefully indefinitely if you don't want to lose your data). By applying a large voltage to the gate, we can charge or uncharge the gate, allowing us to write 1's and 0's.
But that's just my theory, I couldn't find a clear answer in my bit of googling.
The business reason would likely be that they can rate it in that range that most people are perfectly acceptable with, they don't have to test it outside those ranges, and they can make more money off of the parts that they sell outside of that range as there is less demand for them.
What kind of controller does your freezer use? You could try to tap into the analog singnal inside of the controller or try to find a serial port (most temp.controllers have some kind of protocol specified where you can adjust timing parameters (P.I.D. constants, duty-cycle limits, ...)). Even a 7-segment display can be converted back to digits on a serial port easily.