Urządzenie do zdalnego odczytu energii #projekt

Posted by

Zawsze mnie ciekawiło ile energii elektrycznej jest zużywane w ciągu dnia, jak wygląda jej dzienny przebieg, albo jaki pobór jest w nocy. Pomogłoby to na pewno zoptymalizować koszty i wyłapać wszystkie niecelowe upływy (awarie sprzętu, itp.). No dobra, ale jak to można zrealizować?

Na razie nie chciałem montować tego układu w głównej skrzynce rozdzielczej, ponieważ są tam jeszcze stare bezpieczniki, nie ma szyny DIN ułatwiającej montaż większości elementów, oraz jest tam mało miejsca. Krótko mówiąc, rozdzielnica wymaga modernizacji, ale na to przyjdzie jeszcze pora. Na razie zamówiłem taki licznik energii, jednofazowy Bemko A30-BM015-L za ok. 50 zł. Już miałem z nim odczynienia wcześniej więc wiem ze można polegać na jego odczytach. Licznik dysponuję zarówno sygnałem świetlnym, jak i zwarciowym o długości ok. 90 ms na specjalnych wejściach sygnałowych. Jak można się domyślić wykorzystałem tę drugą możliwość. Gdybyśmy chcieli umieścić odczyt z licznika głównego, będzie tam do dyspozycji prawdopodobnie tylko zwykła dioda migająca raz na 0,001 kW/h, wiec musielibyśmy użyć fototranzystora.

Planowanie

Część elektroniczna jest na tyle prosta, że nie trzeba było nic planować. Mikrokontroler, jaki wybrałem to oczywiście ESP8266-01 z racji swojej niskiej ceny i wysokich możliwości. Zasilanie, na jakie się zdecydowałem to 5V, ze względu na mały rozmiar zasilaczy impulsowych (od telefonu) oraz malej starty mocny na stabilizatorze 3,3V.

Więcej czasu poświęciłem natomiast na pomysł jak to sensownie umieścić w rozdzielnicy.

Prace

Po zmontowaniu całości na płytce stykowej, czyli uC oraz switch’a symulującego odczyt z licznika, napisałem program na płytce NodeMCU, gdyż poza podłączeniem do komputera nic więcej nie musimy robić, aby uruchomić na niej w pełni działające oprogramowanie. Późniejsza zmiana na inne ESP to jedna zmienna w configu i podłączenie kilku dodatkowych kabelków.

Część elektroniczna

Jak widać na schemacie poza stabilizatorem LM317 nie ma nic bardziej skomplikowanego. Wszystkie pozostałe elementy to minimum, jakie musi być, aby uruchomić poprawnie ESP. Wejście na odczyt impulsowych zostało podciągnięte do zasilania, aby przy starcie uC uruchomił się w odpowiednim trybie.

Po zlutowaniu i dodaniu zasilacza układ prezentuję się następująco:

Obudowa na szynę DIN

No dobra, ale układ wypadałoby jakoś zamontować w rozdzielnicy. Są specjalne odbudowy na szynę DIN, które to ułatwiają, ale ja zdecydowałem się na druk 3D, ze względu na to ze projektując PCB nie brałem pod uwagę dostosowania miejsc z wejściami pod otwory w obudowie. Wykorzystałem ten projekt, gdyż dysponuje on już kilkoma gotowcami pod najpopularniejsze płytki, więc dostosować go pod swoje wymagania nie było trudno. Rozstaw otworów pod śrubki zmodyfikowałem pod moją płytkę i całość umieściłem w rozdzielnicy oraz podłączyłem. Przerobiony projekt 3D znajduje się w repozytorium projektu.

Oprogramowanie

Program został napisany w języku C++ z użyciem biblioteki Adruino. Jest bardzo prosty, gdyż jedyne co robi to czeka na sygnał z licznika i zwiększa wartości zmiennej o jeden. Początkowy stan licznika możemy ustawić poprzez endpoint konfiguracyjny opisany w dokumentacji rest’owego api projektu. Stan jest zapisywany w pamięci nieulotnej EEPROM więc po awarii zasilania czy resecie uC licznik się nie wyzeruje.

Całość w rozdzielnicy prezentuje się następująco (gdyż jest to rozdzielnica głównie przeznaczana do testów nie dbałem zbytnio o wygląd podłączeń):

Aktualizacja #1

W najnowszej wersji oprogramowania zmieniłem bibliotekę do serwera HTTP na asynchroniczną plus dostosowałem API do najnowszych potrzeb, czyli wszelkie akcje mają schemat `/api/v1/actions/nazwaAkcji`. Nie tworzyłem wersji drugiej API, gdyż jest to na razie moje jedyne urządzenie więc utrzymywanie starej wersji nie miałoby sensu.

Aktualizacja #2

W kolejnej wersji zmieniło się sporo, ale tylko po stronie oprogramowania. Doszła nowa biblioteka do obsługi EEPROM oraz do połączenia z WiFi. Zostało dorobione wersjonowanie aplikacji, oraz kilka mniejszych poprawek. Dodatkowo cały kod aplikacji jest dostępny już w jednym repozytorium, które łączy w sobie całe oprogramowanie sterowników oraz bibliotek pisanych przez mnie.

Podsumowanie

Urządzenie jest bardzo proste i nie wymagało dużo pracy. Działa bez zarzutu i spełnia swoją funkcję. Kiedy tylko zmodernizuje główna rozdzielnice w domu to niezwłocznie je tam podłącze.

Koszt jest naprawdę bardzo mały, zmieści się na 100% poniżej 30 zł. Mnie osobiście wyniósł 0 zł gdyż wszystkie elementy miałem na stanie.

Plany na przyszłość

Rozmyślałem również nad podłączeniem podobnych urządzeń do licznika wody oraz gazu, żeby mieć bezpośredni podgląd na to, kiedy i w jakiej ilości są zużywane.

Dzięki odczytowi poboru wody mogę np. dowiedzieć się o awarii rury w domu. Kiedy dom stoi pusty nikogo w nim nie ma, a zużycie wody będzie rosło cały czas to może świadczyć o jakiejś usterce i pozwolić odpowiednio zareagować.

Linki i źródła

print

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *