说明

disconnect函数将当前配置给ESP8266模块的SSID和密码设置为空值,使ESP8266与断开WiFi连接。

语法

wiFi.disconnect()
wiFi.disconnect(wifioff)
如果参数wifioff设置为false或者不填参数,SSID和密码将会被设置为空值,同时这一操作还会使ESP8266模块与接入点断开连接。需要注意的是,用这种方法仅仅会断开WiFi连接,ESP8266模块仍然会处于无线终端模式。
Arduino
WiFi.disconnect();//断开连接,但仍然处于无线终端模式,只是清除了SSID和密码
1
WiFi.disconnect();//断开连接,但仍然处于无线终端模式,只是清除了SSID和密码
当我们设置入参wifioff 为true,那么这样的操作会直接关闭无线终端模式。
Arduino
bool wifioff = true//设置关闭变量
*中略*
WiFi.disconnect(wifioff);//断开连接
1
2
3
boolwifioff=true//设置关闭变量
*中略*
WiFi.disconnect(wifioff);//断开连接
参数
wifioff (可选参数):此参数为bool型。设置为true,那么就会关闭无线终端模式。设置为false,则SSID和密码将会被设置为空值,同时还会使ESP8266模块与接入点断开连接。
返回值
返回是否成功设置。成功设置则返回true,否则返回false。返回值数据类型为布尔型。
示例程序
关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。
当您将WiFi连接信息修改后并且将本示例程序上传ESP8266开发板后,开发板随即会自动连接WiFi。WiFi连接成功后,设备会保持连接状态等待10秒钟,然后设备将会使用以下程序中的 WiFi.disconnect(wifioff) 语句来实现断开网络这一操作。
Arduino
/**********************************************************************
项目名称/Project : 零基础入门学用物联网
程序名称/Program name : WiFi.disconnect(wifioff)演示
团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
作者/Author : 小黑
日期/Date(YYYYMMDD) : 20200405
程序目的/Purpose :

此程序使用ESP8266WiFiSTA库来演示建立连接,ESP8266模块关闭无线终端模式

-----------------------------------------------------------------------

本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。

该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页:

http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/

***********************************************************************/

#include 
#define AP_ssid "TaichiMaker_WIFI" //这里改成你的设备当前环境下要连接的接入点名字
#define password "xxxxxxxx" //这里改成你的设备当前环境下要连接的接入点密码
int i = 0;//用来判定连接是否超时的累加量
bool wifioff = true;//演示关闭连接所需的参数
void setup(void)
{
Serial.begin(9600); // 启动串口通讯,波特率设置为9600
Serial.println("开始连接");
//调用 WiFi.begin()函数,开始连接接入点
WiFi.begin(AP_ssid, password);
Serial.print("正在连接到");
Serial.print(AP_ssid);
//这里的循环用来判断是否连接成功的。连接过程中每隔500毫秒会检查一次是否连接成功,,并打一个点表示正在连接中
//连接成功后会给出提示,但是若60秒后还是没有连接上,则会提示超时
while (WiFi.status() != WL_CONNECTED) {
i++;
delay(500);
Serial.print(".");
if (i > 120) { //60秒后如果还是连接不上,就判定为连接超时
Serial.print("连接超时!请检查网络环境");
break;
}
}
Serial.println("网络连接成功");
//这一部分用来输出连接网络的基本信息
Serial.println("500"); // 延时500毫秒
Serial.print("当前工作模式:"); // 告知用户设备当前工作模式
Serial.println(WiFi.getMode());
Serial.print("连接到的接入点名字:");
Serial.println(AP_ssid); // 告知用户连接到的接入点WiFi名
Serial.print("连接到的接入点密码:");
Serial.println(password); // 告知用户连接到的接入点WiFi密码
Serial.print("无线终端模式成功开启,网络连接成功");
Serial.println("10秒后断开连接");
delay(5000);
delay(5000);
Serial.println("即将断开连接");
delay(500);
WiFi.disconnect(wifioff);//断开连接
if (WiFi.status() != WL_CONNECTED) {
Serial.println("无线终端和接入点的连接已中断");
}
else
{
Serial.println("未能成功断开连接!");
}
}
void loop() {}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
/**********************************************************************
项目名称/Project          : 零基础入门学用物联网
程序名称/Program name     : WiFi.disconnect(wifioff)演示
团队/Team                : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
作者/Author              : 小黑
日期/Date(YYYYMMDD)     : 20200405
程序目的/Purpose          :
此程序使用ESP8266WiFiSTA库来演示建立连接,ESP8266模块关闭无线终端模式
-----------------------------------------------------------------------
本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。
该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页:
http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/
***********************************************************************/
#include 
#define AP_ssid   "TaichiMaker_WIFI" //这里改成你的设备当前环境下要连接的接入点名字
#define password  "xxxxxxxx"         //这里改成你的设备当前环境下要连接的接入点密码
inti=0;//用来判定连接是否超时的累加量
boolwifioff=true;//演示关闭连接所需的参数
voidsetup(void)
{
Serial.begin(9600);// 启动串口通讯,波特率设置为9600
Serial.println("开始连接");
//调用 WiFi.begin()函数,开始连接接入点
WiFi.begin(AP_ssid,password);
Serial.print("正在连接到");
Serial.print(AP_ssid);
//这里的循环用来判断是否连接成功的。连接过程中每隔500毫秒会检查一次是否连接成功,,并打一个点表示正在连接中
//连接成功后会给出提示,但是若60秒后还是没有连接上,则会提示超时
while(WiFi.status()!=WL_CONNECTED){
i++;
delay(500);
Serial.print(".");
if(i>120){//60秒后如果还是连接不上,就判定为连接超时
Serial.print("连接超时!请检查网络环境");
break;
}
}
Serial.println("网络连接成功");
//这一部分用来输出连接网络的基本信息
Serial.println("500");// 延时500毫秒
Serial.print("当前工作模式:");// 告知用户设备当前工作模式
Serial.println(WiFi.getMode());
Serial.print("连接到的接入点名字:");
Serial.println(AP_ssid);// 告知用户连接到的接入点WiFi名
Serial.print("连接到的接入点密码:");
Serial.println(password);// 告知用户连接到的接入点WiFi密码
Serial.print("无线终端模式成功开启,网络连接成功");
Serial.println("10秒后断开连接");
delay(5000);
delay(5000);
Serial.println("即将断开连接");
delay(500);
WiFi.disconnect(wifioff);//断开连接
if(WiFi.status()!=WL_CONNECTED){
Serial.println("无线终端和接入点的连接已中断");
}
else
{
Serial.println("未能成功断开连接!");
}
}
voidloop(){}

相关内容