Module wifi_prov

Module wifi_prov 

Source
Expand description

WiFi Provisioning component

Provisioning is the process of providing WiFi credentials to a device without manually hardcoding credentials in firmware. WiFi Provisioning is built upon Protocomm using endpoints tailored for connecting nearby WiFi networks using companion phone apps.

It is roughly based on the architecture of WiFi provisioning component in ESP-IDF. More details can be found here

It provides implementation for 2 transport methods(the initial communication between companion apps and the device):

  • Over BLE
  • Over SoftAP

You can read more about each of the transports at: WiFiProvMgrBle and WiFiProvMgrSoftAp

Note: WiFi provisioning won’t actually work for linux since WiFi component is WIP for linux.

Example

let prov_config = WifiProvBleConfig {
    service_name: String::from("PROV_SERVICE"),
    ..Default::default()
};
let mut prov_mgr = WiFiProvMgrBle::new(
    wifi_arc_mutex.clone(),
    prov_config,
    nvs_partition,
    ProtocommSecurity::default(), // Will default to Sec0
)?;


rmaker.reg_user_mapping_ep(&mut prov_mgr);
prov_mgr.start()?;

Provisioning will stop when prov_mgr is dropped.

Structs§

Uuid
A Universally Unique Identifier (UUID).
WiFiProvSoftApConfig
WifiProvBleConfig
WifiProvMgr

Traits§

WiFiProvTransportTrait

Type Aliases§

WiFiProvMgrBle
BLE transport for WiFi Provisioning.
WiFiProvMgrSoftAp
SoftAP transport for WiFi Provisioning.