Ú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).
- 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.4: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^1.2.4"
- Build, flash, a monitor
V kódu příkladu nebudeme nic měnit, ale:
- ověříme, že máme správný target (ESP32-C5)
- vymažeme flash paměť (příkazem Erase Flash)
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.
- 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.