Sterownik na bazie ESP32, pobierający informacje o godzinowych/kwadransowych cenach energii elektrycznej i sterujący przekaźnikami.
Dodano Access Point - AP do zmiany konfiguracji.
Dodatkowo dodano obsługę magazynu energii podłączonego do inwertera fotowoltaicznego.
Ze względu, że posiadam inwerter PowMr, to właśnie on zaimplementowany i przetestowany.
Obsługa magazynu polega na tym, że program wyszukuje najtańsze godziny/kwadranse w ciągu doby (ilość ustawiana w AP). W tych najtańszych godzinach, sterownik wysyła do inwertera komendę aby ten ładował magazyn z sieci z pełną mocą, w pozostałych godzinach z minimalną.
Inne inwertery mogą, ale nie muszą działać.
Potrzebne elementy:
- ESP32 4ch relay board
- SSD1306 display
- Konwerter RS232 <=> TTL
- Przewody do połączenia ESP32 z OLED
- Konwerter USB=>UART
Opcjonalnie:
Obudowa - ładnie pasuje Kradex Z110J
Proces instalacji:
- Na płytkę ESP32 4ch relay board wgrywamy najnowszy Micropython zgodnie z instrukcją:
https://randomnerdtutorials.com/flashing-micropython-firmware-esptool-py-esp32-esp8266/ - Ściągamy zawartość niniejszego repozytorium.
W pliku credentials.py podajemy swoje dane sieci WiFi i hasłoW pliku config, możemy edytować progi przełączania przekaźników w %, z 1/2 i 2/3 oraz próg zatrzymania produkcji.Plik xls w repozytorium.- Ja używam Visual Studio Code i dodatku PyMakr, ale dostępne jest wiele innych rozwiązań.
- Wgrywamy potrzebne pliki na płytkę ESP32 Relay board.
- Uruchamiamy AP przyciskiem GPIO 0 (boot)
- SSID - nazwa sieci WiFi
- Password: hasło do sieci WiFi
- Lower threshold: % różnicy ceny najwyższej i najniższej przełączający pomiędzy przekaźnikiem nr 1 i 2 [%].
- Upper threshold: jak wyżej, tylko między przekaźnikiem 2 i 3 [%].
- Minimum sale price: minimalna cena sprzedaży, cena załączenia przekaźnika nr 4 [PLN].
- Number of entries: liczba najtańszych kwadransów do ładowania magazynu energii.
- Register Address: Adres rejestru Modbus odpowiadającego za ładowanie magazynu z sieci.
- Charge register value: wartość tego rejestru podczas ładowania (wg datasheet) [A].
- Discharge register value: wartość tego rejestru podczas rozładowywania (wg datasheet) [A].
- Baudrate: Baudrate Modbus.
- Slave Address: Adres Modbus inwertera.
Jeżeli coś jest niejasne, lub coś Ci nie wychodzi. Napisz do mnie, lub porusz temat na Discord.
Przy okazji chciałbym podziękować wszystkim wspierającym.
Jeżeli podoba ci się to co robię i chcesz mnie wesprzeć w dalszych pracach nad projektem.