piątek, 30 czerwca 2017

SONOFF - BLYNK made switch

Trzeba sobie jakoś radzić....



"Macie zapałki?
— Posłusznie melduję, panie kapelanie, że nie mam.
— E, tak, a dlaczego nie macie zapałek? Każdy żołnierz powinien mieć zapałki, żeby mógł zapalić papierosa. Żołnierz, który nie ma zapałek, jest... No, co jest?
— Posłusznie melduję, jest bez zapałek — odpowiedział Szwejk."

BLYNK reklamowany jest (także na tych stronach) jako prosty, uniwersalny i wszechstronny system dla rozwiązań IoT. Jest tylko jeden mały problem - jak na razie nie ma i nie widać na horyzoncie dedykowanych elementów sprzętowych dla tej aplikacji. A palić się chce. Jeśli nie umiemy zrobić sami pozostaje tylko jedno - pożyczyć od kogoś kto te zapałki - pardon - urządzenia już ma.
Dziś o przełącznikach firmy SONOFF idealnie pasujących do systemu BLYNK. 

Na początek najprostszy i najtańszy SONOFF - jednokanałowy przełącznik za 4-6$.

Ogólne parametry




  • Voltage range: 90-250v AC(50/60Hz)
  • Max current: 10A
  • Max Wattage: 2200 watts
  • Humidity: 5%-95%
  • Working Temp: ﹣20℃-75℃


  • Widok płytki



    Schemat

    Zerknijmy tu >>>>>
    Po pierwsze to schemat do SONOFF RF  czyli z odbiornikiem 433 MHz a po drugie ...
    No tak .... ulubiona maniera inżynierów nie tylko z Chin - wyjaśnienie poprzez zaciemnienie. Niby schemat jest a jakoby go wcale nie było. Na jakim GPIO mamy przekaźnik, LED i przycisk?
    Spróbujmy więc to rozebrać po kolei. Najpierw przekodujemy wewnętrzne oznaczenia portów procesora na te bardziej zrozumiałe dla Arduino IDE - na przykładzie modułu ESP-12E

    przyporządkowanie pinów mikroprocesora do portów Arduino IDE

    I teraz już można stworzyć nieco uproszczony schemat przełącznika SONOFF ale - jak mniemam- bardziej przydatny do dalszych eksperymentów.


    uproszczony schemat modułu SONOFF ESP8266

    Już co nieco wiadomo - mamy port GPIO12 z przekaźnikiem,  GPIO13 z zielonym LEDem (dioda jest podwójna zielono/czerwona) i GPIO 0 z przyciskiem.

    Z ciekawostek - przycisk na GPIO0 służy i do sterowania i do programowania. Brak przycisku resetu do wprowadzenia procesora w stan programowania rozwiązano inaczej. Jeśli podanie napięcia na moduł nastąpi z przyciśniętym wcześniej przyciskiem GPIO0 procesor powinien wejść w stan programowania.  I choć nie widzę nawet minimalnego kondensatora na porcie RESET utrzymującego stan 0 portu w stanach przejściowych mikroprocesora zaraz po załączeniu napięcia to ponoć takie rozwiązanie działa - sprawdzimy.

    Przyłączenie programatora

    Chińczyki założyli z góry, że przełącznik będzie przeprogramowywany. I bardzo elegancko wyprowadzili wszystkie niezbędne sygnały na punkty przyłączeniowe.


    Jak widać zadbali nawet by dało się tam wlutować piny przyłączeniowe żeńskie lub męskie. Ze względów bezpieczeństwa decyduję się na wlutowanie żeńskiej listwy przyłączeniowej.
    Drugi rząd 9 pinów to miejsce na wlutowanie modułu RF 433 MHz. Widać też puste miejsce dla procesora EFM8BB10F2G-A-QFN20 klon 8051 do obsługi modułu RF. Płytka drukowana przełącznika jest w wersji SONOFF RF w której zabrakło kilku kluczowych elementów. Ale schemat SONOFF RF jest jak najbardziej przydatny do analizy możliwości rozbudowy naszego urządzenia.
    Swoją drogą - dwa całkiem wydajne procesory w malutkim urządzeniu do przełączania jednego przekaźnika? Barok panie, barok. I ile ciekawej pracy, panie, dla programistów!

    Na początek ważne by sprawdzić jaka pamięć jest zamontowana w urządzeniu. W moim jest 25q80 - 1 MB. Są egzemplarze z mniejszą pamięcią 512KB i mogą być problemy z wgraniem nowego softu.

    Programator

    Do programowania wybrałem ulubioną przejściówkę USB/232 z układem CH340 bo ma napięcia 3,3V i działa bardzo dobrze. Jest nieco przerobiona by łatwo programować moduły ESP-01 poprzez dodanie przycisków na porcie GPIO0 i RESET. Ale tutaj są one nieprzydatne.


    Na zdjęciu zaznaczyłem piny do połączenia z SONOFF.

    Programowanie

    - Połączyć  piny  GND, Rx i Tx i 3,3V pomiędzy przejściówką a przełącznikiem
    -  SONOFF jest oczywiście ODŁĄCZONY od 220V
    - nacisnąć przycisk na SONOFF
    - włożyć programator do USB komputera
    - odczekać 2 sek
    - zwolnić przycisk (ESP8266 powinien być już w stanie gotowym do programowania
    - sprawdzić czy Arduino IDE widzi port programatora (u mnie COM7)
    - START wgrywania oprogramowania

    Niestety - Arduino IDE zgłasza błąd. Sprawdzam napięcie zasilające z przejściówki na przełącznik - jest 1,2 V. No tak zasilacz na przejściówce jest za słaby do zasilenia i siebie i przełącznika SONOFF.

    Zmiana koncepcji połączenia programatora i procedury programowania


    UWAGA - praca z napięciem 220V.  Poważne ryzyko porażenia i uszkodzenia komputera
    Poniższa instrukcja absolutnie nie zalecana dla osób bez doświadczenia z pracą pod napięciem wyższym niż 24 V. Jeśli to robisz to wyłącznie na własne ryzyko i odpowiedzialność !!!

    - Połączyć jedynie trzy piny  GND, Rx i Tx pomiędzy przejściówką a przełącznikiem
    - dołączyć kabel 220V do SONOFF
    - ODŁĄCZYĆ notebook od zasilacza !! (absolutnie nie robić tego z komputerem stacjonarnym!!)
    - włożyć programator do portu USB komputera
    - nacisnąć przycisk na SONOFF
    - włożyć wtyczkę zasilania SONOFF do gniazda napięcia 220V - zasilenie ESP8266
    - odczekać 2 sek
    - zwolnić przycisk (ESP8266 powinien być już w stanie gotowym do programowania
    - sprawdzić czy Arduino IDE widzi port programatora (u mnie COM7)
    - START wgrywania oprogramowania




    Programowanie

    Przygotowałem najprostszy program dla ESP8266 z BLYNKiem



    Dopiero za trzecim razem powyższej procedury udało mi się zmusić ESP do wejścia w stan programowania i rozpoczęcia wgrywania nowego softu. Ale poszło

    Na monitorze pojawił się znajomy komunikat


    Moduł loguje się do mojego serwera lokalnego BLYNK na adresie 192.168.2.126 (zainstalowanego na NAS QNAP).
    Do sprawdzenia działania przełącznika przygotowałem prostą aplikację



    GP13 załącza zielony LED, GP12 - przekaźnik. Widget VALUE pokazuje stan przycisku na porcie GPIO0. Działa wszystko pięknie tylko należy pamiętać o odwrotnej logice LED i przycisku- aktywnymi sygnałami są stany niskie (0).

    Następną razą popatrzymy co ciekawego można doinstalować do przełącznika by uzasadnić całą tę zabawę z SONOFFem i BLYNKiem.

    A na razie zaczekajmy na ciąg dalszy.......

    Literatura


    88

    5 komentarzy:

    1. Chciałbym podłączyć DS18B20 do SONOFF`a czy on będzie do odczytu na GPIO 14 ?

      OdpowiedzUsuń
    2. oczywiście - bez problemu
      należy tylko pamiętać o dodaniu opornika między +VCC a wejściem danych dla DS

      OdpowiedzUsuń
    3. O widzę , że większość tematów o sonoffie to kopiuj-wklej. Jeden ściąga od drugiego :) . Ale żaden nie napisze do jakiego katalogu wrzucić bibliotekę , by środowisko Arduino zobaczyło Sonoffa. Pewnie to tajemnica wojskowa.

      OdpowiedzUsuń
    4. kpisz czy o drogę pytasz?
      dziesiątki stron jak odpalić ESP na Arduino to za mało? Bo że nie ma żadnej specjalnej biblioteki na SONOFFa to mam nadzieję jednak doczytałeś. A jak temat wciąż będzie top secret daj znać - coś wymyślimy

      OdpowiedzUsuń
      Odpowiedzi
      1. To ciekawe, że zawsze ktoś nie zadowolony jest... Człowiek się stara piszę artykuł, żeby każdy mógł skorzystać a tu zaraz go o udział w spisku posądzą :)
        @(nie)młody elektronik -> wielkie dzięki tekst bardzo fajny i przydatny!

        Usuń