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.

83 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. Świeci (jak na zdjęciu). Celowo dałem taką wartość aby światło diody nie przebijało przez obudowę rozdzielnicy. Wcześniej miałem wartość 100 Ohm (obliczeniową dla 5V i zielonej LED), to w nocy w przedpokoju miałem jasno 🙂

  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 https://supla.org.
    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 — link nie działa —

    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
    1. Witaj Andrzeju.
      Byłaby możliwość udostępnienia binariów które wrzuciłeś z czasem impulsu 20ms? Zrobiłem sobie układ wszystko fajnie działa ale chyba gubi mi impulsy bo przy 2kWh na liczniku Supla nalicza mi tylko 1.6kWh. Próbując wejść na link który podałeś dostaje komunikat o odmowie dostępu.

      Michał
  6. Złożyłem i działa. Licznika używam jako wskaźnika zużycia gazu. Podłączony jest do impulsatora gazomierza METRIX, który fabrycznie zlicza 1 imp = 0,01 m³. Nie ma możliwości skonfigurowania takich wartości w ustawieniach koncie Supla. Przyjmuje tylko 1imp. = 1m3. Jakiś pomysł oprócz przeliczania na piechotę? Jarek.

    Jarek
  7. Robert Błaszczak – zrobiłem i działa jako licznik gazu (od tego rozpocząłem przygodę z suplą), jednak zauważyłem, że Wemos zlicza więcej impulsów aniżeli pokazuje licznik gazu (zawyża o około 6%). Pytanie co może być powodem rejestracji większej ilości impulsów przez Wemos. Impulsy generowane są poprzez kontaktron umieszczony w miejscu w którym wystawiane są sygnały impulsu magnetycznego. Dodatkowo zauważyłem, że Wemos raz zliczył jeden impuls ujemny, pytanie jak to możliwe? Dodatkowo co można zrobić w celu poprawienia dokładności zliczania? Czy jest możliwość dokładnego podglądu czasu impulsu, może wtedy udało by się zweryfikować przyczynę? Ewentualnie czy jest możliwość ustawienia maski w postaci 100ms bo być może kontaktron w zależności od miejsca zatrzymania tarczy licznika (skrajne punkty załączenia kontaktronu) generuje dodatkowy impuls?

    DarRiusz
  8. Witam serdecznie,

    Jestem tutaj po raz pierwszy i chciałem prosić o małą pomoc.

    Zastanawiam się nad zrobieniem licznika energii za pomocą NodeMCU v3 albo Wemosa plus dekoder światła odczytujący impulsy z diody Led licznika. Tylko że mam licznik CORAX1 i on ma 6400 imp/kWh i mam bardzo duże obawy czy ta zabawa ma w ogóle sens przy tak dużej szybkości migania tej diody. Przy 1,125 kW obciążenia dioda będzie migać jak dobrze liczę 2 razy na sekundę (7200 imp/h). Jaka jest graniczna szybkość migania diody aby układ w ogóle mógł coś rejestrować nawet z błędem ?
    Bo jeśli to nie ma prawa dobrze działać to zostaje mi jedynie OneMeter lub wpiąć się jakimś podlicznikiem do sieci, czego bardzo chciałbym uniknąć .
    Pozdrawiam

    Damian
  9. Witam,
    kupiłem moduł Wemos D1 i próbowałem wgrać firmware za pomocą wskazanego programu. Jednak po dokonaniu ustawień program nie dokonuje akcji (ani przy erase ani przy start). W Downoad Panel mam ikonkę STOP. Ustawienia zgodne ze wskazaniami, po podłączeniu płytki pojawia się COM, ale brak reakcji po próbie ładowania programu. Wersja Demos 3.1.0. Czy to znany problem?
    Pozdrawiam

    Łukasz W.
  10. Witam panie Robercie.
    Bardzo rzeczowy artykuł.
    Mam jednak mały problem.
    W instrukcji mojego licznika mam takie oto informacje:
    wyjście impulsowe SO+ SO- otwarty kolektor
    napięcie podłączenia SO+ SO- 24 V DC
    prąd podłączenia SO+ SO- 30 mA
    stała SO+ SO- (1,25 Wh/imp) 800 imp/kWh
    czas impulsu SO+ SO- 30 ms
    Jest to licznik FF LE-04d

    Pytanie brzmi: Czy napięcie 5V będzie wystarczające aby impulsy były prawidłowo zliczane?

    Damian
      1. bardzo dziekuje za odpowiedz , mam jeszcze pytanie, gdzie mógłbym kupić ewentualnie taką gotowa płytkę czy uklad? czy ktoś mógłby cos takiego wykonać za opłatą? nie wiem czy sam bylbym w stanie cos takiego ogarnąć. dziekuje za odpowiedz

        Jacek
  11. Świetny artykuł! Zbudowałem taki licznik impulsów do licznika Zamel LEM-02. Zauważyłem jednak, że „gubi” impulsy. Zmieniłem na układ z rezystorem 1k do 5V i nastąpiła niewielka poprawa. Dalej „gubi” impulsy (żeby pokazywało w miarę ok z 1000 imp/kWh musiałem zejść na 985 imp/kWh. Jaka może być przyczyna tego zjawiska? Czy jest możliwość zmiany długości impulsu na ww. oprogramowaniu?

    Przem
    1. Niestety ale ESP8266 będzie gubił impulsy 🙁 Taka przypadłość tego układu, że w momencie obsługi przerwania nie zliczy impulsu. Należałoby zastosować dodatkowy układ zliczający, z którego rejestru byłaby pobierana ilość impulsów i wysyłana na serwer Supli. Taki licznik jest wykonany przez Zamel i aktualnie przechodzi testy. Więcej na ten temat tu.

          1. Bardzo dziękuje za odpowiedź. Poczekam zatem na pojawienie się LIW-01.
            A czy ma znaczenie model licznika trójfazowego. Model WE-505 (teraz się nazywa WE-520) ma „•częstotliwość impulsów: 800 imp/kWh” natomiast model WE-513 •częstotliwość impulsów: 1000 imp/kWh
            Czy do takich „zwykłych” zadań zliczania stanu licznika w domu jednorodzinnym mają znaczenie te powyższe parametry ?

            Marcin
          2. Model licznika (trójfazowy, jednofazowy) nie ma tu kompletnie znaczenia. Ważna jest znajomość ilości impulsów na kWh. Tą wartość ustawia się w Supla Cloud i na tej podstawie wiliczana jest zużyta energia elektryczna.

  12. Witam,
    Jestem inwestorem, elektrycy utworzyli dodatkową rozdzielnie na poddaszu, gdyż chciałbym wiedzieć jakie jest zużycie samego „poddasza”.

    Mam pytanie czy jest możliwość zastosowania tego układu w podliczniku trójfazowym np. ORMO WE-505 ?
    Czy układ będzie zliczał energie z wszystkich faz?

    Marcin
      1. Panie Robercie, jednak elektrycy wbrew temu co mówili zamontowali podlicznik SIMPLIC LS3F , czy ten podlicznik będzie także kompatybilny z LIW-01 wg Pana. Czy kazać im wymieniać licznik na sprawdzony ORMO ?

        Marcin
          1. Dziękuje panie Robercie za wiadomość.
            W miedzy czasie jeszcze upewniałem się w firmie SIMET, otrzymałem informacje że jest wyjście impulsowe w tych licznikach http://www.simet.com.pl/pl/produkt/licznik-energii-elektrycznej-cyfrowy-trojfazowy-z-podswietleniem-85402010-1012.
            Wcześniej liczniki miały 2000 imp, teraz nowe modele mają 1000 imp.

            I rzeczywiście po rozkręceniu dolnej klapy widzę że są 2 wyjścia – tak jak na zdjęciu na stronie, wiec powinno współpracować ?

            Marcin
    1. Już dokładnie nie pamiętam, ale zdaje się że nie. Nie mam też jak sprawdzić, bo już nie używam tego modułu. Aby to sprawdzić samodzielnie należy przytrzymać przycisk SW1 przez około 5 sekund, aż dioda zacznie szybko migać. Moduł zacznie emitować 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. Jeśli na stronie konfiguracyjnej jest pole RESET, to w tym polu należy wpisać słowo RESET wielkimi literami. Jeśli takowego pola nie ma, to jedyną metodą jest ponowne wgranie firmware (z opcją wyczyszczenia pamięci) do Wemosa.

      1. Witam. Wychodzi na to że i tu i tu to GPIO13. Tylko ja w NodeMCU użyuwam pinu VIN gdzie Pan używa 5V. Tylko że również ja używam firmware supla impulse_counter… NodeMCU jednak wstaje, ale nie widzę żeby cokolwiek zliczało w Supli…

        CRS

Dodaj komentarz

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