ESP8266WiFi-begin调用储存在ESP8266的闪存系统中的WiFi设置
生活随笔
收集整理的這篇文章主要介紹了
ESP8266WiFi-begin调用储存在ESP8266的闪存系统中的WiFi设置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ESP8266WiFi
有開發經驗的同學,一定了解esp8266的WiFi的連接。
一般情況下,我們通過ESP8266WiFi庫-begin()函數,配置wifi名稱和wifi密碼例如下程序片段
缺點
每次將wifif配置在程序中,增加代碼會使代碼冗余,繁雜。
改進
通過使用 begin()函數無參的方法,可調用儲存在esp8266的閃存系統中的WiFi設置。
原理
在啟動并連接WiFi時,ESP8266可以嘗試使用閃存系統中儲存的信息來進行WiFi連接。
流程圖
相關語法
語法
- WiFi.persistent();
是否在flash中保存WiFi配置-可選
參數(true or false)
語法
- WiFi.begin();
在不使用任何參數的情況下調用此函數,ESP8266模塊將啟用無線終端模式,并根據以前保存在閃存中的wifi配置連接到最近一次使用的接入點。
語法
- WiFi.begin(ssid, password, channel, bssid, connect);
我們也可以再調用begin函數的時候,為函數提供參數。這些參數的具體功能請見下面的“參數”部分介紹。
參數
參數
- ssid – 要連接的wifi接入點的名字,最多可以包含32個字符。(類型:char*)
- password – 要連接的 wifi接入點密碼,長度至少應為8個字符且不超過64個字符。(類型:char*)
- channel – 要連接的wifi接入點信道。(類型:int32_t)
- bssid – 要連接的wifi接入點的mac地址。(類型:const uint8_t*)
- connect – 連接狀態參數。如果connect參數為true,ESP8266開發板會使用閃存中儲存的信息嘗試連接WiFi。如果connect參數為false,ESP8266開發板不會嘗試連接WiFi,而只會將WiFi連接信息保存在閃存中。(類型:bool)
返回值
返回值
- 返回值數據類型為布爾型。如果ESP8266開發板成功啟動無線終端模式,則返回true,否則返回false。
示例程序
首次執行
#include <ESP8266WiFi.h> // 使用ESP8266WiFi庫const char* ssid = "xxxxxx"; // 連接WiFi名// 請將您需要連接的WiFi名填入引號中 const char* password = "xxxxxx"; // 連接WiFi密碼// 請將您需要連接的WiFi密碼填入引號中void setup() {Serial.begin(9600); // 啟動串口通訊WiFi.persistent(true);//首次在flash中保存WiFi配置-可選WiFi.begin(ssid, password); // 啟動網絡連接Serial.print("Connecting to "); // 串口監視器輸出網絡連接信息Serial.print(ssid); Serial.println(" ..."); // 告知用戶esp8266正在嘗試WiFi連接int i = 0; // 這一段程序語句用于檢查WiFi是否連接成功while (WiFi.status() != WL_CONNECTED) { // WiFi.status()函數的返回值是由esp8266的WiFi連接狀態所決定的。 delay(1000); // 如果WiFi連接成功則返回值為WL_CONNECTED Serial.print(i++); Serial.print(' '); // 此處通過While循環讓esp8266每隔一秒鐘檢查一次WiFi.status()函數返回值} // 同時esp8266將通過串口監視器輸出連接時長讀秒。// 這個讀秒是通過變量i每隔一秒自加1來實現的。Serial.println(""); // WiFi連接成功后Serial.println("Connection established!"); // NodeMCU將通過串口監視器輸出"連接成功"信息。Serial.print("IP address: "); // 同時還將輸出esp8266的IP地址。這一功能是通過調用Serial.println(WiFi.localIP()); // WiFi.localIP()函數來實現的。該函數的返回值即NodeMCU的IP地址。 }void loop() { }后續調用(再次燒錄新代碼)
#include <ESP8266WiFi.h> // 使用ESP8266WiFi庫const char* ssid = "xxxxxx"; // 連接WiFi名// 請將您需要連接的WiFi名填入引號中 const char* password = "xxxxxx"; // 連接WiFi密碼// 請將您需要連接的WiFi密碼填入引號中void setup() {Serial.begin(9600); // 啟動串口通訊WiFi.begin(); // 啟動網絡連接Serial.print("Connecting to "); // 串口監視器輸出網絡連接信息Serial.print(ssid); Serial.println(" ..."); // 告知用戶esp8266正在嘗試WiFi連接int i = 0; // 這一段程序語句用于檢查WiFi是否連接成功while (WiFi.status() != WL_CONNECTED) { // WiFi.status()函數的返回值是由esp8266的WiFi連接狀態所決定的。 delay(1000); // 如果WiFi連接成功則返回值為WL_CONNECTED Serial.print(i++); Serial.print(' '); // 此處通過While循環讓esp8266每隔一秒鐘檢查一次WiFi.status()函數返回值} // 同時esp8266將通過串口監視器輸出連接時長讀秒。// 這個讀秒是通過變量i每隔一秒自加1來實現的。Serial.println(""); // WiFi連接成功后Serial.println("Connection established!"); // NodeMCU將通過串口監視器輸出"連接成功"信息。Serial.print("IP address: "); // 同時還將輸出esp8266的IP地址。這一功能是通過調用Serial.println(WiFi.localIP()); // WiFi.localIP()函數來實現的。該函數的返回值即NodeMCU的IP地址。 }void loop() { }擦除flash中的Wifi配置
#include <ESP8266WiFi.h> // 使用ESP8266WiFi庫const char* ssid = "xxxxxx"; // 連接WiFi名// 請將您需要連接的WiFi名填入引號中 const char* password = "xxxxxx"; // 連接WiFi密碼// 請將您需要連接的WiFi密碼填入引號中void setup() {Serial.begin(9600); // 啟動串口通訊WiFi.persistent(false);WiFi.begin(); // 啟動網絡連接Serial.print("Connecting to "); // 串口監視器輸出網絡連接信息Serial.print(ssid); Serial.println(" ..."); // 告知用戶esp8266正在嘗試WiFi連接int i = 0; // 這一段程序語句用于檢查WiFi是否連接成功while (WiFi.status() != WL_CONNECTED) { // WiFi.status()函數的返回值是由esp8266的WiFi連接狀態所決定的。 delay(1000); // 如果WiFi連接成功則返回值為WL_CONNECTED Serial.print(i++); Serial.print(' '); // 此處通過While循環讓esp8266每隔一秒鐘檢查一次WiFi.status()函數返回值} // 同時esp8266將通過串口監視器輸出連接時長讀秒。// 這個讀秒是通過變量i每隔一秒自加1來實現的。Serial.println(""); // WiFi連接成功后Serial.println("Connection established!"); // NodeMCU將通過串口監視器輸出"連接成功"信息。Serial.print("IP address: "); // 同時還將輸出esp8266的IP地址。這一功能是通過調用Serial.println(WiFi.localIP()); // WiFi.localIP()函數來實現的。該函數的返回值即NodeMCU的IP地址。WiFi.disconnect(true); //擦除flash中的Wifi配置 }void loop() { }借鑒網站:
- 太極創客
- Github Arduino/libraries/ESP8266WiFi/
附ESP8266 Arduino開發文檔
- ESP8266 Arduino Core’s documentation
- 太極創客物聯網開發文檔
總結
- 物聯網開發盡可能閱讀項目原文檔及源代碼
2022/1/4 天氣晴
總結
以上是生活随笔為你收集整理的ESP8266WiFi-begin调用储存在ESP8266的闪存系统中的WiFi设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022年必刷前端高频面试题
- 下一篇: ubuntu系统下C语言编写简单程序