Join Wi-Fi

Wi-Fi Provisioning

How a production unit receives its SSID. Required to ship.

Join Wi-Fi First-time Wi-Fi setupPhone connects in ESP32 Wi-Fi parts

Official path: examples/provisioning/wifi_prov_mgr

01 Overview

Official provisioning manager that can deliver Wi-Fi credentials to the device over BLE or SoftAP.

Solves the out-of-box experience: users can provision without a PC or serial cable, just a phone.

Ideal for consumer, commercial, and industrial devices like smart home gadgets, sensors, and gateways.

Not for lab prototypes with hardcoded credentials; skip provisioning in that case.

Supports multiple transports, allowing flexibility to choose BLE or SoftAP, and can be extended.

02 Hardware

  • MCU: ESP32 series with BLE support (e.g., ESP32, ESP32-S3); ESP32-S2 lacks BLE, so only SoftAP works.
  • Power: 3.3V supply, mind peak current, add decoupling capacitors.
  • Button: Add a GPIO button to trigger provisioning or reset credentials.
  • LED: Add a status LED to indicate provisioning state (e.g., fast blink = waiting).
  • Antenna: Keep antenna area clear of metal for good Wi-Fi/BLE performance.
  • Connector: If using external antenna, use IPEX connector with impedance matching.
  • Reset: Ensure reliable reset circuit on EN pin for factory reset capability.

03 Software flow

1. Initialize NVS to store provisioning data.

2. Start Wi-Fi and BLE (if using BLE transport) or SoftAP.

3. Call esp_wifi_prov_mgr_start_provisioning(), selecting transport and security scheme.

4. Phone app sends SSID/password via BLE GATT or SoftAP HTTP.

5. On success, prov manager saves credentials to NVS and stops provisioning service.

6. After reboot, device reads NVS and auto-connects to Wi-Fi.

7. If connection fails or re-provisioning is needed, trigger via button or command.

8. Handle timeouts and errors, provide user feedback (e.g., LED patterns).

04 Core points

  • No provisioning, no shippable Wi-Fi product.
  • Security: Enable secure provisioning (e.g., SRP) in production to prevent credential leakage.
  • NVS corruption: Handle NVS corruption gracefully; provide re-provisioning mechanism.
  • BLE coexistence: If device uses BLE for other purposes, allocate resources carefully to avoid conflicts.
  • Custom work: App protocol, reset logic, share with GATT.
  • Testing: Cover success, failure, timeout, and re-provisioning scenarios.

中文

连上 Wi-Fi

Wi-Fi Provisioning 配网

量产设备第一次如何把 SSID 交给芯片。出货必做。

连上 Wi-Fi 第一次配网被手机连接 ESP32 Wi-Fi parts

官方路径: examples/provisioning/wifi_prov_mgr

01 项目概述

官方配网管理器,可用 BLE 或 SoftAP 把 Wi-Fi 凭据送进设备。

解决开箱即用问题:用户无需电脑或串口,用手机即可完成配网。

适用于消费/工商业设备,如智能家居、传感器、工业网关等。

不适用于实验室样机或密码固定的场景,此时可跳过配网。

支持多种传输方式,可灵活选择 BLE 或 SoftAP,甚至可扩展其他传输。

02 项目硬件描述

  • MCU: ESP32 系列,需支持 BLE(如 ESP32、ESP32-S3),ESP32-S2 无 BLE,只能使用 SoftAP。
  • 电源: 3.3V 供电,注意峰值电流,建议加去耦电容。
  • 按键: 建议配一个 GPIO 按键用于触发配网或重置配网信息。
  • LED: 建议配一个状态 LED,指示配网状态(如快闪表示等待配网)。
  • 天线: 确保 Wi-Fi/BLE 天线区域净空,避免金属遮挡。
  • 连接器: 如需外接天线,使用 IPEX 连接器,注意阻抗匹配。
  • 复位电路: 确保 EN 引脚有可靠的复位电路,便于恢复出厂设置。

03 项目软件流程描述

1. 初始化 NVS,用于存储配网信息。

2. 启动 Wi-Fi 和 BLE(若使用 BLE 传输)或 SoftAP。

3. 调用 esp_wifi_prov_mgr_start_provisioning(),选择传输方式和安全方案。

4. 手机 App 通过 BLE GATT 或 SoftAP HTTP 发送 SSID/密码。

5. 配网成功后,prov manager 自动保存凭据到 NVS,并停止配网服务。

6. 设备重启后,自动读取 NVS 并连接 Wi-Fi。

7. 若连接失败或需要重新配网,可通过按键或命令触发重新配网。

8. 处理配网超时和错误,提供用户反馈(如 LED 变化)。

04 项目核心点

  • 没有配网就没有可出货的 Wi-Fi 产品。
  • 安全: 生产环境务必启用安全配网(如 SRP),防止凭据泄露。
  • NVS 损坏: 配网信息存储在 NVS,需处理损坏情况,提供重新配网机制。
  • BLE 共存: 若设备同时使用 BLE 业务,需合理分配资源,避免冲突。
  • 可定制: App 协议、重置逻辑、与 GATT 共用。
  • 测试: 需覆盖配网成功、失败、超时、重复配网等场景。