Gauging power needs;
Energy collection;
Energy storage;
Using Arduino library
with Code Blocks;

NETWORK overview;










Energy collection techniques

Energy potential is all around us and till the universe settles via entropy into a permanent luke warmness, there will be an abundance of energy.

The most common types of energy that we use are mechanical, electrical and thermal. We use them directly to lift things or warm ourselves but most often we convert the energy into the movement of electrons creating an electric potential. This potential is what drives an overwhelming majority of our current technology and is what I used for the will O’ the wisps project, so it is what I will focus on.

To create a voltage or electrical potential a couple different methods can be used. The most common are Creating a magnetic flux in a wire. Direct manipulation of electrons on a chemical or energetic level.

There are many techniques of achieving these processes the most common are moving a copper wire through a magnetic field and using photovoltaic to allow the interaction of photons with electrons. These are the last stop of many chains of power transfer that we use everyday to collect energy. From the heat released from oil to the mechanical energy of water in hydro electrical dams, these techniques are what link the power to us as electricity.

So the question becomes how and what in the environment can be used to power the function we are trying to create. Oil would be a great source if you lived somewhere that it just burbled up from the ground and you could set it on fire extricating its energy potential. Unfortunately this is not the case for most applications, so other sources have to be looked at. Mechanical energy is very prevalent, from your bodies motion to the force of the wind over a landscape. This energy is caught using the magnetic flux technique and can be very useful especially in objects that move.

Magnetic induction:

See here for flux generation

Projects that use flux
Shake flashlight
hand crank electricity
wind power
wave power
For outdoors applications solar energy is the predominate source of energy. This can be translated into

Thermal creation of energy:

Using the radiant heat energy to drive a magnetic flux process like steam to turbine or using the heat directly to warm houses or water.

Solar power:

What I used for this project was the photovoltaic effect.

The basis of the solar panel is a P-N junction. This junction keeps the charges separate under normal conditions, creating no imbalance of power. When a photon hits the panel it energizes the charges to such a point that they are able to jump the gap and cause an electrical imbalance in the panel. This imbalance is what is called the voltage, and the actual electron movement is what is called the amperage.

Solar panel overview:
Here is a link and explains more than you could ever want to know about solar panels
There is a huge amount of data available on photovoltaic im going to focus on the practical applications of deciding on which panel and where to put it for micro power applications.

Solar cell over view

There are two main types of solar cells

Polycrystalline Si
Less expensive less efficient


Monocrystalline Si
More expensive more efficient

and at the most efficient convert about 35% of solar energy into electricity.

The panels come in all shapes and sizes now even flexible panels are available with good power outputs. An important part of picking a panel is to gauge the size to cost ratio of what you need.

Here are some suppliers I found to be reasonable.
a little expensive

How to gauge needed Energy output:

When choosing a panel you have to figure out what the power needs are and if the panel can produce it. Most manufactures rate there panels in Maximum Watts, this can be a bit misleading. There are many factors that effect the panels performance I found these things to have a large impact:

The ambient temperature, it can produce up to a 2 volt difference in normal operating conditions: Shade, shade is a huge factor if even part of the panel becomes shaded the panel feels it like a open circuit and the power drop significantly. Angle, the angle of the panel in regards to the suns position causes a large difference in the amount of energy that is recived by the panel. Load size, the amount of current you are drawing has a big impact on the ability of the panel to produce power.

So the basic method of calculating what the power output of a panel is, requires multipling the operating voltage (V) be the operating current (I) or V*I= WATTS. Watts are a good way to look at the power output of a panel, it gives you an idea of the total power that the panel can produce. Because the specific voltage or amperage alone can be adjusted after the panel with devices like a DC to DC converter.

Panels can be combined in series or in parellel to either increase the voltage or the amperage respectively. In this way the solar panel can be viewed as a battery and you can use the below link to understand the relationship just replace n your mind battery with solar panel.


Once you have your specific voltage and amperage of the panel array you have to match it up with your systems voltage and amperage needs. There are many ways of transferring that power to your system you could employ a dc to dc converter to then step up (make the voltage higher the amperage lower) or step down (make the amperage higher and the voltage lower) the voltage/amperage. Or you could use a low dropout linear regulator like a lm7805, this would require looking at the spec sheet of your device to find what its power needs are to produce the operating power your circuit needs.

For instance: lets say you needed a 5V output at 100ma. You decide on using a lm7805 to regulate the voltage for you. On the spec sheet it shows

Input Min Voltage

7.2 Volt

Input Max Voltage

35 Volt

This means you need to give the lm7805 at least 7.2 volts to recive a constant 5v output and no more than a 35v. Another thing to compare is what the operating current or power dissipation of the lm7805 is needed to regulate  to 5v at the different input ranges.

you can see that as you raise the input voltage the the amperage needed to adjust the voltage goes up this causes a waste of power, so you need to match your panel as closely as you can to the needs of the regulation system you are using to prevent excess power needs. The ideal would be to have a panel perfectly matched to your systems power needs, that way it would transfer all available energy into the system. But that is almost never the case and some form of regulation is needed.

The best solutions I have found are (in order best to not so best)

CMOS low dropout regulator:
these have the best power in to power out conversion with the least amount of loss the downside is a low input voltage range so you have to match your panel to the converter well.

Regular dropout regulator:
next best power conversion higher operating current needs but larger input range.

DC DC converters:
I found most to be actually less efficient than the above regulators. The positive is large input voltages and like a transformer you can step up a panels voltage or step down a panels voltage making them a good tool to use with solar panels. They also cost more though on average.

So once you have an idea of the power needs of the regulator you would look for a panel that operated in that range.

Using the lm7805 and requiring a 5v output at 100ma you would need to find a panel that would give at least 7.2V at 104ma to cover your needs.

This is almost never the case because of the changing fluctuations in the available solar energy. A long term energy approach is usually taken, which looks at the available power the panel can source over a day or even month of use. This calculation takes into account the changes in light levels, the angle of the sun and the duration of the day.

Below are links on how you can calculate that energy potential:

Solar panel angle positioning:
This is used to calculate and aim the panel at the correct degree of the sun off the horizon.

Available solar radiation maps:
You can use these to get an idea of the available solar energy available in a given area


Then there is always the direct approach to actually test and record how your panel does in a real life situation. There are a couple ways of measuring the amperage of a panel one way is to use a multimeter or a current sensor. Another cheap alternative is to use a shunt, a shunt is basically a low resistive component that is set in line with a load. basically a shunt works by measuring the voltage drop across a resistor as more current is allowed to flow through. It is based on ohms law
 So you can keep track of the fluctuating voltage to tell you what the current is at that moment.

Here is a good reference:

I made this small circuit paired up with a microcontroller to test and record the available power.

the circuit reads the analogue pin intermittently and stores the value as a byte in the EEPROM space of the arduino mini. The micro controller interacts with a java applet that logs the received data and graphs it.
Output graph test sequence:

To transfer the data you turn the microcontroller on and wait for the led to blink, once it has blinked run the java applet and it will retrieve the data.  On start up of the microcontroller there are two pin selects you can choose:

If pin 5 (DIGITAL PIN 2) is high, the module will flash the beginning led and wait for the java applet to talk with it. Once the applet is started it reads out the contents of its EEPROM memory into the java program and it is graphed. If pin 12 (DIGITAL PIN 9) is high it erases the EEPROM memory on the chip replacing them with all zeros. The way it operates is by taking an analogue reading on the positive lead of the solar panel (the red wire) I then do a conversion on it to get the amperage.

The conversion is as follows:

Current can be found using a shunt (in series resistor ). you take the voltage drop across the resistor and use V(oltage)= I(current)*R(esistance) to derive your current flow.

I used a 47 ohm resistor. To get a voltage output range that matched the arduinos 0-5V analogue read scale. The panel I was measuring was a max 8V panel at 300mA so to get the correct range I did :

arduino gives a analogue voltage reading of 0-5v represented as a  number from 0-1023 therefore:
5v/1023 = .0048 volt per 1 of analog read
So we need a resistor that will give us a 1mA change every .0048 volts
.0048v/.001A = 4.8ohm resistor.
If you have amperage number bigger than 255 and want to store it in the EEPROM as bytes you would divide and get about:
.019V per 1 of analog read, if divided by 255
In the  code take analog in, times it by .0048 to get voltage
(float) take voltage divided by your resistance to get amps,
times by 100 to get milli amps. cast as byte
save as a byte 0-255 in eeprom
below is the circuit

To not burn out your analogue input you can use a voltage divider