Een profielwerkstuk van 4 6VWO leerlingen op het Griftland College.
In deze repository staat alle code die gebruikt is bij ons pws over draaiende zonnepanelen. De code runt op een Raspberry Pi 4b (2gb), en moet ervoor zorgen dat de opbrengst van 4 zonnepanelen wordt bijgehouden, hiervoor worden stroom- en spanningsmeters gebruikt. Ook worden, door middel 3 relais, twee motoren aangestuurd die elk een zonnepaneel laten draaien.
Het bestand waaruit alle andere bestanden worden aangeroepen.
make_dir()
- Maak een map als deze niet bestaat.normalize()
- Een simpele normalisatie functie.
Een bestand waarmee de berekeningen voor de positie van de zon worden gedaan. (zonspositie_old is de oude versie)
getSunLoc()
- Locatie van de zon berekenen op een datum en locatie.get_season_angle()
bereken de seizoenshoek van een dag op een locatie.
Een bestand waarmee er berichten vanuit de code naar de makers kan worden gestuurd.
send_message()
- Stuur een bericht naar aangewezen personen.
Een bestand waarmee data wordt. Deze wordt gebruikt tijdens de meetperiode.
multiplexer_disall()
- Zet alle kanalen van de multiplexer uit.multiplexer_solo()
- Zet één kanaal van de multiplexer aan, de rest wordt uitgezet.read_sensors()
- Verzamel data van alle sensors.collect_data()
- Verzamel data van alle sensors en sla deze op in./data/pws_data.txt
.
Een bestand waarmee de motor wordt aangestuurd.
switch_on()
- Zet een relay aan of uit.switch_flow()
- Schakel relais 1 en 3 aan/uit ten opzichte van hun huidige waarde. Dit wordt gebruikt om de plus- en minpool om te draaien.get_sun_percentage()
- Bereken het percentage van de zonsdag (tijd dat de zon op is) dat al voorbij is.get_sun_times()
- Krijg de zonsopkomst en ondergangs tijden van een dag.control_motor()
- Beweeg de motor wanneer nodig.
Een bestand wat de totale opbrengst van de dag berekend, en deze naar de gebruikter stuurd.
send_daily_recap()
- Bereken de totale opbrengst en het maximale vermogen (alle opstellingen samen) van de dag, en stuur deze naar de gebruiker. Omdat dit bericht steeds rond21:00
wordt verstuurd, wordt het ook gebruikt als indicatie dat de opstelling nog goed functioneerd.
Een bestand waarmee de multiplexer wordt aangestuurd. Dit bestand is een package, zie Gebruikte packages
- datetime
- time
- requests
- asyncio
- math
- julian
- ina260
- Adafruit_CircuitPython_ADS1x15
- matplotlib
- tca9548a.py
Tijdens het schrijven van deze code is de tool "Github Copilot" gebruikt.