Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/unicloudvn/esp_provisioning
Flutter Provisioning library for ESP-IDF ESP32 Unified provisioning
https://github.com/unicloudvn/esp_provisioning
ble bluetooth esp32 espressif flutter made-in-vietnam provisioning
Last synced: 2 months ago
JSON representation
Flutter Provisioning library for ESP-IDF ESP32 Unified provisioning
- Host: GitHub
- URL: https://github.com/unicloudvn/esp_provisioning
- Owner: unicloudvn
- License: apache-2.0
- Created: 2020-04-09T08:49:29.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-08-23T08:18:15.000Z (over 1 year ago)
- Last Synced: 2024-09-28T14:01:21.987Z (3 months ago)
- Topics: ble, bluetooth, esp32, espressif, flutter, made-in-vietnam, provisioning
- Language: Dart
- Homepage: https://unicloudgroup.dev
- Size: 416 KB
- Stars: 65
- Watchers: 12
- Forks: 52
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# esp_provisioning
![Made with love in Vietnam](https://madewithlove.now.sh/vn?heart=true) ![Pub Version](https://img.shields.io/pub/v/esp_provisioning)
Espressif BLE Provisioning library for ESP32
![](https://github.com/sunshine-tech/esp_provisioning/blob/master/img.gif?raw=true)
A library for Flutter was developed to provide network credentials and/or custom data to an ESP32 over Bluetooth BLE.
The company makes chips ESP32, Espresif, they have 2 libraries for each Platform iOS and Android- [esp-idf-provisioning-ios](https://github.com/espressif/esp-idf-provisioning-ios)
- [esp-idf-provisioning-android](https://github.com/espressif/esp-idf-provisioning-android)However, the mobile application development on Flutter is easier now, and many will need this.
## Getting Started
- Need [flutter_ble_lib](https://github.com/Polidea/FlutterBleLib) for BLE transport in your application
- API (Check [exmaple](./exmaple))```dart
EspProv prov = EspProv(
transport: TransportBLE(ble_peripheral), security: Security1(pop: pop));
var success = await prov.establishSession();
await prov.sendWifiConfig(ssid: event.ssid, password: event.password);
await prov.applyWifiConfig();```
## Protocol Communication Overview
Protocol Communication ([protocomm](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/provisioning/protocomm.html)) component manages secure sessions and provides framework for multiple transports. The application can also use protocomm layer directly to have application specific extensions for the provisioning (or non-provisioning) use cases.
Following features are available for provisioning :
- Communication security at application level- protocomm_security1 (curve25519 key exchange + AES-CTR encryption)
- Proof-of-possession (support with protocomm_security1 only)
Protocomm internally uses protobuf (protocol buffers) for secure session establishment. Though users can implement their own security (even without using protobuf). One can even use protocomm without any security layer.
Protocomm provides framework for various transports - WiFi (SoftAP+HTTPD), BLE, console - in which case the handler invocation is automatically taken care of on the device side (see Transport Examples below for code snippets).
Note that the client still needs to establish session (only for protocomm_security1) by performing the two way handshake. See Unified Provisioning for more details about the secure handshake logic.
### License
[Apache License Version 2.0](./LICENSE)