Jan Beran

View on GitHub

Úkol 5: Wi-Fi provisioning

Wi-Fi provisioning je jedním z nejdůležitějších aspektů jakéhokoli IoT zařízení. Když si domů přinesete třeba chytrou zásuvku, také nemusíte od výrobce stahovat kód a ručně měnit SSID a heslo, ale všechno je řešené zpravidla přes nějakou aplikaci, která všechny tyhle údaje zásuvce poskytne. Zpravidla procházíme Wi-Fi provisioningem jen jednou při počátečním nastavení našeho zařízení, ale může se hodit i v situaci, kdy dojde např. k továrnímu resetu.

Existuje několik metod, jak Wi-Fi provisioning zajistit. Některá zařízení lze do tzv. provisioning módu přepnout stiskem nějakého tlačítka, jiná fungují přes zmíněnou aplikaci nebo webovou stránku, a některá podporují automatický provisioning pomocí jiné technologie, třeba Bluetooth Low Energy (BLE).

ESP32-C5 samozřejmě tuhle možnost také podporuje. Můžete se s ní setkat v projektech, jakými je třeba náš ESP RainMaker.

Praktická ukázka: Jak na Wi-Fi provisioning

V kapitole 3 jsme SSID a heslo zapisovali přímo do kódu, což je sice nejrychlejší, ale také nejkomplikovanější varianta (při každé změně musíme zkompilovat a nahrát celý projekt).

Ukládání dat do NVS v kapitole 4 ukazuje sice poněkud praktičtější verzi, kdy si kód sám vyčte data z paměti, ale my je tam stále musíme ručně zapsat, což rozhodně ideální není.

Teď si ukážeme, jak s pomocí mobilního telefonu s Androidem nebo iOS nastavit Wi-Fi údaje přes BLE (Bluetooth Low Energy).

  1. Instalace mobilní aplikace

Nejdříve si potřebujete stáhnout aplikaci pro BLE provisioning:

  1. Vytvoření nového projektu

Vytvoříme nový projekt s využitím příkladu provisioning -> wifi_prov_mgr. Buď lze vytvořit pomocí příkazu níže:

idf.py create-project-from-example "espressif/network_provisioning^1.2.4:wifi_prov"

…nebo pomocí GUI:

  1. Otevřeme si ESP-IDF Component Registry
  2. Vyhledáme espressif/network_provisioning
  3. Najedeme do záložky Examples
  4. Vybereme wifi_prov
  5. A zvolíme Create Project from this Example. V následujícím okně již stačí jen zvolit, kam projekt uložíme.

Pro vaše existující projekty můžete použít komponentu espressif/network_provisioning.

idf.py add-dependency "espressif/network_provisioning^1.2.4"
  1. Build, flash, a monitor

V kódu příkladu nebudeme nic měnit, ale:

Potom už jen aplikaci sestavíme (build) a naflashujeme.

Pokud jste přidávali komponenty manuálně (přes CLI), budete potřebovat nejprve vyčistit projekt, aby se vše korektně sestavilo:

idf.py fullclean

Po sestavení a nahrání aplikace si otevřeme ESP-IDF Serial Monitor.

  1. Provisioning

V aplikaci ESP BLE provisioning na vašem mobilním telefonu následujte kroky tak, jak jsou zobrazené níže:

QR kód vám vaše vývojová deska vypíše do seriové linky (seriový monitor otevřete příkazem Monitor v ESP-IDF Exploreru).

Poté, co se dokončí provisioning proces, se zařízení připojí ke zvolené Wi-Fi síti.

Další krok

Když už víme, jak se jednoduše připojovat na Wi-Fi, pojďme se podívat na low-power techniky pro energeticky úsporné aplikace.

Úkol 6: Low Power Core