esp_softap_provisioning 1.0.1
esp_softap_provisioning: ^1.0.1 copied to clipboard

A Flutter plugin for provisioning ESP32 modules with SoftAP

esp_softap_provisioning #

A Flutter plugin for provisioning ESP32 modules with SoftAP

GitHub release GitHub license pub points

Example App #

Tested on #

Silicon: ESP32-WROOM-32D

Android Version : 11

iOS Version: 12 and 14

Comparison #

Comparison to esp_provisioning:

Reposoftap supportble supportcryptographyprotobuf
esp_softap_provisioning✔️✖️✔️ (2.0.1)✔️ (2.0.0)
esp_provisioning✖️✔️✔️ (1.4.1)✔️ (1.0.1)

Last update: 18 / 04 / 2021

Usage #

Changes on pubspec.yaml

dependencies:
  ...
  esp_softap_provisioning: 1.0.1

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.

Credits #

  • I have referred to sunshine-tech esp_provisioning repository for native cipher code.

  • I have referred to Espressif esp_prov repository for provisioning structure.