位置导航: ESP8266库 / ESP8266WiFiScan库 / 本页
说明
该函数可以扫描到ESP8266开发板所在环境中的可用WIFI网络,并且将WiFi网络信息保存到内存中。通过调用SSID、RSSI等函数,我们还可以得到这些扫描到的WIFI信息。
此函数在扫描WiFi网络时采用异步扫描模式。与其相对应的还有scanNetworks同步扫描WiFi。
所谓异步扫描是与同步扫描相对应的。在异步扫描模式下,ESP8266开发板每一次扫描到一个WiFi网络,即将该网络信息保存到开发板内存中。
调用本函数时,需要提供一个回调函数作为参数。当所有WiFi网络都扫描完成以后,ESP8266开发板将会调用此回调函数。另外,在调用回调函数时,ESP8266开发板所扫描到的WiFi网络数量还会作为参数传递给该回调函数。
语法
wifi.scanNetworksAsync(onComplete)
wifi.scanNetworksAsync(scanResult, showHidden)
参数
onComplete
:WiFi扫描结束后的回调函数(WiFi扫描 结束后将会调用此回调函数)
showHidden:此参数用于控制扫描过程中是否扫描隐藏WiFi网络。设置为true时,ESP8266开发板会扫描隐藏WiFi。默认为false。(参数类型:bool)
返回值
无
示例程序
关于本函数的具体使用方法,请参考以下代码,尤其是代码中高亮的语句部分。
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 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : ESP8266WiFiScan_demo_3 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : xiaokai 日期/Date(YYYYMMDD) : 20200319 程序目的/Purpose : 用于演示ESP8266WiFiScan库中scanNetworksAsync 函数 ----------------------------------------------------------------------- 本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。 该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/iot-c/esp8266-nodemcu-web-client/http-request/ ***********************************************************************/ #include <ESP8266WiFi.h> void setup() { Serial.begin(115200); //设置串口波特率,以便打印信息 delay(1000); //延时1s WiFi.mode(WIFI_STA); //设置为无线终端模式 WiFi.disconnect(); //断开,不连接到任何一个接入点 delay(100); Serial.println("STA建立完成"); Serial.println("异步扫描开始 ... "); WiFi.scanNetworksAsync(onComplete); } void loop() {} //回调函数 void onComplete(int n){ Serial.printf("扫描完成,共发现%d个网络\n", n); for (int i = 0; i < n; i++) { Serial.print(i + 1); //接入点信息 Serial.print(": "); //打印wifi账号 Serial.print(WiFi.SSID(i)); //打印该接入点信道 Serial.print(String(", WIFI信道:")+WiFi.channel(i)); Serial.print(", 是否隐藏:"); //打印该接入点是否隐藏 Serial.print(WiFi.isHidden(i)?"隐藏":"显示"); Serial.print(", 信号强度:"); //打印wifi信号强度 Serial.print(WiFi.RSSI(i)); Serial.print("dBm"); Serial.print(", 是否加密:"); //打印wifi加密方式 Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?"开放":"加密"); } } |
相关内容
位置导航: ESP8266库 / ESP8266WiFiScan库 / 本页