Solar panels are an incredible alternative to burning fossil fuels for energy, and they provide additional benefits over other renewable energy types due to their simplicity and light weight. However, one major downside is the fact that solar panels are not that efficient when pointed even slightly off-axis from the sun, which is why commercial installations often have motorized mounts or limited obstructions around the panels. For mobile setups, think camping or generator use-cases, it's a big drawback, hence the need for a mobile solar tracking system. This project utilizes Particle's Monitor One cellular IoT kit to gather real-time position data, calculate where the sun is, and then move the panel to face perpendicularly- all while reporting various metrics to the Cloud.
The sun moves across the sky in an arc, meaning that ideally, at least two axes should be used to track it. The first is pitch, and it's a measurement of how much vertical tilting is required to match the panel's elevation angle with the sun's zenith angle. Second is the yaw of the panel, or the amount of Z-axis rotation that matches the sun's azimuth.
My design allows for both of these angles to be maintained through a combination of linear and rotational motion. Pitch is controlled by a stepper motor and threaded rod which rotate to move a nut back and forth linearly. Due to the hinge on one side and rotating link between the panel and nut, the entire panel assembly can be raised or lowered. Azimuth tracking presented more of a challenge, but I was able to solve it by mounting the panel's frame to some bearing and securely attaching a timing belt pulley to the linear rod. This setup allows the stepper motor to spin the pulley and therefore the entire panel- all in a compact space with minimal extra parts.
The Monitor One lacked some of the GPIO and external power capabilities that were required to spin and home a pair of stepper motors, which meant an additional motor co-processor was needed. I chose the Arduino Uno as the MCU and a DFRobot DRV8825 Dual Motor Shield to drive the motors. The firmware running on the Uno is responsible for a few things.
First, it handles all motor positioning, including home sequences and rotational/speed limits. Second, It translates all angles to the appropriate number of steps so that any other controller can use it without knowledge of the physical construction. Finally, the Uno communicates its current positions, limits, and homing/movement commands over I2C, thus letting the Monitor One simply say "Pitch to -10; Roll to 20" with minimal effort.
While some solar tracking approaches involve an array of ambient light sensors, I decided to use a more mathematical solution that could work with heavy cloud cover and flat lighting conditions. The Monitor One contains built-in GNSS and cellular connectivity, meaning that the firmware could easily grab the current time and location with great accuracy. From here, a series of calculations run that determine the sun's corrected solar angle, elevation, zenith, and azimuth based on the date, time, latitude, and longitude. The zenith and azimuth are then transmitted as the new target angles for the motor controller so it can update its motor positions for optimal efficiency.
One of the main advantages of the Monitor One over other asset tracking devices is its easily configurable sleep, location, and motion modes. When resting on the ground, the panel only needs to awake once every 30 minutes or so to get the best position. But if the panel is moved or bumped, the built-in location and motion monitoring can check if a new adjustment is required according to the settings from the Particle Cloud Console. Even better, the periodic location events can be extended through a callback method to include extra tilt and rotation information.
For now, this device is only a proof-of-concept, as there is still more work to be done on the solar tracking equations and mechanical design to allow for greater freedom of movement and stability. However, it is exciting to watch the panel move occasionally and attempt to reorient itself with the sun- no sensors required!
Comments
Please log in or sign up to comment.