Zdalny detektor błysków LED licznika energii elektrycznej
Witam
Już od dość dawna planowałem zbudować urządzenie wskazujące bieżące zużycie energii elektrycznej w domu. Problem był taki, że w skrzynce z licznikiem nie ma możliwości podłączenia pod zasilanie. Pociągnięcie dodatkowych przewodów wiązało się z dewastacją częsci budynku.
Powstał więc bezprzewodowy nadajnik mignięć LED licznika energii elektrycznej.
W podobnym systemie mam zrobione czujniki zdalne stacji pogodowej.
Nadajnik:
Przetworzone błyski LED wysyłanie są przez układ ESP8266 za pomocą protokołu ESP NOW.
Wysyłany jest umowny numer licznika i stan ogniwa zasilającego.
W stanie spoczynku ESP pogrążony jest w głębokim śnie
Pobór prądu w tym stanie to około 160uA (mogłoby być mniej).
Fotorezystor włączony jest w układ komparatora na LMV358, którego wyjście steruje tranzystorem, który podaje stan niski resetujący układ ESP w momencie błysku LED licznika. Po wybudzeniu i wysłaniu danych, MCU zapada w głęboki sen.
Całość zasilana jest z ogniwa 18650.
Omówienia wymaga oprogramowanie nadajnika. Każdy, kto miał do czynienia z ESP NOW z odbiornikiem podłączonym do WiFi, napotkał problem zmiany kanału w nadajniku. Podłączenie odbiornika ESP NOW do sieci WiFi, skutkuje zmianą domyślnego 1 kanału ESP na kanał WiFi.
Nadajnik o tym nie wie i nadaje na kanale 1 (brak komunikacji).
W tym przypadku nadajnik ma dwa automatyczne tryby pracy.
W trybie skanowania nadajnik w trybie ESP NOW poszukuje odbiornika o określonym MAC. Wysyła do niego zapytanie kolejno na każdym kanale, aż do odpowiedzi. Po pozytywnej odpowiedzi, zapisywany jest w pamięci RTC numer kanału z którego przyszła odpowiedź. Pamięć ta nie jest kasowana przy kolejnych restartach ESP. Skanowanie kanałów zajmuje około 300ms.
Wprowadziłem też małą korektę w razie zakłóceń przy transmisji danych.
Każdorazowo po wysłaniu danych, odbiornik odsyła do nadajnika potwierdzenie, że je otrzymał. Kolejne skanowanie odbywa się po dwóch niepotwierdzonych transmisjach.
Odbiornik:
Przykładowe demo. ESP8266 podłączony do sieci WiFi, generuje stronę www. Skrypt Ajax odswieża dane na stronie.
Działanie programu polega na przeliczeniu na kW inkrementowanej timerem (1kHz) zmiennej pomiędzy kolejnymi odebranymi danymi (błyskami LED) z nadajnika. Można to zrobić w dowolny inny sposób. Także obliczanie kWh.
Konstrukcja nadajnika:
Krótki film demonstarcyjny:
Schemat:
ESP8266.
Pobór prądu. Oscylogram skanowania kanałów.
Tutaj widać 13 kanałów WiFi (około 300ms).
Oscylogram po wykryciu błysku LED:
Całkowity czas od wybudzenia do uśpienia około 180ms.
Zastanawia mnie ta druga szpilka...
W załączniku źródła nadajnika i odbiornika. Oprogramowanie MCU napisane w Arduino IDE.
Już od dość dawna planowałem zbudować urządzenie wskazujące bieżące zużycie energii elektrycznej w domu. Problem był taki, że w skrzynce z licznikiem nie ma możliwości podłączenia pod zasilanie. Pociągnięcie dodatkowych przewodów wiązało się z dewastacją częsci budynku.
Powstał więc bezprzewodowy nadajnik mignięć LED licznika energii elektrycznej.
W podobnym systemie mam zrobione czujniki zdalne stacji pogodowej.
Nadajnik:
Przetworzone błyski LED wysyłanie są przez układ ESP8266 za pomocą protokołu ESP NOW.
Wysyłany jest umowny numer licznika i stan ogniwa zasilającego.
W stanie spoczynku ESP pogrążony jest w głębokim śnie
Pobór prądu w tym stanie to około 160uA (mogłoby być mniej).
Fotorezystor włączony jest w układ komparatora na LMV358, którego wyjście steruje tranzystorem, który podaje stan niski resetujący układ ESP w momencie błysku LED licznika. Po wybudzeniu i wysłaniu danych, MCU zapada w głęboki sen.
Całość zasilana jest z ogniwa 18650.
Omówienia wymaga oprogramowanie nadajnika. Każdy, kto miał do czynienia z ESP NOW z odbiornikiem podłączonym do WiFi, napotkał problem zmiany kanału w nadajniku. Podłączenie odbiornika ESP NOW do sieci WiFi, skutkuje zmianą domyślnego 1 kanału ESP na kanał WiFi.
Nadajnik o tym nie wie i nadaje na kanale 1 (brak komunikacji).
W tym przypadku nadajnik ma dwa automatyczne tryby pracy.
W trybie skanowania nadajnik w trybie ESP NOW poszukuje odbiornika o określonym MAC. Wysyła do niego zapytanie kolejno na każdym kanale, aż do odpowiedzi. Po pozytywnej odpowiedzi, zapisywany jest w pamięci RTC numer kanału z którego przyszła odpowiedź. Pamięć ta nie jest kasowana przy kolejnych restartach ESP. Skanowanie kanałów zajmuje około 300ms.
Wprowadziłem też małą korektę w razie zakłóceń przy transmisji danych.
Każdorazowo po wysłaniu danych, odbiornik odsyła do nadajnika potwierdzenie, że je otrzymał. Kolejne skanowanie odbywa się po dwóch niepotwierdzonych transmisjach.
Odbiornik:
Przykładowe demo. ESP8266 podłączony do sieci WiFi, generuje stronę www. Skrypt Ajax odswieża dane na stronie.
Działanie programu polega na przeliczeniu na kW inkrementowanej timerem (1kHz) zmiennej pomiędzy kolejnymi odebranymi danymi (błyskami LED) z nadajnika. Można to zrobić w dowolny inny sposób. Także obliczanie kWh.
Konstrukcja nadajnika:
Krótki film demonstarcyjny:
Schemat:
ESP8266.
Pobór prądu. Oscylogram skanowania kanałów.
Tutaj widać 13 kanałów WiFi (około 300ms).
Oscylogram po wykryciu błysku LED:
Całkowity czas od wybudzenia do uśpienia około 180ms.
Zastanawia mnie ta druga szpilka...
W załączniku źródła nadajnika i odbiornika. Oprogramowanie MCU napisane w Arduino IDE.
Komentarze
Czegoś nie rozumiem choć to może przez te upały :) Skoro odczyt masz w kilowatogodzinach to dlaczego ta wartość spada? Zużycie może tylko wzrastać. Co innego jeżeli chodzi o pobór mocy ale wtedy wartości... [Czytaj dalej]
Ma kolega oczywistą rację. Zakręciłem się przy opisach. Chodzi o bieżący pobór, czyli kW. :) [Czytaj dalej]
Bardzo ciekawe urządzenie. Gratulacje! Ja również na ESP NOW buduję stację odczytującą temperatury z kilku pomieszczeń. Nadajniki również większość czasu są w trybie DeepSleep. Na ile czasu działania... [Czytaj dalej]
Mam podobne nadajniki w stacji pogodowej w systemie ESP Now. Nadają co minutę. Czas nadawania to około 220 ms. Zasilane są z 18650 3Ah. W grudniu ubiegłego roku założyłem w jednym z nich taki akumulator.... [Czytaj dalej]
Gratuluję, też chciałem zrobić coś podobnego ~16 lat temu: https://www.elektroda.pl/rtvforum/topic1086071.html ale kol. @adamjur1 mnie skutecznie zniechęcił :D Czyli fotorezystor jednak nie jest za wolny.... [Czytaj dalej]
Z fotorezystorem może być problem, bo mi się pomieszały... Ale jutro sprawdzę jasną i ciemną rezystancję i koledze napiszę. Nadajnik na zdjęciu to całość plus jeszcze jest wysięgnik z fotorezystorem, żeby... [Czytaj dalej]
Układ wręcz niezbędny w obecnych ciężkich czasach. Mowa o strasznych podwyżkach energii. Zaraz się pojawią zachęty do przejścia na godzinowe rozliczenia o różnych stawkach, gdzie nocne mogą być x10 droższe.... [Czytaj dalej]
Biorąc pod uwagę sam tylko bieg jałowy (160uA) - nieco ponad 2 lata. Uwzględniając pracę, przy założeniach 220mA (pobór podany przez internety) przez 180ms co godzinę - ok, 2 lata, co 10 minut - 1,5 roku,... [Czytaj dalej]
tak :D .. ex-or dziękuję za obliczenia. Te 220mA to w zasadzie tylko w momencie nadawania modemu. W tym przypadku to ta najwyższa krótka szpilka (kilka ms) na drugim oscylogramie. Pomiar prądu robiłem... [Czytaj dalej]
No tak, wychodzi prąd niższy o rząd wielkości. A więc przy impulsie co 10 sek można się spodziewać z grubsza jakieś 9 miesięcy. [Czytaj dalej]
Teoretycznie można jeszcze wydłużyć i wysyłać rzadziej ale więcej danych zbiorczych. [Czytaj dalej]
W tym przypadku chodziło mi o dość szybką aktualizację odczytów. Na filmie widać, że i tak to dość wolno przebiega po spadku poboru mocy. Przy poborze 100W LED licznika błyska co 37 sekund. Myślę też,... [Czytaj dalej]
Chyba słabo czytam - jak można dostać się i odczytać pomiary? Strona WWW czy jakaś usługa? Projekt ciekawy - też mam licznik Apator i migający LED. [Czytaj dalej]
A myślałeś, by wykorzystać Zigbee w ESP32-C6? Mogłoby być jeszcze oszczędniej w kwestii prądu. [Czytaj dalej]
Odbiornik na ESP generuje stronę www w lokalnej sieci na lokalnym IP. Po uruchomieniu odbiornika, na UART wysyłany jest adres IP strony. Można też w ustawieniach routera przypisać ten adres lub inny dla... [Czytaj dalej]
Dobrze rozumiem, że MCU jest w takim razie bardzo często wybudzany? Do zliczania impulsów rozumiem, ale nie musi chyba każdego impulsu wysyłać, wystarczy by robił to co jakiś czas. [Czytaj dalej]
Czyli diodka miga przy każdej pobranej Wh. Podłączysz 1kW, będzie mrugać co 3,6 s. Pytanie czy jest taka moc, kiedy dioda świeci ciągle? wtedy gdy czas mrugnięcia jest dłuższy niż czas przerwy [Czytaj dalej]
Można oczywiście zliczyć kilka błysków i wysłać np. co 5 minut. Tylko to mija się z celem tego układu. Chodzi tutaj o bieżący pobór mocy. [Czytaj dalej]
Licznik chyba ma podaną ilość błysków/kWh, a nie czas? Czas jest wypadkową ilości błysków zależnej od pobieranej mocy. [Czytaj dalej]