位置导航: ESP8266库 / ESP8266WiFiSTA库 / 本页
说明
waitForConnectResult用于在无线终端模式或无线终端+接入点混合模式下的ESP8266模块检测当前连接状态。
语法
wiFi.waitForConnectResult()
wiFi.waitForConnectResult(timeoutLength)
简例:
1 2 3 |
unsigned long timeoutLength = 5000;//设置5000毫秒后无响应就视为网络连接超时 ... WiFi.waitForConnectResult(timeoutLength); |
参数
ESP8266在尝试连接WiFi时,我们可以通过timeoutLength(毫秒)来设置等待连接的时间。如果ESP8266在timeoutLength设置的时间内仍未成功连接WiFi,则本函数会返回“超时错误”错误码:-1。
关于ESP8266的错误码详情见下面的返回值部分(参数数据类型:unsigned long型)
返回值
返回值类型为uint8_t。以下是返回值数值以及对应的信息:
255: WL_NO_SHIELD – 返回值为255说明无扩展板。8266本来带有网络功能,不需要额外的扩展板(sheld),因此一般不会出现这个报错
0: WL_IDLE_STATUS – 返回值为0说明正在尝试连接
1: WL_NO_SSID_AVAIL – 返回值为1说明没有找到设定的SSID的网络
2: WL_SCAN_COMPLETED – 返回值为2说明网络扫描完毕
3: WL_CONNECTED – 返回值为3说明连接成功成功
4: WL_CONNECT_FAILED – 返回值为4说明连接失败
5: WL_CONNECTION_LOST – 返回值为5说明连接丢失
6: WL_DISCONNECTED – 返回值为6说明未连接
-1: WiFi连接超时
示例程序
关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。
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 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : WiFi.waitForConnectResult()演示 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : 小黑 日期/Date(YYYYMMDD) : 20200405 此程序使用ESP8266WiFiSTA库来演示在Station模式下返回当前网络连接状态。本实例仅展示成功连接状况的返回值 ----------------------------------------------------------------------- 本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。 该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/ ***********************************************************************/ #include <ESP8266WiFi.h> #define AP_ssid "TaichiMaker_WIFI" //这里改成你的设备当前环境下要连接的接入点名字 #define password "xxxxxxxx" //这里改成你的设备当前环境下要连接的接入点密码 int i = 0;//用来判定连接是否超时的累加量 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("无线终端模式成功开启,网络连接成功"); } void loop() { //设置5000毫秒后无响应就视为网络连接超时 unsigned long timeoutLength = 5000; //打印当前网络连接状态码 Serial.println(WiFi.waitForConnectResult(timeoutLength)); delay(1000); } |
位置导航: ESP8266库 / ESP8266WiFiSTA库 / 本页