niedziela, 17 czerwca 2018

Bezprzewodowy monitor mocy i energii - połączenie sensora z D1MINI


Przyjemność korzystania z gotowych modułów dostępnych za grosze na ALI jest przeogromna. W tym momencie wszyscy prawdziwi elektronicy powinni zakończyć czytanie tego tekstu. Dalej będzie jeszcze gorzej. Powtórzę - w dzisiejszych czasach heroiczne próby konstruowania układów od podstaw są bez sensu. Jedynym usprawiedliwieniem (a i to słabym) takiego zachowania są walory dydaktyczne. Z pożytkiem dla wszystkich warto poświęcić godzinę na znalezienie odpowiedniego modułu na chińskim portalu niż stracić kilka godzin by coś podobnego sklecić z elementów dyskretnych. Nawet czekanie miesiąc na dostawę zamówionych części ma sens. Uruchamia proces myślowy przed pochopnym zakupem zbędnych rzeczy. Dostarczone bezpłatnie elementy trzeba jeszcze połączyć w działającą całość. I tu dawka wiedzy elektronicznej przyda się niechybnie.
Dziś jak połączyć genialny czujnik LEDa licznika energii z D1MINI w bezprzewodowy monitor mocy i energii w naszym domu. I co z tego wyniknie.

Mam już na stole dwa główne elementy bezprzewodowego monitora mocy i energii elektrycznej

  • Czujnik impulsów LEDa - jest
  • Mikrokontroler z programem przeliczania - jest
  • Interface (po naszemu sprzęg) łączący ob moduły - nie ma

Trzeci z elementów trzeba wyrzeźbić samemu. W tym przypadku interfejs wydaje się oczywisty - wszak Pulse Sensor został wprost zaprojektowany dla Arduino. Ale czy napewno?

Czujnik licznikowego LEDa przyłączony będzie do jakiegoś portu ESP8266. Może nim być każdy poza nr 16 - na tym porcie nie można ustawić przerwań.
D1MINI pomimo zasilania z 5V USB wymaga na wejściach napięć nie wyższych niż 3,6V. Ale prawidłowe dekodowanie stanów "0" i "1" wymaga zachowania odpowiednich napięć. Po wiedzę jakie są to napięcia trzeba sięgnąć głębiej do dokumentacji mikrokontrolera.


Stan "0" dla prawidłowego działania wymaga napięcia od -0,3 V do 0,82 V (0,25 x U zas).
Stan "1" jest dekodowany gdy napięcie na wejściu jest w zakresie 2,475 - 3,6 V (0,75 x U zas)
Podane wartości są dla typowego napięcia zasilania 3,3 V.
A co będzie się działo gdy podamy napięcie wejściowe z zakresu 0,8 - 2,5 V ? Nie wiadomo. Mikroporcesor może to odczytać jako "0" lub "1" w zależności od tego jaki stan był wcześniej, może zgłupieć i przełączać się między 0 a 1 jeśli fluktuacja napięcia będzie większa od histerezy wejściowego komparatora. Generalnie dla wejść cyfrowych powinno się unikać podawania się napięć z przedziału nieokreśloności. Zagadnienie to jest ładnie opisane tu>>>

Wiadomo już co trzeba podać na pin mikrokontrolera. Zobaczmy co możemy dostać z czujnika impulsów.


Wyjście sensora jest wprost ze wzmacniacza operacyjnego. Wzmacniacz ma ustawiony punkt pracy napięcia wyjściowego na połowę napięcia zasilania (R3 i R4). A więc w stanie ustalonym na wyjściu będzie około 2,5 V przy zasilaniu 5 V i 1,7 V dla zasilania 3,3 V. Filtr górnoprzepustowy (układ różniczkujący) będzie generował piki dodatnie i ujemne (względem 2,5V) na zboczach sygnału z fotoczujnika. Oświetlenie fotoelementu na moment wygeneruje sygnał "0" na wyjściu wzmacniacza po czym napięcie powróci do wartości 2,5V. Wyłączenie światła da efekt przeciwny - na wyjściu pojawi się pik napięcia o wartości ok.Uzas - 0,3 V (jest dioda Shottky'go szeregowo w zasilaniu wzmacniacza ). Wygląda to mniej więcej tak


Takimi impulsami można sterować bezpośrednio porty ESP o ile zmniejszy się ich napięcie do 3,3V. Warto jednak zastosować prosty klucz tranzystorowy zmieniający powyższy przebieg na bardziej przyjazny dla wejść cyfrowych


Połączenie sensora z mikrokontrolerem takim kluczem rozwiązuje dwa probelmy
- dopasowuje poziomy napięć
- kształtuje właściwy przebieg napięcia podawanego na port D1MINI


Tranzystor przewodzi przez niemal cały czas za wyjątkiem krótkich momentów gdy pojawi się opadający impuls na wyjściu sensora. Dioda w kolektorze tranzystora służy jedynie dla monitorowania pracy układu. Tak ukształtowane impulsy są łatwo i jednoznacznie dekodowane przez port mikroprocesora.

Układ testowy bezprzewodowego monitora mocy i energii elektrycznej


Złożyłem na szybko testowy układ na wykonanej przez Chińczyków płytce dla modulu D1MINI


Przydały się znakomicie nadmiarowe pola lutownicze dla dodatkowych elementów. Całość jest jeszcze mocno prototypowa.


Na płytce oprócz D1MINI i interfejsu umieściłem jeszcze czerwonego LEDa do testowania "na sucho" całego układu. Symuluje on LEDa z licznika energii a częstotliwość błysków ustawiam w BLYNKu. Całość urządzenia ,jak na razie, zasilana jest power-bankiem.

Test układu w warunkach rzeczywistych

Układ jest tymczasowo zainstalowany w szafce licznikowej  i  lepiej by fachowcy z zakładu energetycznego tego nie zobaczyli


Żółty LED to ten znajdujący się w kolektorze tranzystora. Przygasa gdy czujnik wykryje błysk licznikowego LEDa.


Czujnik zamontowany do ściany szafki. Dokładne wycentrowanie na LEDa nie jest krytyczne. Pomimo słabego świecenia licznikowego LEDa czułość sensora jest na tyle duża, że bez problemów dekoduje kolejne błyski.


Tymczasowe zasilanie - wystarcza tylko na kilka godzin pracy urządzenia. ESP8266 swoje ciągnie.

Pierwsze wyniki pomiaru mocy i energii

Wizualizacja pomiarów robiona jest oczywiście w BLYNKu. Po raz pierwszy użyłem widget Super Chart - jest znakomity do takich celów.


Żółty suwak, i wyświetlacz nad nim to elementy do symulacji błysków czerwonym LEDem zamontowanym na płytce. Brązowy wyświetlacz pokazuje aktualny pobór mocy w domu. Poziom "0" u mnie to 200-300 W. Tyle pobierają włączone na stałe i pozostające w pogotowiu urządzenia: routery, serwery, telewizory, ładowarki i cholera wie co jeszcze. Wyświetlacz niebieski to licznik błysków LEDa przeliczony na kWh.
W 45 sekundzie włączyłem czajnik elektryczny i moc posdkaoczyła do 2,3 KW. Wahania mocy są niewielkie co świadczy o dużej powtarzalności pomiarów i skuteczności metody.
W 1' 25'' pojawił się błędny pomiar mocy (125 kW) spowodowany fałszywym impulsem z czujnika. Prawdopodobną przyczyną jest zbyt duża czułość sensora lub zakłócenia przychodzące od strony zasilania generowane przez mikroprocesor. Sprawa do rozwiązania.

A to pierwsze zbiorcze raporty generowane przez widget SuperChart


Czerwone słupki to wykres mocy w minimalnym interwale 1 sek. Najdłuższe słupki pojawiające się kilkukrotnie to fałszywe impulsy. Niebieska rosnąca linia  to wykres energii. Nachylenie wykresu wyraźnie zależy od bieżącej wielkości pobieranej mocy
Na drugim wykresie słupki ładnie pokazują zmiany pobieranej mocy. W czasie godziny pojawił się tylko jeden fałszywy pomiar. Jest całkiem nieźle




Wnioski

  • Dwa gotowe moduły  Pulse Sensor i D1MINI za 4 $ i prosty (wręcz prostacki) interfejs idealnie wypełnia zakładane funkcje. Że o BLYNKu już nie wspomnę.
  • Prototypowa płytka PCB przygotowana dla projektu BRAMA dzięki dodatkowym punkom lutowniczym świetnie nadaje się dla tworzenia i testowania układów prototypowych
  • Odległość szafki licznikowej od domu nie jest przeszkodą w nawiązaniu skutecznej łączności z modułem D1MINI co eliminuje konieczność stosowania jakiejś zewnętrznej anteny WiFi
  • Do rozwiązania pozostaje problem fałszywych impulsów pojawiających się sporadycznie w danych pomiarowych
  • Do zakończenia projektu od strony sprzętowej brakuje jedynie zasilacza i w  miarę szczelnej obudowy.
  • Ostateczny kształt programu urządzenia jest jeszcze tematem otwartym. Zobaczymy w jakim kierunku się to rozwinie
A póki co ciąg dalszy puka do energetycznej szafki.

Poprzednie wpisy z tego tematu
http://100-x-arduino.blogspot.com/2018/06/czujnik-led-licznika-energii.html
http://100-x-arduino.blogspot.com/2018/06/esp8266-i-pomiar-dugosci-impusu-z.html

144

2 komentarze:

  1. Ciekawe rozwiązanie. A może jednak lepiej zakupić gotowy sprzęt? Zerknij pod ten adres Być może także cię zainteresuje.

    OdpowiedzUsuń
  2. reklama ale niech ci będzie - dopisz tylko który z tych liczników umożliwia bezprzewodowy odczyt

    OdpowiedzUsuń