Vlastní Arduino kód pro ovládání chytré zásuvky Sonoff S20 s ESP8266

Před lety jsem si koupil chytrou Wi-Fi zásuvku (vypínač) k televizi + Raspberry Pi + repro atd. Při používání mě ale hrozně štvala nutnost mít aplikaci ewLink, který se strašně dlouho připojoval na server, celá aplikace byla zbytečně nepřehledná a aplikace mě neustále odhlašovala. Teď, po letech, jsem zásuvku rozebral a přeprogramoval pro spínání pomocí služby The IoT Guru Cloud.

Zásuvku Sonoff S20 řídí populární a známý čip ESP8266 – ten najdete ve všech levných zařízeních.

Přeprogramování je velmi jednoduché, výrobce nebrání přeprogramování – třeba zamčená paměť pro nahrání, nedostupné programovací konektory atd.

Po otevření zásuvky (3 křížové šrouby) se před vámi otevře jednoduchý plošňák rozdělený na 2 části – silová, napájecí se spínacím relé a druhá ovládací s ESP8266.

Na té ovládací je čip ESP8266, externí paměť, stabilizátor a nějaké další smetí jako kondíky, rezistory.

A také tam najdete místo pro konektor se čtyřmi dírami s roztečí 2.54 mm. To je programovací konektor, kam musíte přivést 3.3V, GND, TX a RX.

!!! Přeprogramování musí probíhat bez zapojené zásuvky !!! Na vlastní nebezpečí !!!

Na stránce tasmota jsem našel obrázek s rozložením pinů, protože moje verze už je bez popisků, ale pinout se shoduje.

Celá domácnost mi běží na službě The IoT Guru Cloud, proto jsem nechtěl použít Tasmota.


Zdroj: https://tasmota.github.io/docs/devices/Sonoff-S20/#serial-connection

K zásuvce je dostupné i schéma zapojení, které je najdete na wiki iteadstudio – https://wiki.iteadstudio.com/File:S20_EU.SCH.pdf

Ze schématu je vidět, že LED – zelená je připojena přímo na pin ESP8266, GPIO13.

Modrá LED je zapojena přes tranzistor společně s relátkem na GPIO12. Tedy když svítí modrá LED, je sepnuto i RELÉ. Nelze vypnout modrou LED bez toho, aby stále spínalo relé.

Tlačítko je zase připojeno na GPIO0. A tento GPIO0 právě potřebujeme pro nahrání našeho programu.

!!! Přeprogramování musí probíhat bez zapojené zásuvky !!! Na vlastní nebezpečí !!!

Postup je následující:

Propojíme USB-UART převodník k zásuvce (ale nezapojujeme do počítače):
3.3V – 3.3V

GND – GND

TX – RX

RX – TX

Zmáčkneme tlačítko a držíme, zasuneme USB převodník do počítače, poté tlačítko uvolníme. ESP je v bootloader módu a čeká na přichozí pakety z UARTu.

V Arduino IDE programujeme jako „General ESP8266“. Po nahrání restartujte zásuvku odpojením od 3.3V napětí.

A teď přejdeme ke službě The IoT Guru Cloud.

Celý koncept zařízení – nódů a fieldů ukazuje obrázek níže.

Po registraci na stránkách si vytvoříme nové zařízení – třeba s názvem smartplugs.

Vytvoříme nový Node – třeba sonoffs20

A vytvoříme nový Field – třeba general_plug

Každý Node a Field má unikátní název, identifikátor a klíč. Některé z těchto dat potřebujete k připojení na server – jaké jsou popsány v jednotlivých příkladech.

Například:
/**

* Initialize the connection with the cloud.

*/

String userShortId = „xxxxxxxxxxxxxxxxxxxxxx“;

String deviceShortId = „yyyyyyyyyyyyyyyyyyyyyy“;

String deviceKey = „zzzzzzzzzzzzzzzzzzzzzz“;

IoTGuru iotGuru = IoTGuru(userShortId, deviceShortId, deviceKey);

/**

* Constants of the MQTT channel check.

*/

String nodeShortId = „nnnnnnnnnnnnnnnnnnnnnn“;

String fieldName = „relay“;

Device setting vypadá například takto.

Pro ovládání zásuvky potřebujete aplikaci IoT Guru Cloud. Tu najdete jak pro telefony Apple, tak i s OS Android.
https://play.google.com/store/apps/details?id=live.iotguru&hl=cs≷=US

Po příhlášení si v aplikaci můžete přidat různé prvky – grafy různých velikostí, zobrazení veličiny, tahadla, nebo i tlačítka ON / OFF. Což potřebujeme pro tento případ my.

Svůj kód jsem založil na jejich vzorovém kódu pro spínání
https://github.com/IoTGuruLive/theiotguru-arduino-library/blob/master/examples/05_mqtt_relay_android/05_mqtt_relay_android.ino

!!! Přeprogramování musí probíhat bez zapojené zásuvky !!! Na vlastní nebezpečí !!!

Kód jsem upravil pro mé potřeby, tedy:

– během připojování k Wi-Fi svítí zelená LED

– po připojení zhasne

– FW funguje s původním tlačítkem – pokud jej zmáčknu, relé se vždy vypne

– pokud svítí modrá LED, je sepnuto i RELÉ – jinak to kvůli HW nejde udělat.

– kód najdete na mém githubu https://github.com/petus/Sonoff_S20-Arduino-IoT_Guru_Cloud/tree/main

A závěrem, aplikace The IoT Guru Cloud se přihlásí během chvíle, reakce na událost – zmáčknutí tlačítka je téměř okamžitá.

Do IoT Guru Cloud neposílám jenom data pro zásuvku, ale i data z mé meteostanice, HomeMonitoru s čidlem CO2 a další.

Sdílejte článek:

Související články

Únor k nám byl velmi štědrý! Přes dvacet novinek od čtyř distributorů a přehled je skutečně pestrý. Audio modul k Raspberry Pi 5, Sonoff senzor úniku vody, jednoduchá stavebnice nebo termokamera. rpishop.cz Globisens – LABDISC ENVIRO – Environmentální laboratoř Labdisc…

Za duben jsem vybral 16 novinek ze třech e-shopů.

Esparto, jak se framework pro Arduino nazývá, vyšel ve verzi 2.0 a slibuje velmi rychlý vývoj vašeho kódu pro stále populární ESP8266 v zařízeních jako je SONOFF.

Říjen a rovnou dvanáct novinek od třech distributorů.

laskakit.cz LILYGO® T-HMI ESP32-S3 2.8 ST7789V IPS WiFi Modul LILYGO® T-HMI je multifunkční modul navržený pro různé HMI (Human-Machine Interface) aplikace.