Measurement and data loggin: Time based ON Relay, trigger based OFF that Relay

Hi everyone,

I'm quite new to electronics and I cant work out a good solution for my issue. Ill start by stating my goal, and then explain in more depth in case it is not clear enough.

  1. Every hour a timed relay turns the arduino ON
  2. Arduino does some measurements (waterlevel, temperature, pressure etc.) (this part is already working fine)
  3. When the measuring cycle is completed (and sometimes sent to server), arduino sends a trigger signal to turn off the relay (essentially cutting its own power)

It can not be predicted exactly how long it takes for a measuring cycle to be completed, therefore i would greatly prefer it if it would be:

  • Timed relay turns ON once every 60 minutes: This provides power to arduino
  • Arduino can do what is needed, regardless of how long this would take (it will always be in the order of seconds to one or two minutes though)
  • At the end of its cycle the arduino sends a trigger singal to cut its own power
  • 60 minutes after intial startup (step 1) it starts up again.

Reason for making it this complex and not just leaving the arduino powered and programming it, is that the arduino is used for water level measurements in remote areas. It will be solar and battery powered, and we do not want to have the arduino in sleep mode, we want it to have no power at all except when its measuring (which will quite probably be seconds per day in total only after some tuning if we can get the above process working effectively).

As a motivational incentive and thank you:
We intend to use these for flood hazard and risk analyses.
If we can make this in a simple, cheap and effective way it would cut measuring cost by a large factor. A very very low power solar panel and battery pack will then be sufficient for continuous measurements in remote areas, greatly cutting costs and allowing us to measure more and predict floods better. We hope to save lives :slight_smile:

I do not know of any relay that would operate periodically (say, turn on every hour) and then have some other signal (say, from an Arduino) turn it off, but perhaps some other reader can suggest something.

I imagine that the timer itself is going to use some current. It may be better to program the Arduino to do this task every hour, and go to a low power mode in-between times. Yes, it uses some current but short of building your own MOSFET circuit to do this, I do not think that these specifications can be met. Perhaps a CMOS 555 timer would suffice, but timing an hour is quite a trick.

You could build a circuit to do this, but vaj4088 's idea is much simpler and should work well.


Trigger an 20 sec timer by 1 hour timer.

If I would use a 1 hr timer it would be 30 mins on/30 mins off right?

So the combination would then toggle on off like this:

Relay one: On 30 mins off 30 mins (total 60)
Relay two: on 20 secs off 20 seconds (total 40)

Relay two would keep toggling on/off within those 30 minutes of power then right?

I have done some additional searching. Wouldn’t this type of device be able to acchieve exactly what I need?

My current idea is to buy two of those and make the following:

timer 1: cycle every hour: T1 is off ~58 minutes T2 is on ~2 minutes
timer 2: “single mode” : link it to the normally closed terminal, have arduino signal the unit to open it.

This would mean that the power consumption would be:
Timer 1: normaly open for 58 minutes of each hour, energized closed for 2 minutes
Timer 2: nomally closed, energized open by arduino (that basically cuts its own power).

Which leads to behaviour:

  • Every 60 minutes: 58 minutes relay is normally open, for two minutes: timer 1closes turns on timer 2 which is normally closed, which turns on arduino
  • Arduino loops over measurements (and data sending if needed), end of loop it sends a trigger singal energizing and opening relay 2.

Maybe I’m overcomplicating things, but I think this would work? Will this be efficient or could this be more wastefull then just running the arduino?

I could not find any information about how much current/power those relays use but I may have missed it. This could be a starting point if you have 5, 12, or 24 VDC available, but I see nothing there about controlling the relay by an external signal. The CD4060 may be a better idea.

You know where to start.
The best answer you get from testing.

I think you are over complicating this for no good reason.

Presumably you will be using some form of GSM module to send the readings every hour (or when required ?) - these would typically be awake and take way more power than a basic arduino (stripped down on a board)

I assume you will have some form of battery storage that is charged up by solar - it would make more sense to have a decent sized battery and solar panel that could keep this topped up when needed

Have a look at the low power stuff on here and go through some of the blogs with the things they talk about doing with putting an arduino to sleep - i would assume at this stage you are using some form of developer board - need to build a stripped back unit to dramatically cut the power


I could not find any information about how much current/power those relays use

instead relay use - 4066 - a quad bilateral switch,

Think about DS12C887 RTC Chip containing internal lithium energy source which keep the internal clock running for 10 years. The RTC has an interrupt output signal which becomes active after some programmable alarm time. This interrupt signal could be used to activate the relay to supply power to the UNO when the time of measurement arrives (1 hr interval).