- Mini solar panel of 8 x 6 cms. I use one of 1.5V and 0.65W, but any panel of less than 5.5V should work.
- Super Capacitors, one or two in parallel. I use this small supercapacitors of 5F and 5.5V. They are very cheap, only 1.75€ each.
- Arduino pro mini. I have removed the led and the voltage regulator to reduce drastically the power consumption.
- BME280 sensor. It measures temperature, humidity and pressure.
- nRF24L01 radio transceiver. It sends the samples to a inhouse WIFI gateway that stores the data in an Amazon DynamoDB table.
- Boost converter from 0,9-5V to 5V. It produces a constant 5V current regardless of the solar panel production or sun strenght.
- LDO converter to 3.3V (MCP1700), to power the microcontroller and components.
- Two additional regular capacitors for stabily and some optional connectors.
With two supercaps (10F) the device can run about 3 days without sun. At the moment I'm using only one. More than one day with constant dark weather is not common in our mediterranean land. And just a couple of minutes of sun is enough to fully charge the caps again. Even in a cloudy day without direct sun it slowly charges unless it's really dark.
The final schema is very simple but I have done a lot of tests, versions and investigation to achive a usable version.
The most important concept is the way that capacitors store energy. The amount of energy that you can store depends on the difference of voltage between charged and discharged. In this case the supercaps have 5V when are fully charged and deliver charge until 2.8V, when the microcontroller stops working.
For more details see: https://github.com/aresta/Supercaps#energy-stored
Based in the measured 80 hours working with the 23.83 mWh stored in the caps between 2.8V and 5V, a very rought approximation would be that it drains about 11.17 mW in average every time it wakes up.
The voltage is most of the time 3.3V but during the last few hours it is lower. So if I consider roughly 3V in average, to be in the safe side, then:
11.17 mW / 3 V = 3.7 mA
As very rough estimation of the current consumed on every wake up. It includes also the self discharging rate of the caps during the 15 minutes.
The point is that we have to make sure that we use the maximum range of voltage of the supercaps.
First we have the boost converter that outputs always 5V to charge the caps. This is very important because this way we can guarantee that we charge the supercaps up to 5V always, regardless of the power of the sun or the voltage produced by the panel. Even with a solar panel of 5V you will get much less voltage most the time, except when you are in the middle of the Sahara in summer at 12:00h. The inefficience of the boost converter is not a problem, because with a few minutes of sun the caps are fully charged, you don't need to optimize anything here.
And the LDO brings the voltage of the caps down to 3.3V. When the caps go below 3.3V the LDO just follows the voltage and the microcontroller keeps working until 2.8V. I could go even lower by disabling the brownout detection of the Arduino.
The LDO is very efficient because most of the time the voltage is not very far away from 3.3V.
The PCB design:
And the home of the device:
I know that it would work well and easily with small batteries but I wanted to do this project as a proof concept and for learning. It has been a nice challenge and I find amazing that it's posible to do so much with such small caps. And anyway it works very well.
Advantages of a solar powered / super capacitors device:
- No need of batteries, more environmental friendly. And produces it's own energy.
- No need to worry about over charging, over dischanging, heating, burning the house...
- Capacitors resist outdoor low temperatures much better than batteries.
- Super capacitors life is much longer than batteries.
- Super capacitors can charge and discharge very fast.
- All components are very cheap, about 10€...