You can do this too, and it's quick, cheap, and easy! This little gadget is built around an electric imp, and you can push the data from the imp out to anywhere you want. In my case, I found it handy to push the data to a neat service called Cosm, which stores and graphs the data for free.
This project takes about an hour to two hours, if you've never done a project with an electric imp before, and when you're done you'll have a thermometer that you can toss anywhere with wifi and collect data for months to years on a single battery, depending on how often you check the temperature.
Remove these ads by
Signing UpStep 1: Gather the parts
- An electric imp (currently available on Sparkfun and Adafruit) - $30
- An electric imp breakout board (again, Sparkfun or Adafruit) - $12.50
- A 9V battery - $2.00
- A 9V battery clip, like this one from Sparkfun (we're just going to cut the end off of it, so the connector doesn't matter) - $1.25
- A big capacitor, like this one on Digikey (220 uF, 50V). Make sure it's at least rated to 16V if you're going to connect it to a 9V battery, or you'll have a bad time. - $0.40
- A 100kΩ resistor, preferably 1% tolerance, like this one on Digikey. - $0.10
- An NTC (negative-temperature-coefficient) Thermistor. I used this one on Digikey. It needs to have a room-temperature resistance equal to your resistor (#6) - this one is 100kΩ at room temperature. - $3.25
You'll need some tools and supplies, as well:
- Soldering iron
- Solder
- A bit of foam tape or other thick, double-sided tape for securing the battery to the breakout board
- Angle cutters / wire cutters
- Wire strippers
- A smart phone for using BlinkUp to put the imp on your wifi network
- A computer to program the imp






































Visit Our Store »
Go Pro Today »




Even better, the imp is easy to set up to interact with other devices via I2C, SPI, or UART, which opens the door to communicating with virtually any sensor you can possibly lay hands on.
For general noise sensing, I've seen projects that use a vibration switch as a digital input on one of the imp's pins. That might be quick route to where you're trying to go.
And about the length of the temp sensor wire, what is the max length i can use without affecting the accuracy of the measurement.
Thanks in advance.
Any length of wire affects the accuracy of the measurement, as that wire is going to have a finite and temperature-dependent resistance not factored into your temperature calculation. I built this device primarily to show me, plus or minus maybe half a degree, what the weather is like in front of my house. With that purpose in mind, a foot or two of wire isn't going to cause you much grief.
If you're looking for accurate temperature measurement, you should really go for a digital temperature sensor.
This depends far and away on your polling interval. I've done power profiling on my own setup, benchmarking the amount of time the imp is awake (about .226 s), and the amount of time that the thermistor network is switched on (about .104 s, with us taking 10 readings and averaging them).
When the imp is deep asleep, it draws approximately 6 uA. When it's awake with wifi powersave on, it draws about 7 mA. The thermistor network draws about 16.5 uA, which is not very significant when the imp is already awake and drawing 7 mA.
With these numbers, using a 15-minute polling interval, the imp is asleep 99.97% of the time.
A 9V (PP3) battery is generally good for about 565 mAh (http://en.wikipedia.org/wiki/Nine-volt_battery), and we'll take the nominal voltage to be about 7V (instead of the quoted 9) over the life of the battery. This gives us 3955 mWh. The buck power supply on the imp breakout is good for about 90% efficiency, leaving us with 3556 mWh. At the 3.3V output voltage of the supply, that's 1078.63 mAh.
If we run the numbers on the imp power profile from above, we see our average draw is about 0.188 mA. Now we can find hours: 1078 mAh / 0.188 mA = 5734 hours. 5734 hours = ...
238.9 days
34.13 weeks
About 0.66 years
So you probably don't need to put batteries on the shopping list just yet!
You clearly put a lot of effort into your writeup as it is very well done. Regarding the NTC thermistor, readers should be aware there are different types which can produce different R-F curves and are cautioned to take a close look at the data sheet to determine if a modification to the resistance/temp curve fitting needs to be modified in the software.
In my case I used an NTC-10K Type 2 thermistor. The data sheet I found only gave a list of R/F values so I needed to perform a curve fit to this data. The best fit I came up with (using Igor Pro by Wavemetrics - a fantastic piece of software BTW) was in the form of a power curve: R = R0+K1*F^K2 where R is the resistance of the thermistor, R0 is the constant offset, K1 is a scalar for the temperature F in degrees F, and K2 is the power coefficient. The respective values for a best fit of the table data in the range of temperatures between 32degF and 194degF were: R0 = -12878, K1 = 6.7938e+5, K2 = -0.77833. Of course the fit formula would need to be re-arranged to swap the F/R axis to R/F.
I never did get to characterizing the theoretical fit to actual controlled measured thermistor groups, so the curve fit is theoretical and only based on the data sheets I found on the web. So my results are only as accurate as what I got on the interwebs - i.e. your mileage may vary.
I will have to take another look at the imp thingy though - I can revisit many ideas I have for remote monitoring and data logging. Thanks for posting.
One thing that *is* rather nice about this setup, in terms of power: the thermistor and its partner 100k resistor draw only 3.3V / (100k + ~100k) = 16.5 uA when "on".
At the end of the day, you're absolutely right - an actual IC is going to give you the best accuracy and you will likely be able to find one low-power enough for just about any need.
This is a nice little project and it's truly useful, so I'd like us to be careful to not spread confusion among new developers and budding engineers. They're not measuring temperatures to 0.001 degree with this thing. Not even close.
Can you set this up to make alerts for temperature variances and email or SMS someone to address it??
Build_it_Bob