In 2013 I did a “citizen sensing” summer project involving using the Arduino low-power computing platform as the basis for sensor networks. This rapidly turned into an adventure in how to use an Arduino in a low-power environment, where you want it to spend as much time as possible in its lowest-power state. This in turn led to both hardware and software hacking as I tried to get the most out of small batteries.
The motivating project itself never actually got finished, which is a shame, but was never really the main goal of the exercise. I’m happy I learned as much as I did about embedded systems design.
You can read all the posts relating to the project as it happened, complete with some circuit diagrams and explanations of how things fit together. You can also make use of the main software I wrote for the project, SleepySketch, which isn a framework for writing Arduino programs (“sketches”) that need to spend most of their time asleep in a low-power state.