1
\$\begingroup\$

I work on an Arduino based beehive scale project.

My circuit is wired and it works perfectly (measure temperature, humidity, weight every day at 6 AM, 2 PM and 10 PM and sends it to the server by GSM module) while powered by 5 V and 3 A.

My goal is to power everything with 12 V battery pack which will last for at least 1 year. The circuit consumes about 20-30 mA (it is because Arduino is turned on, sensors work all day long, GSM module is an active whole day, etc.) and about 150 mA while GSM is sending a message (few seconds).

I was looking for the best way to solve my problem and found this guy:

DS3231 Real Time Clock Module DS3231 RTC Module will probably be the best choice. Arduino watchdog timer is very inaccurate and consumes more power than the RTC module.

My questions are:

How can I program a DS3231 RTC module to power on Arduino at a specific time and wait for Arduino to tell him when to power off or be turned on for example 5 minutes until the server gets all the measurements? How long will the RTC module's battery (CR2302) last in my case? Is Arduino's watchdog timer in combination with Arduino's sleep mode a better and easier solution to fix that?

PS. Now Arduino works all day long and delay is specifying time when it will send measurements to server.

\$\endgroup\$
  • \$\begingroup\$ Are you sure the module can do that? \$\endgroup\$ – user253751 Feb 25 at 12:47
  • \$\begingroup\$ I'm pretty sure it can. But I don't have much experience with that so that's why I'm asking. \$\endgroup\$ – jorga01 Feb 25 at 12:48
  • \$\begingroup\$ probably not by itself... it might be able to produce an alarm signal as part of a solution though \$\endgroup\$ – vicatcu Feb 25 at 12:59
2
\$\begingroup\$

You can do that with this module, but you may need some additional circuit.

The SQW output of the DS3231 can be programmed to output an alarm (active low) when the internal time registers match a certain predefined value. You can use this alarm/SQW signal to power-up your beehive scale (arduino & Co.) e.g. with a single high-side transistor between the battery and the arduino.

After Arduino has done its work, it must reprogram the DS3231 over I2C for a new wakeup time, e.g. 15mins later. At last, the arduino must reset the interrupt which also shuts down the arduino from power.

| improve this answer | |
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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