- Uruchomić server.py
- Uruchomić device.py
- W celu obejrzenia wykresów z zebranych statystyk uruchomić plik diagrams.py
Aby połączyć urządzenie z serwerem, należy kliknąć przycisk na urządzeniu. Do jednego serwera można podłączyć wiele urządzeń, każdy uruchomiony skrypt device.py imituje jedno urządzenie.
- sunposition.py - serwis zwracajacy dane na temat słońca. Kąt padania promieni dla danych współrzędnych geograficznych i daty.
- Panel.py - klasa pojedynczego panelu słonecznego. Zawiera:
- metodę calculate_g która służy do obliczenia aktualne natężenia promieni słonecznych padających na panel, jako parametry przyjmuje położenie paneli oraz w którą strone są obrócone i jak nachylone, oraz czas w strefie UTC0 domyślnie przyjmowany jako aktualny czas
- metodę get_power_stats która wylicza aktualne parametry produkowanej energii
- metodę calculate_data która jako argument może przyjąć czas i przy pomocy powyższych metod wylicza I, V, G które razem z aktualnym czasem i powierzchnią panelu zwraca jako dictionary
- device.py - Symulacja realnego urządzenia obsługującego panel, przy pomocy client.py przesyła dane do serwera.
Komunikacja pomiędzy serwerem, a klientem odbywa się przy użyciu protokołu MQTT.
- server.py - Server odbierający dane od paneli i umieszczająca je w bazie danych.
- client.py - Klasa, której używa urządzenie (device) do łączenia się z serwerem.
- diagrams.py - Skrypt rysujący diagramy z danych.
Wykres przedstawiający wydajność panelu w ciągu dnia, pomijane są pomiary przy których parametr G równy 0
jak widać skutecznie symulowane są różnice w zależności od położenia słońca