要開始IoT項目的第一步是什麼?固然不是硬件,而是硬件與硬件的鏈接!即便有各類各樣的通訊協議沒有好的鏈接方式絕對不行。那外設上沒有的屏幕,沒有鍵盤怎末輸入密碼怎末選擇網絡?對,這就是WIFI模塊最重要解決的問題。node
爲了解決這個鏈接問題樂鑫在其SDK中加入了SmartConfig功能,所謂的smartconfig就是手機APP端發送包含WIFI 用戶名 WIFI密碼的 UDP 廣播包或者組播包,智能終端的WIFI芯片能夠接收到該UDP包,只要知道UDP的組織形式,就能夠經過接收到的UDP包解密 出WIFI 用戶名 密碼,而後智能硬件 配置受到的WIFI 用戶名 密碼到指定的WIFI AP 上。swift
若是將其原理用簡潔點的步驟來解說應該分爲如下幾步:網絡
WiFi.beginSmartConfig()
等待手機端發出的用戶名與密碼。WiFi.smartConfigDone()
退出等待。就這麼簡單!oop
Arduino core for ESP8266 的代碼示例:ui
#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 的話代碼會更簡單一些: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鏈接。3d
本文的配網只是用簡單代碼對原理進行解釋,而至於要應用到的實際開發時則須要對App端進行開發。之後還會寫一篇在App端的配網方式介紹。code