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:
Ukaž světu,
že jsi Maker!
Koupit tričko
Kafe pro Chiptrona
Dodej energii dalšímu článku

Související články

Každý elektro nadšenec přinejmenším slyšel o Arduino, které získalo obrovskou popularitu díky svým jedinečným vlastnostem.

Pokud programujete mikrokontroléry od firmy STM (STM32F4, STM32F0, STM32L1) pomocí Standard Pheripheral Library, tak se vám možná nelíbí velikost výsledného kódu.

The IoT Guru je název kompletního cloudové řešení, které ukládá data z vašich čidel a kromě toho navíc nabízí notifikace v případě nízkého stavu baterie nebo nedostupnosti vašeho čidla.

Lukáš Beran (web, linkedin, google+, twitter, facebook) mi poslal svůj návod, jak zprovoznit Zigbee2MQTT do Domoticz a ovládat tak nejrůznější zařízení.

Arduino Pro posouvá platformu Arduino do profesionálních aplikací IoT a Průmyslu 4.0 pomocí hardwaru jako Arduino Portenta H7, Arduino MKR a Arduino Nano 33, které jsou vybaveny výkonnými procesory a širokou škálou komunikačních rozhraní. Součástí ekosystému jsou rozšiřující moduly, software…

Trendy