This is an unpublished React Native package that bridges the powerful esp-idf-provisioning-* library to your React Native application, enabling you to seamlessly provision ESP32 devices in a react native app.
- Search for available BLE devices.
- Scan device QR code to provide reference to ESP device.
- Create reference of ESPDevice manually.
- Data Encryption
- Data transmission through BLE.
- Data transmission through SoftAP.
- Scan for available Wi-Fi networks.
- Provision device.
- Scan for available Wi-Fi networks.
- Support for exchanging custom data.
- Support for security version 2.
- Search for available BLE devices.
- Scan device QR code to provide reference to ESP device.
- Create reference of ESPDevice manually.
- Data Encryption
- Data transmission through SoftAP.
- Data transmission through BLE.
- Scan for available Wi-Fi networks.
- Provision device.
- Scan for available Wi-Fi networks.
- Support for exchanging custom data.
- Support for security version 2.
https://github.com/espressif/esp-idf-provisioning-android
https://github.com/espressif/esp-idf-provisioning-ios
These are the native apps available by Espressif to provision ESP32 devices:
PlayStore: SOFTAP: https://play.google.com/store/apps/details?id=com.espressif.provsoftap BLE: https://play.google.com/store/apps/details?id=com.espressif.provble
AppStore: SOFTAP: https://apps.apple.com/in/app/esp-softap-provisioning/id1474040630 BLE: https://apps.apple.com/in/app/esp-ble-provisioning/id1473590141
Version 1:
- We will focus on feature completeness with only SoftAP
Version 2:
- Support BLE
This sequence diagram illustrates the provisioning process for an ESP32 device using Bluetooth Low Energy (BLE):
- Mobile App: The React Native application on the user's device(ios/android).
- ESP32 Device: The ESP32 device in provisioning mode.
- Provisioning Service: A service running on the ESP32 device responsible for handling the provisioning process.
- Mobile App -> ESP32 Device (Broadcast): Message: Service discovery request for provisioning service.
- ESP32 Device -> Mobile App (Response): Message: Service information advertisement (including UUID for provisioning service).
- Mobile App -> ESP32 Device: Message: Connection request to provisioning service.
- ESP32 Device -> Mobile App: Message: Connection confirmation.
- Mobile App -> ESP32 Device: Message: Security handshake initiation (e.g., key exchange).
- ESP32 Device -> Mobile App: Message: Security handshake response (e.g., encrypted keys).
- Mobile App -> ESP32 Device: Message: Provisioning data (e.g., WiFi SSID, password, other settings).
- ESP32 Device -> Mobile App: Message: Provisioning confirmation or error message.
- Mobile App -> ESP32 Device (Optional): Message: Disconnect request.
- ESP32 Device -> Mobile App (Optional): Message: Disconnect confirmation.
Currently, this package is not published on npm and needs to be included manually.
- Clone this repository into your React Native project's node_modules folder.
- Update your package.json file:
{
"dependencies": {
"react-native-esp-idf-provisioning": "file:node_modules/react-native-esp-idf-provisioning"
}
}
Import the module in your React Native component:
import EspIdfProvisioning from 'react-native-esp-idf-provisioning';
Copyright © 2021 Futuristic Labs Private Limited. All rights reserved.
We will make it open source soon, once we have a stable version.