Podróbka Sonoff Basic za $1.99 - uwaga

User avatar
Hrumque
Posts: 282
Joined: Mon Jun 27, 2022 10:11 am
Location: Opole

Post

Na aliexpresie lecą ostatnio takie wynalazki za 1.99$ :
Image
Moduł jest zrobiony - tak tanio, jak kosztuje. Oczywiście w środku nie ma ESP, a Bekken WBR2 (bezużyteczny), ale na szczęście - na płytce pionowej, którą łatwo wywalić i wstawić Tywe02S = ESP02s w to miejsce.
IMG_20221212_003812.jpg
Płytek Tywe2s mam dużo - więc konwertujemy!

UWAGA NR1 - TEN MODUŁ NIE MA ŻADNEJ IZLOACJI OD 230V !!! ((W PRZECIWIEŃSTWIE DO SONOFF ORYGINAŁÓW)
NIE MA MOWY O UŻYCIU WYPROWADZANIU CZEGOKOLWIEK NA ZEWNĄTRZ (DS18v20 itp sensorów) BO BĘDĄ NA NAPIĘCIU SIECI!

Moduł ma tak prosty układ, jak tylko się da :) Do płytki pionowej - są przylutowane tylko niezbędne ścieżki - reszta wisi w powietrzu.
+3.3v
GND (masa)
GPIO12 = przekaźnik, załączany stanem wysokim
GPIO13 = przycisk (klasycznie, zwierający do masy, czyli "logika odwrócona", wewnętrzny pullup nie jest konieczny bo jest zewnętrzny rezystor)
GPIO4 = LED, aktywny stanem niskim

ALE UWAGA NR2

Mianowicie - wgrywając oprogramowanie GG z builera i ustawiając przekaźnik i przycisk ... dostajemy Bardzo nietypowe zachowanie ;)
Z poziomu aplikacji, jak i chmury - przekaźnik możemy włączyć, możemy wyłączyć, jest super.
Z poziomu fizycznego przycisku w układzie ... NIE MA TAKIEJ OPCJI - nie da się PRZEŁĄCZAĆ stanu przekaźnika.
Potwierdza to też układ (diagnostyka na UART wypuszczana) - każde przyciśnięcie guzika to:

Code: Select all

Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Relay[0] toggle (duration 0 ms)
Relay[0] turn ON (duration 0 ms)
 **** Digital write[0], gpio: 12; value 1
Każde przyciśnięcie - objaw "turn ON" (lub jeśli zmienicie sterowanie przekaźnika stan niski/wysoki - to będzie zawsze OFF)

Owszem, mogłoby to być po prostu źle skonfigurowane w parametrach przycisku, ale NIE!, jest dobrze:
przycisk.jpg
Problem jest czysto SPRZĘTOWY: Chińczyk spierdzielił projekt i montaż ;)
IMG_20221212_003945.jpg
Mianowicie - jak działa funkcja "przełącz" w firmware GG?
1. przyciśnięcie przycisku sprawdza stan portu GPIO przekaźnika (by nie wnikać, kto i jak go wcześniej wtym stanie ustawił).
2. jeśli stan portu wyjściowego dla przekaźnika jest niski, to przełącz na wysoki.
3. jeśli stan portu wyjściowego jest wysoki, to przełącz na niski.

Taaa tylko że tutaj stan portu jest ZAWSZE NISKI!
Dlaczego?
Bo przekaźnikiem miał sterować mosfet Q1, którego bramkę steruje się napięciem (nie pobiera prądu, w uproszczeniu). Tak jest w oryginalnych sonoffach (i wielu innych modułach).
Ale chińczyk przyoszczędził - i wstawił tu tranzystor NPN! Którego bramka do masy to jak dioda, ze spadkiem ~0.7v. W dodatku - by ten biedny tranzystorek przeżył - musi być "na maksa nasycony" więc chińczyk dał rezystor R5 pomiędzy GPIO a bazę tranzystora = 1R50 czyli 1.5ohma. W efekcie - na porcie GPIO12 napięcie albo wynosi 0v (i przekaźnik nie jest włączony), albo ESP usiłuje z całych sił ustawić stan wysoki - to napięcie wynosi około 0.8v - i od strony programu nadal jest odczytywane jak stan niski...

Zmiana rezystora 1.5ohm na coś większego - powiedzmy 10Kohm - powoduje już "normalne zachowanie" od strony programowej, ale za to tranzystor Q1 grzeje się jak wściekły (bo ma za małe wysterowanie w stosunku do prądu przewodzonego) - obawiam się że długo tego nie przeżyje. Powodem jest to, że zastosowany przekaźnik ciśnie przez tranzystor pogańskie 200mA (!) - a zastosowany zasilacz wprost z sieci - bez izolacji - daje takie-sobie niezbyt stabilizowane 5-6v dla tego przekaźnika (na szczęście - później jeszcze obniżane LDO do 3.3v dla ESP - i tam jest w miarę stabilne).

Tak po prawdzie - to trzeba by ten tranzystor wymienić na jakiegoś mosfeta np 2n7002 - wtedy to ma sens.
EDIT: zmierzyłem charakterystykę - wartość R5 = 1k0 jest optymalna, już tranzystor jest dobrze nasycony, i się nie grzeje, a równocześnie prąd płynący z GPIO esp nie jest za duży.
You do not have the required permissions to view the files attached to this post.

Return to “Sprzęt”