A Flutter plugin for provisioning ESP32 modules with SoftAP
Silicon: ESP32-WROOM-32D
Android Version : 11
iOS Version: 12 and 14
Comparison to esp_provisioning:
Repo | softap support | ble support | cryptography | protobuf |
---|---|---|---|---|
esp_softap_provisioning | ✔️ | ✖️ | ✔️ (2.0.1) | ✔️ (2.0.0) |
esp_provisioning | ✖️ | ✔️ | ✔️ (1.4.1) | ✔️ (1.0.1) |
Last update: 18 / 04 / 2021
Changes on pubspec.yaml
dependencies:
...
esp_softap_provisioning:
git:
url: https://github.com/omert08/esp_softap_provisioning.git
ref: main
then, run flutter pub get
,
We need to give permissions for http connections.
- Changes on AndroidManifest.xml (<your_app>/android/app/src/main/AndroidManifest.xml):
Add <uses-permission android:name="android.permission.INTERNET"/>
and android:usesCleartextTraffic="true"
to AndroidManifest.xml.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
<uses-permission android:name="android.permission.INTERNET"/>
<application
...
android:usesCleartextTraffic="true"
...
...
- Changes on Info.plist (<your_app>/ios/Runner/Info.plist) :
<plist version="1.0">
<dict>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>wifi-prov.local</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>1.0</string>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
</dict>
</dict>
</dict>
...
For iOS, it's recommended to put platform version >= 9.0 , You can edit this variable from Podfile (<your_app>/ios/Podfile)
Library is ready to use, you can check example app directory for implementation. Notice that Proof of posession (POP) should be matching with ESP's.
-
I have referred to sunshine-tech esp_provisioning repository for native cipher code.
-
I have referred to Espressif esp_prov repository for provisioning structure.