Wkrótce firma ZAMEL wprowadzi do sprzedaży trójfazowy licznik zużycia energii elektrycznej MEW-01 współpracujący z SUPLĄ. MEW-01 będzie mierzył – oprócz zużycia energii elektrycznej – wiele dodatkowych parametrów w naszej domowej instalacji elektrycznej (napięcie, prąd, częstotliwość, moc, przesunięcie fazowe, itp.).

Innym sposobem na uzyskanie pomiarów zużycia energii elektrycznej i przesłanie ich do chmury SUPLA jest wykorzystanie wyjścia impulsowego w licznikach energii elektrycznej montowanych przez dostawcę prądu lub zamontowanie dodatkowego,  prostego elektronicznego licznika z wyjściem impulsowym. W moim przypadku dostawca energii elektrycznej (ENEA) używa jeszcze starych, mechanicznych liczników energii, więc zdecydowałem się zamontować w rozdzielni elektrycznej dodatkowy, jednofazowy (w mieszkaniu jest instalacja jednofazowa) licznik zużycia energii elektrycznej ORNO OR-WE-503. Licznik ma dwa wskaźniki zużycia energii: wskaźnik całkowitego zużycia energii elektrycznej oraz wskaźnik zużycia z możliwością zerowania. Oczywiście wyposażony jest w wyjście impulsowe typu otwarty kolektor (co jest standardem w urządzeniach pomiarowych zużycia energii elektrycznej).

Mój licznik „nadaje” 1000 impulsów na 1 kWh pobranej energii elektrycznej. Potrzebne jest więc urządzenie potrafiące zliczać te impulsy i wysyłać dane do chmury http://cloud.supla.org na nasze konto. Ja wykorzystałem płytkę WEMOS D1 mini oraz parę dodatkowych elementów elektronicznych. Teoretycznie wyjście impulsowe typu otwarty kolektor można podłączyć bezpośrednio do GPIO4 z rezystorem 1k do +5 V (z pominięciem układu z tranzystorem). Jednak tak podłączony licznik nie zliczał wszystkich impulsów.

Schemat układu elektronicznego
Schemat układu elektronicznego

Oprogramowanie (firmware) dla płytki WEMOS D1 mini zostało skompilowane na bazie kodów źródłowych SUPLA dostępnych na GITHUB’ie przez kolegę Sławka – użytkownika forum.supla.org. Parę słów opisu wymaga sposób wgrywania firmware do D1 mini oraz podłączenie zaprogramowanego licznika impulsów do chmury http://cloud.supla.org.

 

Zaprogramowanie płytki WEMOS D1 mini

Do wgrywania firmware do  modułów ESP8266 wykorzystuję program Flash Download Tools dostępny na stronie producenta układów ESP8266, firmy ESPRESSIF.
Link do programu: https://www.espressif.com/en/support/download/other-tools.
Po pobraniu wystarczy rozpakować plik i uruchomić program. Oprogramowanie (firmware) do Wemos D1 mini pobieramy z linku na końcu niniejszego artykułu lub z linkowanego wyżej forum. Firmware należy rozpakować do dowolnego folderu na dysku komputera. Wszystkie opcje programu Flash Download Tools należy ustawić zgodnie z poniższym rysunkiem (port COM właściwy dla podłączonej płytki):

Adresy pamięci dla poszczególnych plików firmware:

  • boot_v1.5.bin : 0x00000
  • esp_init_data_default.bin : 0x1fc000
  • impulse_counter_user.2048_DIO.new.5.bin : 0x01000

Polecam najpierw wyczyszczenie pamięci modułu przyciskiem ERASE. Teraz pozostaje wcisnąć przycisk START i poczekać kilkadziesiąt sekund na wgranie firmware.

UWAGA!
Płytkę WEMOS D1 mini programujemy bez połączenia zasilania całego układu elektronicznego z sieci 230 V. W czasie programowania płytka zasilana jest przez złącze USB. Dobrym rozwiązaniem jest zastosowanie złączy „goldpin” tak, aby płytkę można było w całości odłączyć od pozostałych elementów.

 

Konfiguracja licznika impulsów do współpracy z SUPLĄ

Logujemy się na nasze konto SUPLA i w zakładce Moja SUPLA aktywujemy możliwość rejestracji urządzeń.
Pozostałe czynności konfiguracji licznika impulsów najlepiej wykonywać na dowolnym smartfonie. Zaprogramowany moduł WEMOS D1 mini możemy połączyć z pozostałymi elementami. Po podaniu zasilania 230 V do całego układu po kilkunastu sekundach powinna migać dioda (z częstotliwością ok. 2 Hz). Na smartfonie uruchamiamy wyszukiwanie sieci Wi-Fi. Powinniśmy mieć dostępną sieć, której SSID rozpoczyna się od słów SUPLA-ESP8266-xxxxxxxx. Łączymy się z tą siecią (potwierdzając ewentualny komunikat o braku dostępu do sieci Internet). Następnie uruchamiamy na smartfonie dowolną przeglądarkę internetową i w pasku adresu wpisujemy: http://192.168.4.1. Powinna załadować się strona konfiguracyjna naszego licznika impulsów.

Na stronie konfiguracyjnej licznika podajemy następujące dane:

  • Network Name – nazwę SSID sieci Wi-Fi z dostępem do Internetu, w której pracował będzie moduł licznika,
  • Password – hasło do sieci Wi-Fi,
  • Server – adres serwera cloud.supla.org, na którym mamy konto, np.: srv24.supla.org. Adres serwera widoczny jest po zalogowaniu się na nasze konto na https://cloud.supla.org w żółtym „domku”,
  • E-mail – adres e-mail, na którym mamy założone konto SUPLA.

Po upewnieniu się, że wszystkie dane wprowadziliśmy bez żadnych błędów klikamy na przycisk SAVE. Teraz wystarczy zrestartować nasz licznik wciskając krótko przycisk trybu konfiguracji lub przycisk reset na płytce WEMOS. Po kilkudziesięciu sekundach nasz licznik powinien połączyć się z wprowadzoną siecią Wi-Fi i zarejestrować w chmurze SUPLA. Dioda powinna zaświecić się ciągłym światłem.

Teraz pozostało wykonanie prawidłowej konfiguracji naszego licznika na naszym koncie SUPLA. W tym celu w zakładce Moja SUPLA klikamy na urządzenie IMPULSE COUNTER, następnie na szary prostokąt z kanałem naszego licznika i konfigurujemy odpowiednio:

  • Funkcja – Licznik energii elektrycznej,
  • Podpis – np. LICZNIK ENERGII,
  • Pokaż w urządzeniach klienckich – włączone,
  • Jednostka – kWh,
  • Cena za kWh – np. 0.51,
  • Waluta – PLN,
  • Impulsy – np. 1000, zgodnie z impulsowaniem naszego licznika,
  • Wartość początkowa – wartość, którą wskazuje licznik zużycia energii.

Ustawienia zapisujemy przyciskiem Zapisz zmiany. Licznik energii powinien nam się pojawić w naszej aplikacji SUPLA na smartfonie.

Pliki do pobrania:

Schemat ideowy licznika impulsów
Oprogramowanie dla Wemos D1 mini

 

 

 

UWAGA!
Dysponuję kilkoma wolnymi sztukami płytek drukowanych. Mogę przesłać je chętnym w cenie 5 zł + 6 zł przesyłka (list polecony, ekonomiczny w kopercie bąbelkowej). W tym celu proszę o kontakt e-mail.

Wszystkie dostępne płytki zostały sprzedane.

 

 

Spodobał Ci się artykuł? Udostępnij go.

23 komentarze

    1. Jest możliwość aby w aplikacji była ikona typu „urządzenie pracuje” czyli jak coś pobiera prąd pojawia się ikona – lampka . Wszystko po to aby wiedzieć ze dane urządzenie podłaczone pod licznik już działa i już pobiera prąd. I dalej wykresy pracy -kiedy start stop….

      3op
  1. Czy układ musi być ciągle „online”?
    Chodzi mi o sytuację, że na działce układ liczyłby zużycie energii, ale np. w weekend przyjeżdżam, włączam router i on aktualizuje licznik na stronie supli.

    Marcin
          1. Cześć,

            Sprawdziłem dzisiaj tę kwestię i wygląda to następująco:
            – ESP zlicza impulsy będąc offline,
            – Dane za czas offline są równomiernie rozłożone, tzn. nie widać ile i w jakich godzinach było impulsów.
            Takie zachowanie ESP wynika z faktu, że nie posiada on zegara czasu rzeczywistego.

  2. Pingback: Chcesz oszczędzać energię? Zbuduj licznik impulsów… » Elektronika, ESP8266, Supla » poradnik zrób to sam na Majsterkowo.pl

  3. „można podłączyć bezpośrednio do GPIO4 z rezystorem 1k do +5 V (z pominięciem układu z tranzystorem). Jednak tak podłączony licznik nie zliczał wszystkich impulsów.”
    Skąd ta informacja że gubi impulsy? Proszę o więcej info. Mam podłączone bez żadnego rezystora i wydaje mi się że działa to poprawnie.

    Piotr
    1. Problemy z gubieniem impulsów występowały z licznikiem, który mam zamontowany. Na czas testów obciążałem go dwiema „farelkami”. Impulsowanie odbywało się wtedy z częstotliwością ok. 1 impulsu / 3 sek. i wtedy ESP nie zliczał wszystkich impulsów. Być może zależy to także od zastosowanego licznika energii.

  4. Robert Błaszczak – super sprawa. Zmontowałem licznik na NodeMCU v3 – działa super. Czy jest gdzieś dostępny podobny tutorial jak krok po kroku dodać do licznika 2 lub 3 czujniki temperatury(DHT11, DHt22 lub BME280), tak by się wszystko wyświetlało w aplikacji SUPLA na Androidzie?
    Tak jak jest to na stronie SUPLA.org ?
    https://www.google.com/url?sa=i&source=images&cd=&ved=2ahUKEwiu2f-Dr9XiAhVnxaYKHXiuDZQQjRx6BAgBEAU&url=https%3A%2F%2Fwww.supla.org%2Fpl%2F&psig=AOvVaw3ySh9mgeKW0wlwJ0UobGDS&ust=1559928048060059
    Przeszukałem forum i nie moge nic znaleźć … chodzi mi o prosty tutorial dla laika z screenshotami najlepiej.

    Lukasz_K
    1. Źródła do firmware licznika dostępne są na GitHubie projektu SUPLA, więc można sobie samodzielnie dodać obsługę czujników temperatury. Najnowszy firmware IMPULSE COUNTER obsługuje trzy wejścia licznikowe i trzy diody LED pokazujące stan wejść licznikowych, więc nie bardzo jest już gdzie podpiąć np. BME280. Według mnie, podstawowym zadaniem licznika jest dokładne zliczanie impulsów z urządzeń pomiarowych. Obsługa dodatkowych czujników (np. przez długie przewody od czujników temperatury) mogłaby zakłócać podstawową funkcjonalność firmware. Moduły z ESP są już tak tanie, że warto wykonać sobie elektronikę z czujnikami, jakie potrzebujemy.

  5. Zmieniłem u siebie połączenie emitera tranzystora Q1 z +5V do +3V3.
    Dzięki temu ESP8266 (zasilany z +3V3) nie jest narażony na podanie mu na wejście właściwie bez ograniczenia prądu z +5V (w czasie trwanie impulsu t.j. przy zwarciu SO- SO+).
    Wejście SO+ jest cały czas podciąganie do +5V przez R4 (producent licznika energii pisze że jego wyjście impulsowe działa w zakresie 5-24V).

    Dodatkowo binaria z https://doc-14-c0-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/djo5fbgahepq8ns2ot1ac306j04bue5f/1564905600000/12543814098710785380/*/1DyYHgsvIK1bzt8Mzkct82LnWIFySC1g8?e=download

    z czasem impulsu ustawionym na 20ms (na dłuższym nie wykrywał impulsów),

    i z podłączonym wejściem D7/GPIO13 zamiast D2/GPIO4 – akurat te binaria są tak skonfigurowane przy kompilacji.

    Działa 🙂

    PS: podziękowania za podzielenie się how-to, doświadczeniami, i binariami.

    Andrzej

Pozostaw odpowiedź Jams Anuluj pisanie odpowiedzi

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *