EasyManua.ls Logo

Espressif ESP32-S2 - Page 692

Espressif ESP32-S2
1695 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Chapter 2. API Reference
(continued from previous page)
break;
}
case WIFI_PROV_CRED_SUCCESS:
ESP_LOGI(TAG, "Provisioning successful");
break;
case WIFI_PROV_END:
/* De-initialize manager once provisioning is finished */
wifi_prov_mgr_deinit();
break;
default:
break;
}
}
}
The manager can be de-initialized at any moment by making a call to wifi_prov_mgr_deinit().
Check Provisioning State Whether device is provisioned or not can be checked at runtime by calling
wifi_prov_mgr_is_provisioned(). This internally checks if the Wi-Fi credentials are stored in NVS.
Note that presently manager does not have its own NVS namespace for storage of Wi-Fi credentials, instead it relies
on the esp_wifi_ APIs to set and get the credentials stored in NVS from the default location.
If provisioning state needs to be reset, any of the following approaches may be taken :
the associated part of NVS partition has to be erased manually
main application must implement some logic to call esp_wifi_ APIs for erasing the credentials
at runtime
main application must implement some logic to force start the provisioning irrespective of the
provisioning state
bool provisioned = false;
ESP_ERROR_CHECK( wifi_prov_mgr_is_provisioned(&provisioned) );
Start Provisioning Service At the time of starting provisioning we need to specify a service name and the corre-
sponding key. These translate to :
Wi-Fi SoftAP SSID and passphrase, respectively, when scheme is wifi_prov_scheme_softap
BLE Device name (service key is ignored) when scheme is wifi_prov_scheme_ble
Also, since internally the manager uses protocomm, we have the option of choosing one of the security features
provided by it :
Security 1 is secure communication which consists of a prior handshake involving X25519 key exchange along
with authentication using a proof of possession (pop), followed by AES-CTR for encryption/decryption of
subsequent messages
Security 0 is simply plain text communication. In this case the pop is simply ignored
See Provisioning for details about the security features.
const char *service_name = "my_device";
const char *service_key = "password";
wifi_prov_security_t security = WIFI_PROV_SECURITY_1;
const char *pop = "abcd1234";
ESP_ERROR_CHECK( wifi_prov_mgr_start_provisioning(security, pop, service_
,name, service_key) );
Espressif Systems 681
Submit Document Feedback
Release v4.4

Table of Contents