Learning new technology has a way of making you feel both highly intelligent (such as when you realize you can install entire software packages by typing three words) and monumentally stupid, often in close proximity to each other. I’m not sure if our battery-power problems exactly fall into the latter category, but let’s just say that the solution was not obvious to me, even after reading countless posts on Arduino forums and looking at many lines of code.
To refresh your memory, our JeeNode (formerly Arduino) and sensors have been drawing too much current from the battery, effectively killing our rain garden monitor within days. Even when we put the JeeNode into sleep mode, which is the vast majority of the time (sensor readings are taken once every 30 minutes), there was a current draw. We weren’t truly shutting it down.
I talked it through with James Tyack, and it didn’t take him long to figure out a solution: The digital pins on the JeeNode can be set to output a voltage (power); you can also toggle a digital pin on and off (“high” or “low” in Arduino terminology), so it either delivers 0 volts or 3.3 volts. If we power the sensors from the digital pins instead of the “power” pin, we can completely shut down power to the sensors when readings aren’t being taken. It’s a simple idea that just escaped me entirely.
The result? Instead of drawing 10 milliamps when idle, the JeeNode and sensors now draw 8 microamps. Forget about days of battery life—it’s possible that three AA batteries can provide power to the sensor for years.