I mowed the lawn today. But we'll get back to that.
I've had the chance to play with Dexter Industries new temperature sensors recently. These are thermistor-based, and read as analog sensors by the NXT. There are two versions: the "O" or open version, which is essentially a bare thermistor for a fast response, and a "P" or protected version that encloses the same thermistor in a stainless steel sheath. Rated from -50° to 150° C (-58° to 302° F) they span just about any (un)reasonable temperature a LEGO user is likely to need, from dry ice to the average oven (I'm pretty sure the plastic coating on the cord would not handle that; don't do it), and reasonable resolution which varies with temperature but is as fine as 0.15 °F (the resolution is poorer near the upper & lower extremes). Dexter Industries provides NXT-G blocks to read the sensors that work very nicely - under NXT-G 2.0, the block provides better than 1° F resolution, and will output the measured temperature in °C, °F, K, and R (OK, I don't know who still uses Rankine, but it's kind of neat it's there). The steel-coated one doesn't fit nicely into LEGO geometry, but I found it easy to mount onto structures with a simple rubber band. The "open" or bare sensor is so small it's trivial to thread through LEGO pinholes & in fact can fit inside LEGO pegs themselves if you are careful.
I tested the thermal response of the sensors against the other standards I have: the old LEGO analog sensor, and the newer LEGO digital one. The first test was to simply chill all the sensors in icewater, & then plunge them into boiling water. Ideally the sensor should respond as quickly as possible, and the offerings from DI did fairly well. The "open" version had almost the same time response as the LEGO digital sensor, a characteristic time of about 4 seconds. The "protected" version wasn't nearly as fast, but still faster than the old-style LEGO sensor... and unlike the LEGO analog sensor, these sensors will go to much higher temperatures (note how the analog sensor "maxes out" before it reaches the proper temperature). Testing the sensor speed (or NXT-G block speed) was also informative: the blocks from DI are actually faster than the way I'm reading the LEGO digital sensor, and the old LEGO analog sensor is much faster than all others... but that's not actually very important. The fact that these sensors can be read so fast is largely irrelevant as the physical response time of the sensors is so much longer.
The other thing I tried to do was do a direct comparision of the sensors at the same temperature. Actually, I tried to do this for about three days, with little luck (the graph at left is one of the best runs... notice it took about 10+ hours of continuous measurement and sloooow temperature changes). The problem is not that the sensors are poor - in fact, they're (all) rather good. The problem is that first graph, showing response time. If the temperature changes, each sensor will respond at a slightly different rate, so even in the same environment, they won't always show the "same" temperature. By keeping all four sensors in the same water bath, and very slowly changing the temperature, I tried to correct for this, and at first glance at the graph it looks like all four tracked the temperature identically... but they didn't. In fact there were times that one sensor was as much as 4° F "out of alignment" with another. A 4° error? Hmm...
Is this a problem with the sensors? Well... no, actually. It's what you'd expect, given that even in a water bath, the temperature isn't the same at all points (convection currents), and if the temperature is changing, even a little bit, you should expect the sensors to respond differently. I wanted to mention it here because it's important to realize what the limitations of a sensor (any sensor) are... and that those limitations aren't always due to the manufacturer, but the essence of what you are measuring. Don't blame the manufacturer if you don't understand exactly how the sensor should respond.
I really like the LEGO digital temperature sensor - it's just about as fast as the best from DI, but with amazingly high resolution, and it's digitally corrected within the sensor, as well as protected. But... there are things these DI thermistors can do that the LEGO digital version can't. First, they're cheaper, which can certainly be a consideration. Second, they could potentially work over longer distances (I was grateful for the chance to play around with a "open" version with a 2 meter long cord, a meter longer than the NXT I2C system can easily handle and very useful). And third, their small size and flexibility allows the "open" version in particular to be used in places that would otherwise be impractical.
Remember mowing the lawn?
Here's where a small, flexible sensor can really shine. It's been hot here in Indiana, but I still had to head outside today to mow the lawn... and wondered just how hot I was going to get. Not how hot it was outside (easy), but how hot I would be working out there (hard). So I stuck the NXT in a little fanny pack with the LEGO digital sensor sticking out to record air temperature, and using advanced bioadhesives* secured two DI "open" style thermistors to my body in protected areas. The result was that I could log an approximation of my core body temperature as I was working, and see how fast it warmed and how fast it dropped again when I stopped & went indoors to the air conditioning. This is probably not something I could have done easily with the "protected" or LEGO digital probe... but it was easy (actually, not even uncomfortable) with the small flexible "open" sensor. And it showed a number of interesting trends, including my core temperature rising but dropping back down rapidly after I entered the house.
It's amazing what you can do with a simple set of sensors, when they are coupled to a flexible independant computer the size of your fist that can be programmed by a child :). Now, if I can just figure out how to rig a pulse monitor and respiration rate sensor...
*No, not duct tape. Rubber bands around my upper arm and band-aids.