Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
ESP32 Development board je vývojová deska pro Arduino. Tato deska obsahuje nejnovější čip ESP32 od firmy Espressif, který má oproti předchozímu ESP8266 nejen větší výkon, ale i nové funkce. Oproti staršímu čipu obsahuje nově ESP32 vedle WiFi také Bluetooth ve verzi 4.2 s podporou BLE (Bluetooth Low Energy). Procesor obsahuje dvě výpočetní jádra a SRAM paměť má velikost 512 kB. Co se týká GPIO (vstupně-výstupní porty), tak těch je 36 a byly rozšířeny také počty pinů s podporou sběrnic SPI, I2C a UART. Více informací najdete v tabulce níže.
Pro přidání vývojových desek založených na ESP32 do vývojového prostředí Arduino IDE jsou zapotřebí následující kroky. Jako první si stáhnete tento archiv (po otevření odkazu stačí kliknout na Clone or Download-Download as ZIP).
Tento archiv následně rozbalíte do složky v cestě:
„C:/Users/Jméno/Dokumenty/Arduino/hardware/espressif/esp32“ – složky hardware, espressif a esp32 je nutné vytvořit a následně by rozbalené soubory měly vypadat jako na obrázku níže.
Pozn. pokud máte přemístěnou projektovou složku Arduino, tak vytvořte složku hardware v ní.
Po úspěšném rozbalení archivu do dané cesty nyní otevřete složku tools a v ní spustíte aplikaci „get“. Tato aplikace otevře nové okno, kde uvidíte průběh stažení dodatečných nástrojů a jejich instalaci, jak je naznačeno na obrázcích níže.
Po úspěšném nainstalování uvidíte, že do otevřeného adresáře tools přibyla složka xtensa-esp32-elf.
Tímto krokem máte hotovou instalaci podpory čipu ESP32 do Arduino IDE a můžete přejít k připojení vývojového kitu. Ten by si měl při připojení ve Windows dokázat stáhnout ovladače a po instalaci zařízení uvidíte nově vytvořený COM port (u mě COM11).
Po připojení a nainstalování ovladačů pro vývojovou desku můžeme otevřít Arduino IDE a nastavit si nově přidanou desku. Pro většinu desek stačí zvolit typ „ESP32 Dev Module“, jak je naznačeno na obrázku.
Po tomto kroku máme nastavenou vývojovou desku a po nastavení správného COM portu v nabídce Nástroje-Port-COMx můžeme vyzkoušet nahrát první program. Pro jednoduchý test jsem vytvořil ukázkový kód s blikáním LED diody. Po jeho nahrání tedy můžete pozorovat blikání vestavěné LED diody, která je na desce Development board připojena na pin D2.
// Blikání LED s ESP32 // nastavení propojovacího pinu // pro LED diodu, na většině ESP32 // desek je to pin D2 #define LED 2 // stavová proměnná pro řízení LED diody bool stav = LOW; void setup() { Serial.begin(115200); // nastavení výstupu pro LED diodu pinMode(LED, OUTPUT); } void loop() { // blikání LED diodou za pomoci negace stavu digitalWrite(LED, stav); stav = !stav; delay(500); }
Pro otestování uživatelského tlačítka s popiskem „BOOT“, které je připojené na pin D0, jsem ještě vytvořil druhý ukázkový program. Tento program kontroluje stisk tlačítka a při aktivním stisku rozsvítí LED diodu. Můžete si všimnout, že tlačítko je připojeno s pull-up odporem a tím pádem je nutné do proměnné nahrávat vždy negovanou hodnotu vstupu (negace pomocí !).
// Blikání LED pomocí tlačítka s ESP32 // nastavení propojovacího pinu // pro LED diodu, na většině ESP32 // desek je to pin D2, // a také tlačítka na pinu D0 #define LED 2 #define tlacitko 0 // stavová proměnná pro řízení LED diody bool stav = LOW; void setup() { Serial.begin(115200); // nastavení výstupu pro LED diodu pinMode(LED, OUTPUT); pinMode(tlacitko, INPUT_PULLUP); } void loop() { // blikání LED diodou za pomoci negace stavu stav = !(digitalRead(tlacitko)); digitalWrite(LED, stav); }
Pro další testování můžete využít také spoustu ukázek, které najdete v nabídce Soubor-Příklady-Příklady pro ESP32, viz obrázek níže.
A jako poslední příklad pro otestování WiFi funkce si můžete vyzkoušet ukázkový kód pro skenování WiFi sítí v okolí.
// ESP32 - skenování WiFi sítí v okolí // připojení potřebné knihovny #include "WiFi.h" void setup() { // nastavení komunikace po sériové lince Serial.begin(9600); // nastavení WiFI do módu stanice pro skenování WiFi.mode(WIFI_STA); // odpojení od sítí pro povolení skenování WiFi.disconnect(); delay(100); } void loop() { // zahájení skenování Serial.println("scan start"); // načtení počtu viditelných sítí do proměnné int n = WiFi.scanNetworks(); Serial.println("scan done"); // pokud nebyly načteny žádné sítě, vypiš informaci // po sériové lince if (n == 0) { Serial.println("no networks found"); } // v opačném případě vypiš všechny dostupné informace // o všech sítích v okolí else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { // vytiskni název (SSID) a sílu signálu (RSSI) Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN) ? " " : "*"); delay(10); } } Serial.println(""); // pauza před novým skenováním delay(5000); }
ESP32 Development board je velice zajímavá vývojová deska, která je založena na úspěšném předchůdci ESP8266. Oproti staršímu čipu se zvětšil výkon, přibyly funkce a také se zvětšil počet propojovacích pinů. Hodí se do různých Arduino projektů, kde chceme využívat bezdrátové připojení pomocí WiFi nebo Bluetooth bez přídavných modulů. Jen bych rád upozornil, že stejně jako ESP8266, tak i čipy ESP32 dovolují používat datové piny na úrovních 3,3V. Je tedy nutné si dávat pozor, aby externí moduly a zařízení nekomunikovaly na úrovních 5V, protože při připojení napětí většího než 3,3V na piny čipů ESP může dojít k jejich trvalému poškození, případně ke zničení celé desky.
Seznam použitých komponent:
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.