Ú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 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).
- Instalace mobilní aplikace
Nejdříve si potřebujete stáhnout aplikaci pro BLE provisioning:
- Android: ESP BLE Provisioning
- iOS: ESP BLE Provisioning
- 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.0:wifi_prov"
…nebo pomocí GUI:
- Otevřeme si ESP-IDF Component Registry
- Vyhledáme
espressif/network_provisioning - Najedeme do záložky Examples
- Vybereme
wifi_prov - 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^0.2.0"
- Build, flash, a monitor
V příkladu nebudeme nic měnit, jen ověříme, že máme správný target, vymažeme flash paměť (příkazem Erase Flash), 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.
- 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 si to udělat bezpečnější!
