使用Flutter对ESP8266 SmartConfig一键配网

使用Flutter对ESP8266 SmartConfig一键配网

获取wifi信息

对esp8266等wifi模块进行配网时需要手机连接wifi后进行获取该wifi的信息如:wifi名(wifiSSID),MAC地址(wifiBSSID)。

wifi信息可以通过使用插件connectivity来获取

添加依赖

在pubspec.yaml文件中加入插件的依赖:

dependencies:
  connectivity: ^0.4.8+6

获取wifi信息

  import 'package:connectivity/connectivity.dart';
  
  void getWifiInfo() async {
    var wifiSSID = await Connectivity().getWifiName();	//获取WIFI名
    var wifiBSSID = await Connectivity().getWifiBSSID();//获取WIFI地址
  }

在获取wifi信息时可能会出现以下情况
返回的WIFI名:null
返回的wifiBSSID:02:00:00:00:00:00

解决办法:
获取手机的定位权限
可以通过使用高德地图的插件amap_location来获取定位,该插件的配置使用会比较麻烦,详细可以自行百度。

一键配网

当获取WIFI信息后,再由用户输入WIFI的密码就可以对WIFI模块进行一键配网,而配网的功能可以使用插件smartconfig来完成。
添加依赖

dependencies:
  smartconfig: ^0.0.1

配网开始

Smartconfig.start(wifiSSID,wifiBSSID,password).then((onValue){
      print("sm version $onValue");
    });

传入值 wifiSSIDwifiBSSID为上面获取到的 WIFI名 和 WIFI地址 , password为WIFI密码,需要用户自行输入。
最后通过接收返回值onValue来判断WIFI连接情况,当返回onValue为null时,证明WIFI未连接。

上一篇:ESP8266实战一——带OLED显示屏电子时钟


下一篇:ESP8266 for Arduino开发环境安装