Documente Academic
Documente Profesional
Documente Cultură
Laborator 7
Provisioning
Partea a II-a
(anul universitar 2021-2022)
Listă tabele
Listă figuri
1
1. Scopul laboratorului
Scanarea reţelelor Wi-Fi disponibile este posibilă doar când perifericul Wi-Fi este configu-
rat fie ı̂n mod STA, fie ı̂n mod STA+AP (sunt expuse două interfeţe distincte, iar scanarea
este realizată prin intermediul interfeţei STA). Astfel, pentru a obţine funcţionalitatea indi-
cată ı̂n laboratorul trecut (afişarea listei de reţele ı̂n formularul din pagina index.html) puteţi
alege una dintre următoarele soluţii:
esp_netif_init();
esp_event_loop_create_default();
esp_netif_t *wifi_netif = esp_netif_create_default_wifi_sta();
esp_wifi_scan_start(...);
esp_wifi_scan_get_ap_records(...);
esp_wifi_stop();
esp_wifi_deinit();
esp_wifi_clear_default_wifi_driver_and_handlers(wifi_netif);
esp_netif_destroy(wifi_netif);
1
3. Sarcină de lucru
Partea a II-a
– Prin intermediul acestei biblioteci pot fi stocate ı̂n memoria flash date de tip
ı̂ntreg (cu sau fără semn, pe 8, 16 sau 32 de biţi), şiruri de caractere (maxim
4000 de octeţi) sau blob-uri (date binare, maxim 508000 de octeţi). Aceste date
sunt accesate prin intermediul unor chei unice reprezentate prin intermediul
unor şiruri de maxim 15 caractere.
– În mod implicit, toate aplicaţiile dezvoltate pe baza framework-ului esp-idf in-
clud o partiţie nvs ı̂n memoria flash. Ea este folosită de diferite biblioteci pentru
a stoca date ı̂ntre ciclurile de alimentare. Pentru a limita posibilitatea de re-
folosire a cheilor de către mai multe componente software ale aceleaşi aplicaţii
biblioteca nvs folosite namespace-uri. Astfel, la crearea unui handle de acces
(i.e. apelul nvs open) se specifică şi namespace-ul care se doreşte accesat.
– La nivelul aplicaţiei, ı̂n funcţiei de callback (handle) a resursei results.html se
vor prelua cele două şiruri de caractere recepţionate de la clientul HTTP şi
se vor stoca ı̂n partiţia nvs prin intermediul cheilor "ssid" şi "pass". După
stocare, platforma va fi restartată prin apelul funcţiei esp restart().
– După boot se va verifica dacă sunt stocate ı̂n partiţia nvs un SSID şi o parolă.
În caz afirmativ se va purcede la rularea aplicaţiei normale (ce presupune şi
conectatea la AP-ul identificat prin acel SSID). În caz negativ se va rula codul
de provisioning.
– Pentru forţarea rulării ı̂n modul provisioning (ex. vrem să ne conectăm la alt
AP sau am introdus o parolă greşită ı̂n formular) se va crea un task pentru
monitorizarea butonului conectat la GPIO23. Dacă butonul este apăsat pentru
mai mult de 5 secunde, cele două chei sunt sterse din partiţia nvs şi platforma
este resetată. Astfel, prin logica descrisă la punctul anterior, platofma va intra
ı̂n modul provisioning.
2
Info
• Exemplu de cod pentru utilizarea bibliotecii ı̂n nvs este disponibil aici.
3
Materiale de studiu
• Documentaţie OTA