I am after a bit of guidance with a project. It has been a good few years since I did any electronics, so I might well be a bit rusy or missing a few things. So, if there is anyone out there that would be willing to cast their eye over the attached circuit diagram and point out the errors, I would be most grateful.
I am making a remote monitoring station, with Arduino Uno, GSM Shield and a couple of environmental sensors. The goal is to take reading every 20 minutes or so, and upload the data to a server. I have the thing working, apart from a few problems;
- Occasionally, when a GSM connection is lost at the wrong time, the GSM library/shield hangs. There has been a bit of discussion about this in the fora, and a watchdog timer seems to be the consensus.
- The power consumption is quite high. Even not doing anything, the Arduino+GSM shield draws ~80mA. One of my sensors also draws ~80mA. For most of the time, this is a waste of battery life. I am solar powered, with a 12V car battery.
Build a combined hardware watchdog timer and power-off timer. The TLC555 in astable mode is a simple, low cost timer that seems to be suitable.
The timer needs to power up the board for a maximum of 10 minutes at a time (5 minutes for the sensor to settle, and 5 minutes to attempt to send out the data). There are 3 possible outcomes;
- Data sent correctly - terminate the timing cycle, power down the Arduino and wait for 20 minutes before trying again.
- Data send failed - terminate the timing cycle, power down the Arduino and wait for 5 minutes before trying again.
- Arduino hangs - watchdog times out, power down the Arduino and wait for 5 minutes before trying again.
Having 2 different time delays complicates things, but I can deal with that in Arduino software by counting 4 x 5 minute delay periods and having a count stored in EEPROM memory. The components for a 5 minute delay time are more realistic as well.
The attached circuit diagram is what I have come up with.
Upon power up, C2 is discharged, The TLC555 output on pin 3 is high and the Arduino is unpowered. pressing S1 allows C2 to charge rapidly, to save having to wait for the timing cycle. To save the cost of a larger, high quality timing capacitor, the switching threshold voltage is increased by R4 and R5. C3 (hopefully) reduces instability from power line fluctuations. C4 (again, hopefully) slows the turn-on of Q2 to reduce inrush current to the capacitors on the Arduino board. Once the Arduino has completed what it is doing, it takes digital pin 5 high, and this discharges C2 via R3 and Q1, advancing the timing cycle and removing power from the Arduino and sensors.
Corrections, suggestions are all welcome! I am in Canada, and am also looking for a place to order the bits from…