Currently I am working on a dual axis sun calibration device. Everything was going well so far but I made a huge mistake.
Here is what I made so far.
I wrote my code in Python 3.8. Libraries I used:
- Astropy (sun position calculation)
- RPi.GPIO (GPIO control to control stepper motor drivers) There are two classes. The following is a short description of them.
- Numpy (store and save sun position arrays)
- Matplotlib (drawing and saving graphs with time and sun position as data)
First class is responsible for:
- stepper motor movement
- stepper motor movement calculations (how many steps to move by X degrees)
- auto-home on both axes (set position to absolute zero)
- keeping track of current position of both axes
- calibrate both axes accordingly to calculated sun position array
- calibrate automaticly every X minutes (where X is the frequency that can be changed)
- calculates sun position (altitude-azimuth) for entire day and saves data in numpy array
- drawing and saving graphs using date and sun position as data
- calculates sun position current time for instantaneous calibration
- find sunrise, culumination and sunset
Here you can see how the device works so far. It's a timelapse mode to show how both axes move: Dual axis sun calibration device. Time-lapse mode
The mistake I made is that I didn't write my code with networking in mind. What I want to do is a webpage to remote control the device.
Webpage should do the following:
- display current axes positon (both altitude and azimuth)
- display current calibration frequency
- display sun position graph (graph is stored on RPi memory)
- move both axes to absolute zero
- change calibration frequency
Now I am stuck. Could you point me in the right direction what should I do next? What libraries or frameworks would you reccomend for such task?