Need to cut off power to my sensors to prolong battery life

Hello, I'm working on a project in which I have to interface multiple sensors (DHT22. DS18B20, Soil Moisture sensors etc.) with an Arduino Nano. The setup will be used to transmit data once in every 5 mins, and for the rest of the time, the Nano will be put to sleep. But, since my sensors are powered directly using the Nano, they still consume power. I would like to know if there is any way I can cut off power to my sensors when my Nano is put to sleep. Is there any kind of an enable that I can use or some sort of switch which can be programmed to go on and off with my Nano?

Hello,
keep a simple SSR to cut out the power supply from the sensors as long as the Arduino is sleeping. And take a look in the data sheets of the sensor to check with time is need to get the first stable measured value.

The DHT22 and DS18B20 have AFAIK automatic sleep modes, where power consumption is very low.
Maybe not worth switching those sensors off.

Not sure about the soil moisture sensor.
You didn't say which one.
Leo..

Wawa:
The DHT22 and DS18B20 have AFAIK automatic sleep modes, where power consumption is very low.
Maybe not worth switching those sensors off.

Not sure about the soil moisture sensor.
You didn't say which one.
Leo..

I'm using a capacitive soil moisture sensor of a local make right now. Also, I might replace the DHT22 with a BME280. And since I am trying to power the circuit using 2000-3000 mAh battery, I would like for it to last a good 4-8 months.

I have Feather LoRa modules with the BME280 & MAX44009 sensors and I just power them from spare pins on the Feather so I can power them up and down with simple pinMode commands.
I get about 1 year battery life with a 2200mAh 18650 battery by taking readings every 10 minutes and transmitting the rolling average every 30 minutes.

You will need to check the current draw needs of the capacitive soil sensor before trying to power it from Nano pins.

BME280 draws almost no current if you switch to one-shot mode. Same for ds18b20 I think. You might be able to power your soil sensor from a pin, hard to know without seeing the specs.

But if you are serious about long battery life, you need to replace the Nano. A Pro Micro Mini is better, especially if you remove/disable the power led. Or a bare atmega328 dip chip, running on 8MHz internal oscillator. You can get those down to <30uA in sleep mode.

If buying a bare atmega328, buy one with Arduino bootloader installed, or buy an ISP programmer like USBASP, or use your Nano as an ISP programmer.

If the sensor pulls under 40mA, you could power them directly from a digital pin, Make it an output, writting it HIGH, alowing the sensor to settle, take a reading, write the pin LOW, then making it an input.

PaulRB:
A Pro Micro is better, especially if you remove/disable the power led.

ProMini I assume :wink:

sterretje:
ProMini I assume :wink:

Yes, thanks. Never thought about Pro Micro/atmega32u4 for low power circuits before... there is no separate usb-serial chip to waste power...

The BME680 using the Adafruit Library puts the BME680 in low power mode as a matter of course. When a measurement is requested the BME680 heats up, takes a measurement, transmits the measurement and goes back to sleep.

Capacitive soil moisture sensors have a lot of lag. Especially if soil moisture is above 40%. It's best just to keep them powered.

There is so much lag in a capacitive soil moisture sensor that to power the pump till the sensor reads, say 40%, then shut off, that a minute later the sensor will be reading 80%. Yea, it does take time for the water to spread. I run the water pump for 5 seconds, then I turn the water pump off and disable to pump operations for one minute, before allowing the pump to be enabled if needed.

PaulRB:
A Pro Micro Mini is better, especially if you remove/disable the power led. Or a bare atmega328 dip chip, running on 8MHz internal oscillator. You can get those down to <30uA in sleep mode.

After removal of the power LED and regulator a Pro Mini sleeps as well as a bare chip. My multimeter can't measure its sleep current - basically meaning it's <1 µA, negligible in most practical situations.

Indeed most sensors have a sleep mode as well, and usually there's no need to power them down.

Likely the main power draw will be the RTC chip which is a good addition to have the Arduino sleep for 5 mins on end. The alternative is waking up every 16 seconds using the WDT (I recall that's the longest timeout available), and using a few more µA in the process to keep the WDT running.

To run for a year off a 2,200 mAh battery you have to go down to <250 µA average current. So if your project uses say 20 mA when active you can have it active for 45 seconds each hour to get down to that average. Full-on transmission may use 200 mA, so you'd have a budget of 5 seconds per hour for that.

Transmitting data takes a lot fo power (relatively speaking), don't do that every 5 mins but every 1/2 or 1 hour.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.