

Monitoring our machine room temperature with nagios, perl and arduino - ojosilva
http://www.martin-evans.me.uk/node/140

======
gruturo
As nice as your project is, you could simply have read the temperature from
almost any computer, router, switch, etc.

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.

~~~
cnvogel
This information is for sure valuable and I would definitely include readings
from stable infrastructure devices in any environmental monitoring.

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/

------
mercuryrising
This is the kind of stuff python is really good at doing. I can't really vibe
with Perl, but this Python script should work well, another one with graphing
coming soon.

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>

------
moe
Nice hack!

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.

------
toufka
any way to do this for -80C freezers? Many sensors used don't work at such
cold temps - but it'd be really useful to build a similar (cheap) device to
monitor freezers.

~~~
mercuryrising
Absolutely. You'll likely need to use a thermocouple though.

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.

~~~
michaelcampbell
Serious question: Why are most electronics rated to -40? (Note: -40C and -40F
are the same... =)

Anyway, is it due to thermal contraction/expansion at that temp vs. "room
temperature" that they spend at least some of their life at?

~~~
mercuryrising
Compared to the temperature changes that the wafers go through when processing
(>800C for annealing, lower temperatures when we start putting more materials
on the silicon's surface), the silicon itself will likely be fine from the
temperature shifts. It will be more brittle, but the amount of wafer in a
semiconductor is so small it likely won't crack. We have to worry a little bit
about the plastic expanding differently than the wafer, but the wafers are so
teeny it likely won't be an issue. Electronics usually work better when they
get colder, just look at the people who overclock with liquid nitrogen,
although the silicon inside is still providing a heat source, preventing the
silicon from getting to 77K. Back to the answer though, I don't know for sure.

A little bit of googling brought me here [http://www.electronics-
cooling.com/2004/02/the-temperature-r...](http://www.electronics-
cooling.com/2004/02/the-temperature-ratings-of-electronic-parts/) 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.

