查看: 5848|回复: 7

《博哥ESP8266系列6》- ESP8266 一键配置

[复制链接]
  • TA的每日心情
    开心
    2019-2-21 09:05
  • 签到天数: 609 天

    [LV.9]以坛为家II

    发表于 2017-9-17 22:02 | 显示全部楼层 |阅读模式
    本帖最后由 单片机菜鸟 于 2018-8-27 20:14 编辑

    一、前言      
           前几篇我们都是把Wifi账号和密码写死在代码中,实际生活中,我们应该支持可配置,由用户自己去配置Wifi账号和密码,这就引出了本篇的内容。
           为了解决这个连接问题,乐鑫在其SDK加入了SmartConfig功能,所谓SmartConfig就是手机App端发送包含WIFI用户名以及密码的UDP广播包,智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP包的组织形式,就可以通过接收到的UDP包解密出WIFI用户名密码,然后智能硬件配置收到的用户名密码到指定的WIFI AP上。至于具体原理,楼主也不懂。反正,我们就直接调用乐鑫提供的SDK。
            简洁点,有以下基本步骤:
            1.8266 端调用 WiFi.beginSmartConfig() 等待手机端发出的用户名和密码。
            2.手机端把填写当前网络的密码发送到UDP端口;
            3.8266自动收到连接信息并调用 WiFi.smartConfigDone() 退出等待。

    二、撸上代码


            我们把以下代码直接烧录进8266,
            

    kittenblock中小学创客名师推荐的图形化编程软件

    #include <ESP8266WiFi.h>
    
    void smartConfig()
    {
      WiFi.mode(WIFI_STA);
      Serial.println("\r\nWait for Smartconfig");
      delay(2000);
      // 等待配网
      WiFi.beginSmartConfig();
    
     while (1)
      {
        Serial.print(".");
        delay(500);
        if (WiFi.smartConfigDone())
        {
          Serial.println("SmartConfig Success");
          Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());
          Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());
          WiFi.setAutoConnect(true);  // 设置自动连接
          break;
        }
      }
    
      Serial.println("");
      Serial.println("WiFi connected");  
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    }
    
    void setup()
    {
      Serial.begin(115200);
      smartConfig();
    }
    
    void loop()
    {
      delay(100);
      Serial.println("loop");
    }

             然后在安卓端安装一个由乐鑫提供的ESPTouch App,就可以开始一键配置了。
          App链接地址  乐鑫
          楼主的测试结果:
           4PZ`7S(8PXW8SW%PQK$(%OQ.png

            有了一键配置的功能,以后再也不用写死账号和密码了,So Easy。
         不足之处:
          1. 因为这个实验需要用到乐鑫开发的app,那么我们是否可以把app的功能集成到自己开发的app上呢?
              肯定可以,后面楼主把乐鑫app的代码集成成一个sdk式的module,供Android Studio直接引入使用。
          2.每次启动8266,都需要重新配置,我们是否可以写入到flash中呢?后面研究一下。

    博哥自建qq交流群:869920142



    打赏作者鼓励一下!

    1人打赏

  • TA的每日心情
    开心
    2019-2-21 09:05
  • 签到天数: 609 天

    [LV.9]以坛为家II

     楼主| 发表于 2017-9-17 22:02 | 显示全部楼层
    楼主一如既往做好冷板凳
    打赏作者鼓励一下!
  • TA的每日心情
    擦汗
    2017-9-19 13:29
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2017-9-17 23:13 | 显示全部楼层
    本帖最后由 敢问路在何方 于 2017-9-17 23:15 编辑

    好!楼主厉害。能够把乐鑫app的代码集成成一个sdk式的module,供Android Studio直接引入使用。
  • TA的每日心情
    开心
    2019-2-21 09:05
  • 签到天数: 609 天

    [LV.9]以坛为家II

     楼主| 发表于 2017-9-18 08:15 | 显示全部楼层
    敢问路在何方 发表于 2017-9-17 23:13
    好!楼主厉害。能够把乐鑫app的代码集成成一个sdk式的module,供Android Studio直接引入使用。
    ...

    这方面工作已经能够做完了  准备改造一下前面的wifi灯 加入一键配置以及eeprom写入功能
    打赏作者鼓励一下!

    1人打赏

    该用户从未签到

    发表于 2018-2-3 17:05 | 显示全部楼层
    单片机菜鸟 发表于 2017-9-18 08:15
    这方面工作已经能够做完了  准备改造一下前面的wifi灯 加入一键配置以及eeprom写入功能 ...

    打赏了一波~楼主可以把这个SDK分享给我吗~我最近也在弄ESP,初学安卓~~十分感谢
  • TA的每日心情
    开心
    2019-2-21 09:05
  • 签到天数: 609 天

    [LV.9]以坛为家II

     楼主| 发表于 2018-2-3 18:26 | 显示全部楼层
    蛇幼 发表于 2018-2-3 17:05
    打赏了一波~楼主可以把这个SDK分享给我吗~我最近也在弄ESP,初学安卓~~十分感谢 ...

    看后面的帖子
    打赏作者鼓励一下!
  • TA的每日心情
    郁闷
    2018-4-25 17:21
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2018-3-26 20:57 | 显示全部楼层
    8266支持at指令把配置存进flash的
  • TA的每日心情
    无聊
    2018-12-12 19:51
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2018-3-26 22:29 | 显示全部楼层
    好!楼主厉害。能够把乐鑫app的代码集成成一个sdk式的module,供Android Studio直接引入使用。
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    博哥零基础教你玩转ESP8266(十三) ESP8266WiFiGeneric库
    博哥零基础教你玩转ESP826
    帖子导航帖 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ)
    求助!WeMos D1 WiFi怎么
    求助!WeMos D1 WiFi怎么接0.96寸OLED?(ㄒoㄒ) 想用WeMos D1 WiFi接收服务器的数据然
    串口发送16进制指令求助
    串口发送16进制指令求助
    我准备串口发出16进制指令到我的外置设备 代码如下图 我分别监控ARDUINO的tx口和USB口
    一文教你选择Arduino开发板,小白进
    一文教你选择Arduino开发
    笔者在2016年接触了Arduino,跳了万条坑,行了千里弯,到今天也算是Arduino的一
    大神们!1602显示屏上的MQ2浓度示数不是实时监测的何解
    大神们!1602显示屏上的MQ
    本人小白,刚刚接触arduino,长时间的查阅资料后,通过复制修改代码接线实现了DHT11实
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表