zoukankan      html  css  js  c++  java
  • WIFI智能配网

    要开始IoT项目的第一步是什么?当然不是硬件,而是硬件与硬件的连接!即使有各种各样的通信协议没有好的连接方式绝对不行。那外设上没有的屏幕,没有键盘怎末输入密码怎末选择网络?对,这就是WIFI模块最重要解决的问题。

    为了解决这个连接问题乐鑫在其SDK中加入了SmartConfig功能,所谓的smartconfig就是手机APP端发送包含WIFI 用户名 WIFI密码的 UDP 广播包或者组播包,智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密 出WIFI 用户名 密码,然后智能硬件 配置受到的WIFI 用户名 密码到指定的WIFI AP 上。

    如果将其原理用简洁点的步骤来解说应该分为以下几步:

    1. ESP8266 端调用 WiFi.beginSmartConfig() 等待手机端发出的用户名与密码。
    2. 手机端填写当前网络的密码发送到UDP端口。
    3. ESP8266 自动收到连接信息并调用 WiFi.smartConfigDone() 退出等待。

    就这么简单!

    ESP8266 的固件代码

    Arduino core for ESP8266 的代码示例:

    #include <ESP8266WiFi.h>;
    
    void setup() {
      Serial.begin(115200);
      delay(10);
    
      // 必须采用 AP 与 Station 兼容模式
      WiFi.mode(WIFI_AP_STA);
      delay(500);
    
     // 等待配网
      WiFi.beginSmartConfig();
    
     // 收到配网信息后ESP8266将自动连接,WiFi.status 状态就会返回:已连接
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
        // 完成连接,退出配网等待。
        Serial.println(WiFi.smartConfigDone());
      }
    
      Serial.println("");
      Serial.println("WiFi connected");  
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
    }
    
    int value = 0;
    
    void loop() {
    }
    

    如果使用NodeMCU Lua 的话代码会更简单一些:

    wifi.setmode(wifi.STATION)
    wifi.startsmart(0,
                    function(ssid, password)
                         print(string.format("Success. SSID:%s ; PASSWORD:%s", ssid, password))
                     end )
    

    手机端

    将以上的代码写入到ESP8266之后,就要在安卓或者iOS上安装一个由乐鑫提供的ESP-Touch的App将当前WIFI中的用户名和密码告知ESP8266以完成SmartConfig连接。

    小结

    本文的配网只是用简单代码对原理进行解释,而至于要应用到的实际开发时则需要对App端进行开发。以后还会写一篇在App端的配网方式介绍。

    相关资源

  • 相关阅读:
    入门菜鸟
    FZU 1202
    XMU 1246
    Codeforces 294E Shaass the Great 树形dp
    Codeforces 773D Perishable Roads 最短路 (看题解)
    Codeforces 814E An unavoidable detour for home dp
    Codeforces 567E President and Roads 最短路 + tarjan求桥
    Codeforces 567F Mausoleum dp
    Codeforces 908G New Year and Original Order 数位dp
    Codeforces 813D Two Melodies dp
  • 原文地址:https://www.cnblogs.com/Ray-liang/p/9786929.html
Copyright © 2011-2022 走看看