Hardware:
Arduino Giga R1 Wifi with Giga 480 x 800 TFT graphic sheild. (1 each)
Adafruit BNO0055 IMU (Compass & angle sensor) Product code 4646 (2 each)
Adafruit DS3231 RTC (Real Time Clock) I2C Product code 5188 (1 each)
HD30A 8CH Channel Electromagnetic relay modules with I2C controlling interface (1 each)
Adafruit Anemometer Wind Speed Sensor w/Analog Voltage Output (Product 1733)
Some Key Library's:
- (KenWillmott /SolarPosition) Library (SolarPosition.h)
- RTClib.h
Scope: Develope Arduino sketch programming and all necessary graphics files to produce a solar tracker controller. The outputs from two relay modules will control 24 VDC motors. One motor will operate a slewing drive to rotate the solar tracker mechanism East to West and vice versa. The 2nd output relay will operate a 24 VDC linear actuator. This 2nd actuator will control the solar array elevation angle throughout the day. A detailed list of variables will be provided along with crude graphic representations. The controller will have touch screen inputs via the TFT screen. Some of the manual inputs will include Longitude, Latitude, Date/time, Increment Frequency Minutes, Wind Speed Trigger (MPH).
Using the (solarposition.h) library, the sun position will be calculated many times throughout the day during daylight hours. Update frequency will be in minutes ranging from 5-60 minutes. There will be many calculated values displayed on the graphic display via several menu views. One page will be for manual inputs and the 2nd page will be for viewing while in automatic operation. Some of the inputs will be wind speed anemometer, Solar Tracker Compass direction in degrees Azimuth. The same IMU sensor (BNO0055) will input solar array elevation angle. The controller will adjust both tracker compass direction (degrees) and elevation angle (degrees) based on the variable "Increment Frequency" some value between 5 and 60 minutes. The tracker will move to a flat (horizontal) position if the running average of wind speed goes above the set trigger value. (some value between 5-30 MPH). Some of the other variables that will be displayed on the automatic run screen are current day "Sunrise Time", "Noon Apex Time", "Sunset Time" and "Next-Day Sunrise Time". Another set of variables to display are "Wind Speed" and "Trigger Wind Speed". There will also be six variables showing "Azimuth" and "Elevation" degrees for each of the following: "Tracker Position", Target Sun Position", and "Nextday SunRise Position". Again, a crude set of graphics will be supplied for a representation of what both screens could look like. A final nice to have would be wifi communication with local network requiring login credentials. All the digital variables from the solar tracker should be visible via a predetermined web page. Another nice touch but not a mandate would be the functionality to update the manual inputs from the available web page and to put the tracker in "flatten" position or "automatic operation". The solar controller will operate on 24 VDC along with the two polarity reversing output relays. The Arduino Giga will simply output the appropriate polarity to turn the slewing drive in CW or CCW direction or the linear actuator in retract or extend when required. The timing on this project is in the next 2-4 weeks. I can provide some sketch examples using the "solarposition.h" library. These are easily found and viewed via github. I will provide a logic flow chart and a full list of variables for starters, I have built my own solar tracker array, but need this controller to keep the solar panels positioned perpendicular to the sun during daylight hours. By using the actual sun position as opposed to light sensing diodes, the tracker will be able to point at the Sun regardless of overcast days. The target position and actual tracker position will require a small deadband variable to act as a debouncing safety. This project will require a good understanding of geometry, C++ programming, and PID style controller architecture. The programming for this project is fairly straightforward, but the job will require a good background in TFT capacitive touch screen design and programming. https://youtu.be/X-ujesEYZrE?feature=shared We can collaborate via skype. Looking for fixed pricing bids.