You can buy a remote Oregon sensor THGN123N for about $20 or you can build your own temperature/humidity wireless sensor that implements Oregon protocol V2.1 for about $9 and have fun!
First of all, we need accurate temperature/humidity sensor to check the weather outside. In my previous project the sensor si7021 has shown perfect results, so I recommend this sensor one more time: it has great accuracy, small form-factor and low power consumption.
Second, we need mobile platform with low power requirements that can run on the batteries for a long time. Again, in the previous project such a platform has been successfully built. We can use atmega328p-pu chip, running at 1 MHz. The power consumption of this system is about 5 micro Amps!
Third, we need the software library for sending the signals using appropriate protocol. This library is based on the software created by Domonique Pierre, the author of software, emulated Oregon V2.1 protocol.
The power-efficient Arduino
There are several articles in the Internet about running Arduino controller on the batteries. For example, this article describes how to run the Arduino pro mini on batteries for long time. You need to cut-off the green power led that consumes about 10 mA. Unfortunately, you can destroy your Arduino board while trying to cut the desired wire, like I did. I believe it is better to build own Arduino from the scratch without any lLED at all. In this case, you can also decrease the power consumption by slowing down the controller CPU. Please, read the very detailed tutorial about creating own Arduino board running at 1 MHz and consuming as low as 5 micro Amps.
The software library
At the beginning, I tried to use pure library written by Domonique Pierre. Unfortunately, the controller speed is not sufficient to send the data in the time limits required by the protocol. To make the library faster, direct port manipulation was implemented in the new version of the library. In the Atmega 328 controller there are two output ports, B and D. In the library you can see two different classes for each port, directPortB and directPortD. The constructor for OregonSensor class automatically selects appropriate port based on the transmission pin number. There are direct port manipulation functions to send "
one" and "
zero" signal according by the Oregon protocol that allows to speed-up the signal transmission.
There are two interesting components in the project:
- power-efficient Arduino controller that can run over a half-year on two AA batteries.
- the software library that supports Oregon V2.1 protocol with advanced direct port manipulation functions.
I hope, you enjoy investigating both components or you can use the library. As to a budget of the project, you can evaluate the price of all components:
- atmega328p-pu chip - $1,52 (if you buy one chip)
- industrial si7021 sensor - $2,60
- 433 MHz receiver/transmitter kit - $1
- ams1117-adj voltage regulator - $0.10
- all small components (capacitors/resistors) - $2
Total: $8.22. But who can evaluate the fun?