查看: 5081|回复: 7

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

[复制链接]
  • TA的每日心情
    开心
    2018-12-16 23:05
  • 签到天数: 556 天

    [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的每日心情
    开心
    2018-12-16 23:05
  • 签到天数: 556 天

    [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的每日心情
    开心
    2018-12-16 23:05
  • 签到天数: 556 天

    [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的每日心情
    开心
    2018-12-16 23:05
  • 签到天数: 556 天

    [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直接引入使用。
    打赏作者鼓励一下!
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    教你如何自制一款遥控器,让你的项目变成遥控的!!!
    教你如何自制一款遥控器,
    自从上次制作了一块集成了电机驱动的最小板之后,我就发现现在市场上一块便宜且功能又
    编译报错,困扰我几天了。。。。有没有大神
    编译报错,困扰我几天了。
    安装了这个以后 新建一个,选了一块板子什么也没有敲,编译也报错,如下图 版本是1.
    博哥零基础教你玩转ESP8266(六) STA连接 —— 我想连上你
    博哥零基础教你玩转ESP826
    帖子导航: 博哥零基础教你玩转ESP8266(一) 重识ESP8266 博哥零基础教你玩转ESP8266
    i3结构3D打印机制作资料
    i3结构3D打印机制作资料
    文件太大,无法上传,提供个下载链接 https://github.com/Lighter-z/3D-i3-Prusa
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表