Go Down

Topic: Finding sensors best suited to weather station project (Read 5020 times) previous topic - next topic


Ok, so I am very new to arduino (don't even have one yet) but have extensive programming and C experience (was a CS major). I've always wanted to have a weather station but have never liked the limitations and non-customizable nature of the commercial offerings. Once I heard about arduino I did a ton of reading up on it as it was an interesting subject for me, and it seems the perfect project for me to take on if I take the plunge into the arduino world.

Obviously I want to take the best approach when putting something like this together, and that has led me to researching what would be the best sensor solution for this type of project. There are a ton of sensors out there, but the two major categories appear to be the thermistor approach, and the digital sensor solution. I want as accurate sensors as possible while keeping the price reasonable. According to this site (scroll to the very bottom), the best accuracy you can hope for from an arduino using the analog approach would be half a degree centigrade. I'd like something with at worst +/- 0.1C accuracy, along with a fast response time. Would an infrared temperature sensor be a feasible approach for this type of application? I also found this integrated humidity and temp sensor, but could not find any datasheet on its accuracy for temperature and humidity. My concern with humidity sensors also is their tendency to go bad after a while. I remember the oregon scientific weather station humidity sensors were notorious for this problem. Therefore, if possible I'd like to get a humidity sensor that has a decent lifespan instead of only a year like the OS ones, and is accurate enough for a good dewpoint calculation. Anyone have ideas on decent sensors that would be well suited to the arduino?

I'm not going to pursue other sensors besides temp, humidity, and barometric pressure one for now. The rain gauge and wind sensors I can always add at a later time.


OK, I found the datasheet on the dht22, I wasn't thinking and hadn't tried searching for it. It appears it's +/- 0.2C. I've also been unable to find humidity sensors with better than +/- 2% RH accuracy (perhaps the tech just doesn't exist). After doing some more research, it appears a 0.1% accurate thermistor could approach 0.1C accuracy on the arduino, the big limitation being the arduino's ADC. I haven't been able to find dedicated arduino thermistor reading boards.


I have thought about building one I am not not commited to buying the components yet.


Sparkfun had a rain guage / wind cup/direction sensor at one time but the last time I looked they were sold out.


Sep 07, 2012, 07:12 am Last Edit: Sep 07, 2012, 07:14 am by MrGarak Reason: 1
I figure someone might ask why 0.2C isn't good enough. In a weather situation, especially with things like freezing rain, you want something accurate to at least a tenth of a degree fahrenheit. 0.1c == .18 fahrenheit, so even that is outside the desired range. Ideally, I'd like something that could take advantage of a 0.1% 10k thermistor, but haven't found such a solution yet for the arduino. It may be I'd have to go with a different microcontroller entirely, which would be a shame since the arduino seems like such a newbie friendly way to get into microcontrollers.

Thanks for the info copiertalk. To be honest I'm wary of going with OS stuff, given my experiences with them along with what I've heard from friends who've had even their higher end weather stations. Their stuff tends to have QC issues, are unreliable, and prone to failure. I had my eye on the sparkfun anemometer package but I just want to start out with the basics (temp sensor, pressure sensor, fan aspiration, relative humidity sensor, and possibly a wireless solution for outside siting) to begin with, and then possibly add things like anemometer and rain gauge down the road sometime.


Hate to keep replying to myself here, but I've found that probably the best approach to get the accuracy I want (+/- 0.1F or better) is to get a 12 or 16bit ADC and hook up the thermistor to that, and then the ADC to the arduino. Unfortunately this process seems a bit much for someone who has no microcontroller experience, unless I'm missing an easy plug n play ADC for arduino shield out there.


These kinds of sensors are all available on distributor sites (Mouser/Digikey/Newark). Just have to search and read the datasheets.

Honeywell HCH-1000 claims an almost 2% accuracy for humidity and .2% drift/year. It's a capacitive sensor so you shouldn't (?) need any additional high precision ADC or whatnot; just a resistor.


Thanks Chagrin. I will try searching digikey/etc and see if I come up with anything there for integrated temp sensors and such. All the integrated temp sensors that hook up to the arduino's digital pins I've found so far have only had at best 0.2c accuracy, and I'm looking for something that has at worst 0.1f accuracy.

In case this doesn't work out, does anyone know offhand of a newbie friendly 12 or 16bit ADC shield/addon that works well with the arduino? My searches so far have yielded solutions which aren't too newbie friendly, though maybe I could still figure it out in the worst case.


Ok, searched digikey and couldn't find any sensor modules with better than 0.1c accuracy. I did find a nice +/- .05c thermistor which would come out to 0.09f accuracy provided it was read by an ADC with enough resolution. I still wonder, however, if component noise and the like might preclude that level of accuracy even if I did have a 16bit ADC? I figure there's a reason there aren't any sensor boards with better than 0.1c even on digikey  :.

I tried searching on mouser and to my dismay found I wasn't able to filter by accuracy at all. Plus, I've heard mouser tends to charge a lot for shipping so it's best to order from them when you have a lot of components to get. newark also didn't bring up any promising results.

I may end up going with the .05c thermistor and a higher resolution adc, provided it's worth the extra effort/cost and is feasible.


Keep in mind that there are almost endless variables internal and external that can factor in and limit one's ability to approach a perfect sensor and it's perfect measurement. Things like sensor self-heating effects caused  by the electrical interface between the sensor and the circuit required to bias or excite the sensor. My signature below is a reminder that it's known in science that it's hard to prove one can measure something specific without the measurement method being used having an influence on the measurement being taken. Not unlike asking a subject person to smile as you take a picture of the person, the pictured smile is seldom an accurate representation of the smile you see from that same person when he/she doesn't know they are being watched or photographed.

Accuracy is truly a complicated subject when you try to consider, define, or compensate for all the possible causes of deviation from 'true accuracy'. And never take page one datasheet accuracy specifications at face value. The marketing guys write page one, the real engineers are tasked with trying to tell the truth about those claimed specifications using small print and nearly impossible assumptions and external conditions one has to use to meet those page one 'highlight' specs.



Sep 11, 2012, 09:55 am Last Edit: Sep 11, 2012, 09:56 am by MrGarak Reason: 1
Good points retrolefty. I am trying to "do it right" from the get go with this project, but I guess there comes a point where it becomes hard to impossible to get the kind of accuracy I want. Still, I want to do whatever I can to ensure the accuracy is as good as possible with this type of setup. In case anyone else is interested in this type of project I'll try and keep updating here as I progress.

I have ordered the uno r3, should be here by the end of the week. That should at least give me something to start testing and messing around with. In the meantime, I've been doing some more research, and have not been able to find a decent (at least 0.1c) integrated humidity/temp sensor package yet. Therefore, I've been seeing if a separate thermistor/humidity sensor approach would work, and it seems that humidity sensors need to take the current temperature into account when performing the RH% calculation. If using separate sensors, this could lead to some calibration nightmares that might not be there with integrated packages. In addition, I have not found a very easy, straightforward way to read capacitive humidity sensors with the arduino, still searching around but so far it seems pretty complicated and something which would require its own circuit. Basically the capacitive sensors seem to require an AC waveform of usually 1khz or higher in the reading process. I'm still quite green to this stuff so it's proving a bit much so far. I did however find this somewhat helpful thread:


Another issue I've come across is calibration for the thermistor. The 0c ice bath part is probably do-able, but good calibration will also need data gathered at exactly 25c and a third point (like 100c) as well. I don't see any easy way to calibrate those other points without expensive calibration equipment which I don't have. 100c is outside the range of most thermistors as well, so sticking one in boiling water will ruin it in that case. Still trying to figure out more info on this part.


Hi Guys,

Have a look at this one https://github.com/robwlakes/ArduinoWeatherOS

It covers capturing remote sensors from Oregon Scientific V3.0 on 433MHz and local Humidity and Barometer on an Arduino.

Cheers, Rob
Learning Flute and C++, heading for a meltdown.

Go Up