poniedziałek, 18 marca 2019

ROW-01 schemat porty ESP8266 i własny program BLYNK lub VIRTUINO - cz.2

Upłynęło wiele wody w Wiśle...
Ok bez poezji.
ROW-01 doczekał się w końcu swojej kolejki by uruchomić go z innym systemem niż tylko firmowa SUPLA oferowana przez ZAMEL. Ale zanim zrobię coś pożytecznego z tego niewątpliwie ciekawego i wartego uwagi modułu muszę wyśledzić podstawowy choćby schemat wewnętrznych połączeń wyłącznika. Bez tego nie zapalę nawed LEDa nie mówiąc już o bardziej złożonych funkcjach sterowania modułem.
I w tym zadaniu pięknie powinien sprawdzić się BLYNK z jego funkcją bezpośredniego dostępu do portów mikrokontrolera. No to do roboty.



Wgranie podstawowego schematu programu BLYNKa do ROW-01 okazało się nad wyraz proste. Konektor o rozstawie 1.27 mm i chiński programator poradziły sobie z tym bez problemu.
Program którego użyłem do zdekodowania połączeń sygnałów z portami WROOM-2 jest tutaj >>> 

Nic w nim oczywiście szczególnego nie ma. Ot typowy przykład BLYNKa dla ESP8266 z dodaną jedną funkcją migającego LEDa w aplikacji dla kontroli połączenia z urządzeniem.

Całość akcji rozgrywa się w telefonicznej aplikacji. Najłatwiej było odszukać port z dołączonym zielonym LEDem. W widgecie BUTTON wybierałem po kolei numery portów GPIO aż trafiłem na właściwy. LED jest przyłączony do GPIO16 i zapalny stanem niskim. Pod jakimś portem ukryty jest także przekaźnik ale przy zasilaniu modułu napięciem 3V3 nie jest on aktywny.


Dla pozostałych portów mikroprocesora dowiązałem widgety VALUE dla obserwacji ich stanów wyjściowych. Przycisk na wyłączniku połączony jest z GPIO 4. Stan aktywny to stan niski

UWAGA
Poniższy opis wymaga pracy pod napięciem 230V. Nie zalecany dla osób bez doświadczenia w pracy pod napięciem wyższym niż bezpieczne.

Podłączenie wyłącznika do napięcia sieciowego pozwala odszukać port przekaźnika. Przeskanowanie portów podobnie jak w przypadku LEDa szybko pozwala określić jego numer.

Przekaźnik dołączony jest do GPIO 5

Dla wyznaczenia portów zewnętrznych sygnałów sterujących IN1 i IN2 należy podać napięcie 230V na wyłącznik i zewrzeć te wejścia do fazy oznaczonej na wyłączniku jako L.

Zwarcie IN1 z L ustawia port GPIO14 w stan niski
Zwarcie IN2 z L ustawia port GPIO13 w stan niski

Ale jest mały problem. BLYNK nie za każdym zwarciem tych zacisków pokazuję zmianę odpowiedniego portu. Potrzeba kilku nawet zwarć zacisków by widget aplikacji pokazał stan niski portu ESP.  Podejrzewam, co jest przyczyną ale najpierw mały test


Do programu dodałem prosty licznik zmian na porcie GPIO14 i wyświetlam go w aplikacji. Poniżej po lewej stronie jest widget VALUE przyłączony do portu GPIO14 z odczytem ustawionym co 1 sekundę, 

  stan = digitalRead(14);
  if (stanp != stan) {
    licznik++;
    stanp=stan;
 }
    Blynk.virtualWrite(V1, licznik); 

No i wszystko jasne. Problem leży w sposobie zasilania zacisków IN1 i IN2 z fazy napięcia. Napięcie sieciowe jest najprawdopodobniej prostowane i obniżane w układzie prostownika jednopołówkowego co oznacza że przy zwarciu zacisków sygnał sterujący na porcie zmienia się z zera na jeden 50 razy na sekundę.


Jak widać na filmie licznik zliczający ilość zmian na porcie GPIO14 nakręca się szybko zaś wskaźnik tego portu czasami tylko wykazuje stan niski oznaczający zwarcie IN1 z L.

Podsumowując pinologię modułu ROW-01 mamy

GPIO 16  - LED
GPIO  4   - przycisk
GPIO  5   - przekaźnik
GPIO 14  - wejście IN1
GPIO 13  - wejście IN2

To w zasadzie wszystko co potrzebuję wiedzieć by móc zaprogramować wyłącznik ROW-01 jakąś użyteczną funkcją z użyciem BLYNKa lub VIRTUINO.

O tym co to będzie opowie niebawem ciąg dalszy...

DODATEK
No proszę ktoś już przerabiał ten temat - szkoda że nie zamieścił bardziej obszernego opisu
166

Brak komentarzy:

Publikowanie komentarza