I want to build a remote sensor which will measure temperature (range 5-30°C) and humidity (range 20-90%) and provide regularly (in the range of one measurement every minute or tenth of minutes) the measurement via wireless. This sensor will be used indoor, mostly in dark areas.

Note: measurement could be done every minutes and sending them could be done immediately or in batch of 10 measurements or more).

I was looking to build this solution using an Arduino, DHT22 sensor and a radio transmitter using ZigBee or Z-Wave protocol, and power it via AA rechargeable batteries. But after studying this solution, I found that it would be challenging to even get a week of battery life, this would require using the radio sparingly and to try to use as much as possible the power modes of the Arduino ATmel controller.

That's not enough, I want a battery life in the range of several months, 1 month would be "acceptable", 6 months would be the target, breakthrough would be > 1 year.

Note: I don't want wifi, this seems to suck even more power than the other mentioned radio protocol


Is there another more power efficient way to wireless-ly transmit the data?

Or shall I reconsider Arduino all together and look for another more power efficient controller?

Or is there another way?

3 Answers 3


I made a Temperature and humidity sensor - battery powered in 2013. It is powered from 3 x AA batteries, and lasted, as I recall, until a couple of months ago before I changed the batteries. That is, almost two years.

It logs to an SD card every 15 minutes. You could change that interval of course, it would probably not last as long logging every minute.

Temperature and humidity sensor

I certainly wouldn't attempt it with a pre-made board, because of the drain by the power LEDs, the USB chip, the voltage regulator, etc.

I measured 6 µA consumption when asleep.


Temperature logger schematic

(RH-click and "View Image" to see a larger version)

The schematic is deliberately presented as "blocks" of parts of the circuit. To understand it from scratch, make up individual parts, test them and get the code working to your satisfaction. For example, the clock or the temperature sensor.

Some of the parts (like the clock) are already available as pre-assembled boards, if you prefer to reduce soldering.

You could manage without the 7-segment LED readout, however I found it useful for confirming it is working "in the field". The readout LEDs can be purchased cheaply from eBay for around $US 3. Search for MAX7219 8-Digit LED Display Module 7-Segment or similar.

Example output

Example of measuring temperature and humidity every minute:

Spreadsheet of temperatures

Graph of temperatures

You can see from the graph that I left the room at 9:30 pm, and the temperature slowly dropped until 6:30 am the next morning. The zig-zag effect is the central heating turning on and off.

Construction details

See the linked page for construction notes, schematic, and code.

Power saving details at Power saving techniques for microprocessors.

Estimated life at logging once a minute

If my calculations are correct, logging every minute might reduce battery life to 7 months (these things are best tested of course), but that is because the consumption is much higher when you power up the SD card. It would probably be best to take 15 readings, and then write to the card every 15 minutes. The extra time writing would be minimal, and that would keep the need to power up the card low.

The 7-segment LEDs

To clarify, those 8 LEDs are not normally on. The battery wouldn't last long if they were! If you press the switch it gives an immediate reading through the LEDs, and also tells you how many writes to disk it has done, and how many write errors it has had. This confirms all is operating properly.

The "busy" LED is there to warn you to not remove the SD card while it is writing to it.

Radio communication

To transmit information you could use a NRF24L01 transceiver module. You get those for a couple of dollars on eBay. Example:

NRF24L01 top


NRF24L01 bottom

You would need another one at the other end to receive (you would need two of whatever radio you chose).

I did a solar powered project using a couple of those. The NRF24L01 uses about 0.9 µA in power-down mode, so that is pretty minimal.

It also uses SPI, so the connections would be very similar to the SD card connector.

I suggest if you are going to attempt this to first get confident with a normal Uno, get the code tested, make sure you have the sleeping/waking going OK, then move it to a low-power board. There are places like Evil Mad Scientist that make "bare" boards, with a prototyping area, which you can use to put things like your temperature sensor on.

Bare bones board

  • I'm new to hardware making, and this looks like complicated but doable with the right instructions. How do you "plan/design" such a board? Do you use special software to verify voltages, etc.? I'm asking because I would like to replace your SD card reader by a radio module (e.g. RFM12B or XBee) and I'm sure it is not just a swap of the 2 modules...
    – Huygens
    Jul 26, 2015 at 21:42
  • I just start simple and work my way up. The bare-bones board for example is described here and here. I don't "verify" voltages because they can't get much higher than the battery supplies. If you take it slowly and connect and check one thing at a time it should all be pretty easy.
    – Nick Gammon
    Jul 26, 2015 at 21:52
  • See amended reply for details about radio transmission.
    – Nick Gammon
    Jul 26, 2015 at 22:01

There is an excellent article on power reduction at http://www.gammon.com.au/power , but it's definitely worth looking at the parts of your project OTHER than the arduino - that is, your sensor, and your radio. These tend to use much more than your Arduino.

There is some persistent storage on the Arduino - EEPROM - write all your data to that as you read it, then send it all in bulk. Most of the time your radio will spend will be start/end communication.

Making your board is not as daunting as it seems. Use a breadboard to develop & test your project, then use stripboard (aka veroboard) to build your project. You can cut the tracks with a sharp utility knife, or with a specialized stripboard cutting tool (accurate & easier than a knife).

If you are still nervous, find your local makerspace or hackerspace - there are people there that would be happy to teach you to solder, and help you work out your ideas.


Sleep mode of a Zigbee is around 5uA. Power-down mode of an arduino is about the same. You can power the DHT22 via one of the digital pins, so it only uses power if you need it (though I thing you need to give it some time to "warm up"). So I don't see much of a problem. You just need to get the software working right.

Also, don't use an Uno, but one of the more bare-bones boards (e.g. Pro Mini) that don't have an usb-to-serial chip on board. Remove the power-led. Maybe remove the voltage regulator, and use 3 AAs for 4.5V.

I use blank ATMega328 chips, and build my own "arduinos" without all the unnecessary parts. I'm currently working on something similar, and plan on using an CR2032 coincell for power. >1 Year should be possible as far as I can see. If not I'll switch to AAs (11 times more power).

  • 1
    How do you design such hardware build? I know how to program, but putting electronic components together is "terra incognita" for me, e.g. I didn't know the UNO had a voltage regulator, and apart from a few clues I get from the name, I don't know what it does really. :-) So if I want to go the low level way, is there some nice resource where I can learn this stuff? (not just duplicating someone else project, but really understanding what I'm doing)
    – Huygens
    Jul 26, 2015 at 21:46
  • 1
    Have a look at the bareduino. The voltage regulator on the arduino takes any voltage above 5v and brings it down to a stable 5v by "burning off" the excess voltage. Kind of wasteful. It also requires current, even when nothing is connected (quiescent current). Not a lot, but when using batteries, it becomes significant. See Amadanon's answer about breadboards and stripboard/protoboards. You could use e.g. Fritzing if you like to design on you PC first.
    – Gerben
    Jul 27, 2015 at 12:21
  • If you first build on a breadboard (BB), you can fix a lot of mistakes for free, as long as no parts get damaged. Then you can choose whether to use PCBs that mimic the layout of a BB, or strip-board, which requires a little bit of re-laying out but may let you reduce the board size. In the US, Adafruit.com sells Perma-Proto boards, high-quality PCBs in 1/4, 1/2, and full-size BB layouts, so you can quickly transfer your design from the solderless BB to the PCB. I use both and I can recommend both approaches. The Perma-Proto wins on time to 1st prototype.
    – JRobert
    Sep 9, 2017 at 16:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.