Dzięki niesamowitej pomocy @elmaya @radzik_r @klew i wielu innych Forumowiczów udało mi się stworzyć sterownik oświetlenia. Założeniami projektu były prostota wykonania, łatwa naprawialność, możliwość montażu na szynie DIN oraz wsparcie kabla sieciowego. Całość udało mi się zamknąć w obudowie ZD1012 polskiej firmy Kradex zajmującej 12 slotów DIN.

Podstawowe dane:
- 17 wejść 230V (w egzemplarzu na zdjęciach - 16x230V 1x12V) [PC814]
- 18 wyjść 230V 5A [HF46F/12V]
- przycisk TEST załączający wszystkie przekaźniki (w kodzie można zmienić jego funkcję)
- LAN8721
- 2xMCP23017 (możliwość ustawienia adresów zworkami)
- wyprowadzone piny 3,3V, 5V, GND, IO12, IO15, IO35, IO36, IO39, IO0, RX, TX
- wyprowadzone piny I2C
- czujnik temperatury MCP9808 (możliwość ustawienia adresu zworką)
- zegar RTC DS3231
- pamięć FRAM MB85RC256V (możliwość ustawienia adresu zworką)
ESP łączy się z wyjściami i wejściami za pomocą MCP23017. Jeden z tych modułów został umieszczony na karcie wpinanej w płytę. W praktyce pomysł okazał się niezbyt trafiony, bo tworzy się dźwignia, w wyniku której karta może być wyginana góra-dół. Zakres tych ruchów nie jest duży, ale wystarcza, by uniemożliwić połączenie. Gdy karta zostanie przechylona, moduł zamiera. Poprawienie pozycji natychmiast naprawia problem. Na szczęście zbieg okoliczności (myślałem, że płytkę inaczej się mocuje do podstawy) sprawił, że jest ona stabilizowana przez wycięcie w wieku obudowy (należy je wykonać samemu). Niemniej, żałuję umieszczenia drugiego MCP w taki sposób (obudowa umożliwia montaż drugiej PCB, na której można by umieścić nie tylko MCP, ale i kartę sieciową).
Oprogramowanie
W przesłanym przykładowym kodzie przekaźniki 101-116 mają przypisane wejścia o odpowiadających numerach. Wejście 117 wyłącza wszystkie przekaźniki. Jednokrotne wciśnięcie przycisku TEST załącza wszystkie przekaźniki, a dwukrotne - wyłącza. W Cloudzie pod każdym z przekaźników można znaleźć wyzwalacz akacji przypisany do przycisku o tym samym numerze, co przekaźnik (AT od przycisku TEST jest wolny). Całość jest przygotowana pod przyciski monostabilne. Na razie nie ma obsługi termometru, pamięci FRAM ani RTC.
W kodzie należy wpisać dane serwera i mail (pola do uzupełnienia znajdują się na samym końcu).
Połączenie po kablu sprawdza się znakomicie. W połączeniu z lokalnym Cloudem opóźnienia nie ma (już po Wi-Fi jest niemal zerowe, po LAN-ie - przekaźnik klika, zanim telefon zacznie wibrować).
Całości dopełnia integracja z Home Assistantem i piękny interfejs zrobiony w Minimalist UI.
Kontekst
Modernizacja instalacji miała miejsce na przełomie sierpnia i września ubiegłego roku. Do tego czasu światłem zarządzały przekaźniki FiF BIS-412. Dawały one m.in. możliwość sterowania kilkoma obwodami świetlnymi z jednego przycisku. Ze względu na liczne błędy przekaźniki szybko się przepalały, a przyciski włączały niepożądane obwody. Dzięki Supli i temu sterownikowi to już przeszłość
Zakończenie i apel do programistów
Chciałem podziękować całej społeczności Supli, w szczególności jej twórcom i użytkownikom, którzy przyczyniają się do jej rozwoju.
@elmaya @radzik_r @klew - dziękuję za nieprzerwaną pomoc przy tworzeniu sterownika.
Na zakończenie chciałbym wystosować jeszcze jedną prośbę do osób obeznanych z programowaniem.
Proszę o dodanie obsługi MCP9808, RTC DS3231* i MB85RC256V.
W szczególności zależy mi na tym pierwszym - wypadałoby monitorować temperaturę w rozdzielnicy
*dodane przez @lukfud 10.09.2022 Dziękuję!
Pozdrawiam
Kuba
PS. Link do Githuba: https://github.com/jaku2019/ETH32

