IoT 장치 프로비저닝을 위한 Esptouch 및 EsptouchV2 스마트 구성 프로토콜의 다트 구현입니다. 스마트폰 또는 데스크톱 앱을 통해 직접 네트워크 접근 없이 ESP8266/ESP32 장치의 무선 설정을 원활하게 가능하게 합니다. Android, iOS, macOS, Windows, Linux를 모두 지원하는 완전한 플랫폼 독립형이며, 크로스플랫폼 플러터 애플리케이션에 제로 터치 장치 페어링 기능을 통합하고자 하는 개발자를 위해 설계되었습니다. 네이티브 종속성이 전혀 없으며, 모든 지원되는 플랫폼에서 호환성을 보장합니다.
사용 사례
IoT 장치 온보딩
스마트 홈 기기 설정
임베디드 장치 구성
크로스 플랫폼 Wi-Fi 프로비저닝
자동 장치 등록
주요 기능
Esptouch 및 EsptouchV2 지원
순수 Dart 구현
다중 플랫폼 호환성
네이티브 코드가 필요하지 않습니다
경량이고 효율적
안전한 Wi-Fi 자격 증명 전송
적합한 대상
IoT 앱을 구축하는 플러터 개발자
ESP 칩을 사용하는 하드웨어 통합업체
터치리스 장치 설정이 필요한 애플리케이션
크로스 플랫폼 모바일/데스크톱 솔루션
네이티브 플랫폼 코드를 피하는 프로젝트
고려 사항
호환되는 ESP8266/ESP32 펌웨어가 필요합니다
모바일 플랫폼에서 필요한 네트워크 권한
Esptouch 프로토콜을 지원하는 장치에 한정
구성 후 장치 재시작을 처리하지 않습니다
로컬 네트워크 환경에서 가장 잘 사용됩니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
Dart implementation of EspTouch provisioner. Supports Android, iOS, Windows, Linux and macOS.
Implemented protocols
EspTouch
EspTouch V2
Supported platforms
All non-web platforms are supported. Web platform is not supported mainly because browsers does not allow UDP communication.
If you are going to use this library on Desktop platforms make sure that UDP port 18266 is open in firewall for incoming data.
Breaking Change iOS 14.6/16
The breaking change was implemented with 14.6. However, it seems to be the case that the mentioned problem only occurs on devices with iOS version 16. It results in the fact that no connection to the ESP can be established.
How to:
You need an Apple-Developer account
After the Dev-Account has been approved, you have to make a request via this form to be allowed to use the Multicast Api.
Several examples of using this library are available in example folder.
import'package:esp_smartconfig/esp_smartconfig.dart';
final provisioner = Provisioner.espTouch();
provisioner.listen((response) {
print("Device ${response.bssidText} connected to WiFi!");
});
try {
await provisioner.start(ProvisioningRequest.fromStrings(
ssid: "NETWORK NAME",
bssid: "ROUTER BSSID", // Optional
password: "NETWORK PASSWORD",
));
// If you are going to use this library in Flutter// this is good place to show some Dialog and wait for exit//// Or simply you can delay with Future.delayed functionawaitFuture.delayed(Duration(seconds: 10));
} catch (e, s) {
print(e);
}
// Provisioning does not have any timeout so it needs to be// stopped manually
provisioner.stop();
SmartConfig
The SmartConfigTM is a provisioning technology to connect a new Wi-Fi device to a Wi-Fi network.
The advantage of this technology is that the device does not need to directly know SSID or password of an Access Point (AP). Those information is provided using this library. This is particularly important to headless device and systems, due to their lack of a user interface.