Skip to content

Minor modifications in provisioning #3919

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Apr 21, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 10 additions & 19 deletions libraries/WiFi/examples/WiFiProv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ This sketch implements provisioning using various IDF components

This example allows Arduino user to choose either BLE or SOFTAP as a mode of transport, over which the provisioning related communication is to take place, between the device (to be provisioned) and the client (owner of the device).

## API's introduced for provisioning
# APIs introduced for provisioning

## WiFi.onEvent()

Using this API user can register to recieve WIFI Events and Provisioning Events
Using this API user can register to receive WiFi Events and Provisioning Events

#### Parameters passed

Expand All @@ -22,11 +22,11 @@ A function with following signature
* wifi_prov_cb_event_t event;
* void * event_data;

### WiFi.beginProvision()
## WiFi.beginProvision()

WiFi.beginProvision(scheme prov_scheme, wifi_prov_scheme_event_handler_t scheme_event_handler, wifi_prov_security_t security, char * pop, char * service_name, char * service_key, uint8_t * uuid);

#### Parameters
#### Parameters passed

* prov_scheme : choose the mode of transfer
* WIFI_PROV_SCHEME_BLE - Using BLE
Expand All @@ -46,11 +46,11 @@ WiFi.beginProvision(scheme prov_scheme, wifi_prov_scheme_event_handler_t scheme_
* SoftAp :
- WIFI_PROV_EVENT_HANDLER_NONE

* pop : It is the string that is used to provide the authentication while provisioning
* pop : It is the string that is used to provide the authentication.

* service_name : Specify service name for the device while provisioning, if it is not specified then default chosen name via SoftAP is WIFI_XXX and for BLE service it is BLE_XXX where XXX is the last 3 bytes of the MAC address.
* service_name : Specify service name for the device, if it is not specified then default chosen name via SoftAP is WIFI_XXX and via BLE is BLE_XXX where XXX are the last 3 bytes of the MAC address.

* service_key : Specify service key while provisioning, if chosen mode of provisioning is BLE then service_key is always NULL
* service_key : Specify service key, if chosen mode of provisioning is BLE then service_key is always NULL

* uuid : user can specify there own 128 bit UUID while provisioning using BLE, if not specified then default value taken is
- { 0xb4, 0xdf, 0x5a, 0x1c, 0x3f, 0x6b, 0xf4, 0xbf,
Expand All @@ -63,24 +63,15 @@ WiFi.beginProvision(scheme prov_scheme, wifi_prov_scheme_event_handler_t scheme_
* scheme_event_handler = WIFI_PROV_EVENT_HANDLER_NONE
* security = WIFI_PROV_SECURITY_1
* pop = "abcd1234"
* service_name = "WiFi_XXX"
* service_name = "WiFi_XXX"
* service_key = NULL
* uuid = NULL

# Log Output
* Enable debuger : [ Tools -> Core Debug Level -> Info ]

# App required for provisioning

##Gihub link

* Android : (https://github.com/espressif/esp-idf-provisioning-android)
* iOS : (https://github.com/espressif/esp-idf-provisioning-ios)

## These apps are available on playstore

* For SoftAP : ESP SoftAP Prov
* For BLE : ESP BLE Prov
# Provisioning Tools
https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/provisioning/wifi_provisioning.html#provisioning-tools

# Example output

Expand Down
6 changes: 5 additions & 1 deletion libraries/WiFi/src/WiFiProv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,11 @@ void WiFiProvClass :: beginProvision(scheme prov_scheme, wifi_prov_event_handler
WiFi.mode(WIFI_MODE_STA);
log_i("Aleardy Provisioned, starting Wi-Fi STA");
log_i("CONNECTING ACCESS POINT CREDENTIALS : ");
log_i("SSID : %s\n",WiFi.SSID().c_str());
#if ARDUHAL_LOG_LEVEL >= ARDUHAL_LOG_LEVEL_INFO
wifi_config_t conf;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should check if the log level is info or higher, else this will cause unused variable and is unnecessary in reality.

esp_wifi_get_config(WIFI_IF_STA,&conf);
log_i("SSID : %s\n",conf.sta.ssid);
#endif
}
}