I havn’t decided what sensors to use. Both onboard and outboard/outdoor are interesting. I’ll probably use some sort of breakout board (if not designing my own PCB).
My first prototype uses BMP085. The BMP180 is the next-generation of sensors from Bosch, and replaces the BMP085. Breakout boards of different sizes can be bought on ebay, adafruit etc. Datasheet can be found here.
BMP180 is supposed to be completely identical to the BMP085 in terms of firmware/software/interfacing and example on how to use it can be found several places.
(jan 2017) The new sensor BME280 has temperature, barometric pressure and humidity!
Adafruit also lists MPL115A2 and says: “This pressure sensor from Freescale is a great low-cost sensing solution for precision measurement of barometric pressure and altitude. The MPL3115A2 has a typical 1.5 Pascal resolution, which can resolve altitude at 0.3 meters (compare to the BMP180 which can do 0.17m). It has some upsides compared to the BMP180, such as interrupt outputs for ultra-low power usage, and its also a heck of a lot easier to read altitude with a built in altimeter calculation – no calibration reading and calculating required. As a bonus, there’s even a fairly good temperature sensor with ±1°C typical accuracy (±3°C max).”
Realtime Clock (RTC)
Could be that RTC is not relevant if I go for a weatherstation that is wifi enabled. Anyway, there are several options available:
- DS1307 as used in by prototype. A lot of examples and breakout boards can be found. Widely used.
- DS1339. According to RTC-Breakout-for-DS1339-on-Arduino-low-cost-batter a better alternative that DS1307 if you i.e. use 3.3v arduino
- DS323x. Supposed to be very accurate but have more pins and is more expensive (ref i.e.:http://forum.arduino.cc/index.php?topic=133190.0) than DS1307. Feature Comparison of the DS323x Real-Time Clocks. Arduino libraries and breakout boards are easily available, but I haven’t checked if the sw are 100% compatible with the Time library used in my prototype. A DS3231 breakout with replacable battery is available i.e. at Deal Extreme. A thinner (7mm) more expensive alternative is mini_RTCpro which has battery soldered?
- PCF8563. Several examples can be found, i.e. on hackaday. A comparision between PCF8563 and DS1307 can be found here.
- Microchip has MCP7952X/MCP7951X. You can read more about it i.e here. Does it exist breakout boards ?
- DCF77 support, at least for some europeans, adds the ability to read and decode the atomic time broadcasted by the DCF77 radiostation in Germany. ahsoftware.de has an example on how to use it.
Tronixstuff has an article about using ds1307 and ds3241 with arduino.
A candicate is DS18B20, a temperature sensor of a so-called 1 wire device.
A 1-Wire bus uses two or three wires (!). If you really want to dig into the details, look at the 1-wire design guide. An example with arduino can be found at tushev.org
It could be that I can use temperature sensors already included in other sensors (typically for calibration/linearity purposes). kevinrye.net has a comparison between ds3231 RTC internal temperature sensor and ds18b20 for temperature readout. He concludes that “The temperature from the DS3231 is more than adequate”.
ATtiny25/45/85 processors contain an internal temperature sensor. However, I wouldn’t expect the accuracy to be great even if calibrated. For a cheap wireless outdoor sensor it might be sufficient ? But I don’t think I’ll go that route.
Adafruit claims that their MCP9808 based breakout board is very exact.
LMT01 –20°C to 90°C: ±0.5°C (Maximum)
A humidity sensor, i.e. DHT11 or DHT22.
Silabs Si7021 I2C humidity and temperature sensor in the Si7013/20/21 series. They are second generation so Si7005 is no longer recommended for new design. Si7021 is used in Lowpowerlab’s WeatherShield.
Honeywell 6031 and 6000 series of humidity and temperature sensors. Precise sensors, but also more expensive and delicate that i.e. si7021 according to Gary Stofer at wunderweatherstation.
There’s also the Sensirion SHTxx series.
Here is a nice overview/test of various hygrometers (also discusses other aspects) incuding AM2302/DHT22, AM2320, AM2321, SHT71, HTU21D, Si7021 & MBE280.
Wind measurement is typically more that just a electronic sensor and a breakout board. We’re talking mechanical anemometers. I know several use DIY types, but I’ll try to find a sturdy, not so expensive, readymade. I.e. inspeed.com has specialized in wind instruments for home use. wunderweatherstation also sell parts.
Sparkfun has Weather meter with a datasheet. This can be connected to a small low power arduino transmitter.
Looks to be the same as sold from argentdata. That sensor combo is used by a wireless arduino weatherstation created by Skyler Fly-Wilson. Code is found in github
Adafruit sells Anemometer Wind Speed Sensor w/Analog Voltage Output. You can use hackerspaces instructions to get data from it.
There are also ultrasound based such as the Netatmo wind gauge.
to be described…
Such as diy-air-quality-sensing-from-habitatmap-and-sonoma-tech.
Reverse engineer and use commercial wireless sensors
Reverse engineer the protocols used for commercial anemometer, weather vanes, temperature, rain gauge etc ? Several have done that for i.e. Lacrosse sensors:
- fredboboss.free.fr LaCrosse TX29-IT+ and TX29D-IT+
- www.f6fbb.org TX3-TH thermo/hygros
- nikseresht TX-22U (IT+) from WS-1610
- kjordahl.net TX4U (does it work also with TX7U ?)
- Build Your Own Davis Weather Station Console. A lot of information for i.e. how Davis Outdoor Integrated Sensor Suite (ISS) works.
- www.mattlary.com. Protocol for Oregon Scientific.
(aug2018): Take a look at Andras Spiess blog: #209 How to Hack your 433 MHz Devices with a Raspberry and a RTL-SDR Dongle (Weather Station)
There are several discussions on the arduino forums, such as this one.
I’ll also look into designing by own wireless system (at least if I only need external temperature sensor). I have some 433MHz and 2.4GHz transmitters/receives lying around. Refer also to the wireless communication section in my own blog.