wtorek, 6 marca 2018

Mikrokontroler + przekaźnik czyli nieśmiertelny duet z BLYNKiem w tle - ESP-01 relay

[UZUPEŁNIENIE]
Do czego jest ten mikrokontroler?
Ten mikrokontroler jest do niczego.
Żart? Niekoniecznie. 
Dziś kolejny odcinek opowieści jak 160 MHz procesor został wynajęty do sterowania ..... przekaźnikiem. A nawet dwa mikroprocesory do sterowania TYLKO JEDNYM przekaźnikiem. To dopiero dowcip dnia. A więc dalej tłuczemy orzechy mikroskopem (elektronicznym).

Możliwości mikrokontrolerów rosną zgodnie z prawem Moor'a. Ale ich wykorzystanie pozostaje w zasadzie na niezmienionym poziomie. Mocno zaskoczył mnie przypadek EFM8 firmy Silabs. Stary dobry 8051 został obudowany nieprawdopodobnie bogatą matrycą pryferiałów, które można dołączać dynamicznie praktycznie do każdego portu.  No i ?.. Ten niesamowity procesorek w SONOFF RF Bridge jest jedynie pomocnikiem jeszcze większego ESP8266. Dwa procesory o ogromnych możliwościach obsługują  skromną transmisję 433 MHz, sterują ledami przyciskiem i buzzerem. Jest jeszcze WiFi ale to jakby w pakiecie i przy okazji. Na jednym takim procesorze 30 lat temu można byłoby zbudować obrabiarkę numeryczną a dziś ..... ech łza się w oku kręci.
Ale dziś jeszcze większy techniczny barok - dwa procesory do jednego przekaźnika to jest coś co może zadziwić nie jednego elektronika.

Swego czasu opisywałem tzw. inteligentne przekaźniki (tu>>>  i tu>>>), które PICom zawdzięczały świetne jak na takie drobiazgi, funkcje. I oczywiście z bezprzewodowym sterowaniem opartym na transmisji 433 MHz. Wprost idealne jako elementy składowe dla systemów Smart Home.  

Świat a w zasadzie Chińczyki poszli jeszcze dalej - do nieśmiertelnego przekaźnika podpięli swój ESP8266 oferując kolejny klocek systemów IoT. Za cenę 1-1,5 $ dostajemy bazę dla bezprzewodowego przekaźnika tym razem w technologii WiFi.  W przeciwieństwie do SONOFFa (6$) oferowana jest jedynie płytka przekaźnikowa z miejscem do zainstalowania własnego ESP-01. Żadnego zbędnego oprogramowania, żadnych autorskich programów IoT. Czysty hardware. Dla mnie bomba. Znalazłem dwa różnie wyglądające modele i oczywiście zamówiłem (Aliexpress).
Przyszły po miesiącu i zaczęła się zabawa....

Pierwszy inteligentny przekaźnik wygląda bez zarzutu. Miał co prawda być taki


A przyszedł podobny lecz z opto-izolowanym przekaźnikiem.



Za tą samą cenę lepszy? - oczywiście biorę. Na płytce nic praktycznie nie ma - przekaźnik i LED przyłączone do portu GPIO 0 (? ciekawie) i przycisk RESET stabilizator 702 i oczywiście gniazdo do ESP. Całość zasilana z 5V. To wszystko co potrzeba by bez problemów zrobić z tego mocno inteligentny przekaźnik sterowany bezpośrednio z BLYNKa. Przy zasilaniu z sieci trzeba dołożyć jakiś zasilacz ale to nie problem - 5 V zasilacze USB + kabelek (łącznie ok 1$) znakomicie sprawdzają się w tej roli.

Tutaj znalazłem trochę wiedzy na jego temat + jakieś aplikacje do sterownia za pomocą telefonu (a jednak!). Najważniejszy ze wszystkiego jest zawarty tam schemat płytki




A jak to działa? Znakomicie!

Wgranie programu to chwilka dzięki mojej ulubionej przejściówce z przyciskami 



I za chwilę można już zdalnie, za pomocą BLYNKa, załączać przekaźnik i połączony z nim LED sterując portem GPIO 0. Dodatkowo mamy drugi LED na ESP-01 przyłączony do portu GPIO 2. SUPER!!



Należy pamiętać jedynie, że logika obu tych wyjść jest odwrotna - sygnałem sterującym jest ZERO. 

No to  biegnę do sklepu nabyć drogą kupna jeszcze kilka sztuk tego fajnego układu do domowej automatyki. A i nie należy zapomnieć o dokupieniu ESP-01S. To taka poprawiona wersja ESP-01 między innymi poprzez przyłączenie wewnętrznego LEDa do portu GPIO 2 a nie Tx co daje nam dodatkową możliwość sygnalizacji. Na upartego i przycisk na płytce dałoby się przełączyć na Tx lub Rx ale to już za dużo zachodu. I bez tego ten drobiazg znakomicie wpasowuje się całą filozofię systemów IoT.


Z drugim przekaźnikiem zapowiada się już znacznie gorzej.....

Po lewej stronie 8 nóżkowy scalak nie wygląda sympatycznie. 
No tak dodatkowy mikrokontroler STC15. Do jednego przekaźnika i LEDa dwa mikroprocesory!! Pogłupieli kompletnie od tej nadprodukcji.
STC15F104W to też klon 8051 z 35 MHz zegarem. Ciężko znaleźć jakieś dokładniejsze informacje na sieci. Tu opis mikrokontrolerów tej serii ale brak w wykazie tego modelu.

Schemat ukladu jest trudno odnaleźć w zasobach internetu  ale na spodzie płytki w niektórych modelach widnieje adres producenta. Nie udało mi się odszukać tego dokładnie modelu ale zakładam że wszystkie one wykonane są na jedno kopyto. A z opisu wynika, iż moduł pełni podwójną rolę:
  • zdalnie załączany przekaźnik poprzez WiFi
  • przekaźnik załączany z USB
A z tego wynika iż STC15 robi tu za konwerter USB/RS i wysterowuje przekaźnik. Rola ESP-01 została ograniczona do bezprzewodowego przesyłu kodów załączania i wyłączania przekaźnika w trybie pracy jako AP (punkt dostępowy sieci WiFi) lub jako STA  (stacja).
Są nawet podane kody jakie należy przesłać by sterować tym przekaźnikiem
  • Open the relay: A0 01 01 A2
  • Close the relay:A0 01 00 A1
Kody te ESP przekazuje w sposób transparentny do STC  i one powodują zmianę stanu na porcie P1.2. Ponadto Chińczyki wyprodukowali do tego jakiś software mający za zadanie sterować całym tym złożonym urządzeniem. 
Czy można z tego zrobić jakieś użyteczne ustrojstwo? Oczywiście tak.

I kilka osób już nad tym pracuje choć widać że temat jest jeszcze świeży.  W linku proponuje się usunięcie rezystora łączącego STC z tranzystorem sterującym przekaźnikiem i przełączenie bazy na port GPIO 2 poprzez rezystor i diodę. Jak ja to lubię.

Po godzinnych poszukiwaniach udało się jednak odszukać stronę ze skromną dokumentacją modułu.
A w niej schemat


Rzeczywiście wyrzucenie R3 i przyłączenie Q1 do GPIO2 pozwoli sterować przekaźnikiem z ESP. Ale istniej łatwiejsze rozwiązanie. 


Łączymy dwie sąsiednie nogi  6 i 7 STC wcześniej odcinając go od napięcia zasilania. Tym sposobem sterujemy przekaźnikiem z ESP portem Rx. 
Tylko czy ma sens kupowanie takiej płytki wymagającej przeróbek szczególnie gdy oba moduły są praktycznie w tej samej cenie?

Zdecydowanie polecam wersję nr 1 modułu przekaźnika - mniej kłopotów więcej możliwości

[UZUPEŁNIENIE] - dzięki podpowiedzi kolegów z forum BLYNKa

Czy koniecznie trzeba przerabiać przekaźnik wersji II by zrobić z niego użyteczny moduł w systemach z BLYNKiem?
Oczywiście że nie.
Nie mamy co prawda bezpośredniego dostępu do sterowania przekaźnika z portu ESP-01 ale mamy w BLYNKu piny wirtualne, którymi możemy odpowiednio wysterować mikrokontroler STN.

Połączmy więc zmianę wartości pinu wirtualnego z procedurą wysyłania sekwencji kodów uruchamiających przekaźnik. O np. tak

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

byte relON[] = {0xA0, 0x01, 0x01, 0xA2};
byte relOFF[] = {0xA0, 0x01, 0x00, 0xA1};

char auth[] = "auth";
char ssid[] = "xxxx";
char pass[] = "xxxx";

BLYNK_WRITE(V1)
{
  int pinValue = param.asInt();
  if (pinValue == true) {
    Serial.write(relON, sizeof(relON));
  }
  else  {
    Serial.write(relOFF, sizeof(relOFF));
  }
}
void setup()
{
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass);
}
void loop()
{
  Blynk.run();
}

Pod wirtualny pin V1 podpinamy widget BUTTON i ..... po kłopocie.
Żadnego cięcia ścieżek żadnych lutowań. BLYNK to jest to!

[Koniec UZUPEŁNIENIA]

Co dalej z inteligentnymi przekaźnikami z bezprzewodowym WiFi ? Może uda się coś wymyślić o ile ciąg dalszy nastąpi......


121

4 komentarze:

  1. Very interesting. I agree it's a bit mad to use all this computing power to control a relay. But it's handy for learning the ideas of IoT. I plan to use one relay to control the program pin of another ESP8266 which will be reading data from a BME280 sensor and sending it out over my LAN. Then I can has the kit in the workshop and program it from my laptop in the warm of the house. Great blog. Thanks. Patrick

    OdpowiedzUsuń
  2. Witam,
    a czy da się podpiąć przycisk dzwonkowy aby przełączyć ręcznie stan przekaźnika?

    OdpowiedzUsuń