Sun Tracking for More Solar Power – Part 1 – The Hardware
SwitchDoc Labs has built a lot of solar power systems over the past few years. Project Curacao, SunAirPlus, WeatherPi and the recent Solar Powered ESP8266. We have fooled around with sun tracking systems, but we have never built one all the way out and then gathered the data to figure out if it was worth it. Now that the sun has returned to the pacific northwest, it was time to do it.
In this series of postings, we are going to show you how to build a simple solar tracking system using a Raspberry Pi and a stepper motor. The purpose of this project is to verify experimentally the gain in power from a solar panel from using tracking versus a fixed solar panel.
All the graphs in this series of posting are done using MatPlotLib on the Raspberry Pi.
There are four parts in this series of postings.
- – Sun Tracking for More Solar Power – Part 1 – The Hardware
- – Sun Tracking for More Solar Power – Part 2 – The Software
- – Sun Tracking for More Solar Power – Part 3 – The Results
- – Sun Tracking for More Solar Power – Part 4 – The Video
SunTracking – The Theory
We never seem to have quite enough power out of a single solar cell to run a Raspberry Pi all the time. And the new Raspberry Pi’s take even more power. One improvement you can make is to add the hardware to track the sun on your solar panels. Tracking the sun can increase your solar power generation by 20%-30%.
Sunlight has two components, the “direct beam” that carries about 90% of the solar energy, and the “diffuse sunlight” that carries the remainder – the diffuse portion is the blue sky on a clear day and increases proportionately on cloudy days. As the majority of the energy is in the direct beam, maximizing collection requires the sun to be visible to the panels as long as possible.
At any fixed location the visible sun tracking across 180 degrees during an average 1/2 day period (more in spring and summer; less, in fall and winter). Local horizon effects reduce this somewhat, making the effective motion somewhere about 150 degrees. A solar panel in a fixed orientation between the dawn and sunset extremes will see a motion of 75 degrees to either side, will lose roughly 75% of the energy in the morning and evening. Rotating the panels to the east and west can help recapture those losses. This is why tracking the sun can improve your total output by about 20%-30%.
Now let’s see if those power improvement numbers are correct. Verification by experiment!
The SunTracker System
Let’s take a look at the block diagram for SunTracker.
There are two independent solar power systems, each run by a separate SunAirPlus solar power controller/data collector. Each SunAirPlus has a 3 channel INA3221 current and voltage measuring I2C unit and is each connected to an identical Voltaic Systems 3.5W 6V solar panel. We also have connected the 5V output of SunAirPlus to a 10W 10 Ohm load resistor (it is connected just to discharge the LiPo battery – more on that later).
The sun tracking solar panel is mounted on top of a 3D printed stand (ignore the cannon looking tubes on the front, they are left over from a previous experiment and then mounted on the shaft of a 5V Stepper motor. The Stepper motor is driven by a Grove motor controller.
Because the two SunAirPlus controllers share the same I2C addresses, we use a Grove I2C 4 Channel Mux to switch between them. We also are using one of the channels to drive the 5V Grove Motor Controller and the 5V stepper motor. Each of the channels can be 3.3V or 5V, so this was a convenient way of doing that and still interfacing with the 3.3V Raspberry Pi.
One thing to remember about the way a solar power charger works is that the amount of power that will be used is dependent on the LiPo battery needing the power for charging. LiPo batteries don’t like being under charged or over charged. SunAirPlus has a LiPo charging chip that regulates the amount of power delivered to the battery.
The key to setting up this test is to discharge the battery with a 10 Ohm 10W resistor through the SunAirPlus 5V power supply (this protects the LiPo battery from being discharged too much). You do this to both units so the battery is ready to take a full days worth of solar energy. If you don’t do this (which we forgot to do on March 30th) you get the solar cell voltage graph below in Figure 2. Note the solar panel voltage climbs as the battery nears full charge. Note further that the two batteries are in different charge state, with the Sun Tracked battery having a bigger charge than the non tracked battery.
Figure 3 shows the solar voltage on March 31st when the battery has been discharged properly.
We also connected a Grove 128×64 OLED display to see what is going on real time with the SunTracker project.
What are Grove Connectors?
Parts List
- – Grove SunAirPlus (two)
- – Grove DRV8830 Motor Controller
- – Grove I2C 4 Channel Mux
- – Grove Connector to Female Pin / Pin Header Adaptor (included with SunAirPlus)
- – Small 5V Stepper Motor https://www.adafruit.com/products/858
- – JST2 to Male Header Conversion Cable-https://www.sparkfun.com/products/9914 and solder male jumpers to the wires
- – Optional Grove 128×64 OLED Display
- – Raspberry Pi (any version)
Coming in Part 2
Next we will go through the software used in SunTracker.
Hello,
Instead of using usual dual photo-resistors light sensors to track the sun, why not grab realtime sun position that we can calculate or retrieve from internet according to geoloc of the device and auto-adjust the solar panel position ?
regards.
hi Dodutils,
As you will see from the next installment (the software), we are doing just that. Predicting the sun position from the time of day. The photocell light sensors on the 3D project are left over from another project and are not even connected. By they way, the other use for the photoresistors tis to detect and measure sun intensity. Can’t do that from the solar panels because the solar panel voltage depends on the battery load.
Best,
SDL
Excellent 🙂
Chip,
We just connected up a Grove INA3221 I2C Current Measurement board to the Stepper motor controller (Grove Mini Motor) and we drove the Adafruit 5V Stepper motor we used in the SunTracker system. AWe just love building prototypes and measuring things with the Grove connectors. It’s all very simple (we did modify a 50cm Grove cable to allow us to put jumper pins in the VDD line so we could measure how much current is going through the cable).
Based on our resistance measurement of the wiring in the motors (55 Ohms per winding), we expected an idle current draw about about 180mA. We measured about 170mA with the windings energized. If we used the motor this way all day, we would burn up ~11Wh. That would be far more than the ~4Wh we got from Tracking.
However, that is not how we are using the stepper motor. We turn 2 steps every six minutes. There no real torque on the motors from the panel just sitting on top of it (ignoring wind!) so we can turn the windings off for a huge power saving. Assuming we turn the motor on for 2 seconds out of 360 seconds, instead of burning 11Wh, we burn 0.061mWh which is less than 2% of our savings. So, in this system, it looks like a good trade-off. The I2C Motor control itself only takes about ~0.6mA.
We could tie down more of our assumptions (like measuring the maximum wind torque on the solar panels), but just feeling how hard it is to turn the motor when it is off, I think with this system we are covered.
Best regards,
SDL