一、环境:
arduino IDE或VS Code PlatformIO (我是后者)
二、硬件准备:
一个esp32
一台电脑
一根数据线
三、代码功能:
串口输出所有扫描到的WiFi及信号强度:
格式:
序号:WiFi名 (信号强度)是否为开放网络
3 : oplus_co_apjqzt (-69) *
五、最简代码
#include <Arduino.h>
#include <WiFi.h>
void setup() {
// 串口初始化,波特率115200
Serial.begin(115200);
// 设置WiFi模式为STA
WiFi.mode(WIFI_STA);
// 断开WiFi
WiFi.disconnect();
// 延时0.1s
delay(100);
}
void loop() {
Serial.println("scan start");
// 扫描网络
int n = WiFi.scanNetworks();
Serial.println("scan done");
if (n == 0) {
Serial.println("no networks found");
} else {
Serial.print(n);
Serial.println(" networks found");
for (int i = 0; i < n; ++i) {
// Print SSID and RSSI for each network found
Serial.print(i + 1);
Serial.print(": ");
Serial.print(WiFi.SSID(i));
Serial.print(" (");
// WiFi信号强度检测
Serial.print(WiFi.RSSI(i));
Serial.print(")");
// 若此WiFi为开放网络,则输出*
Serial.println((WiFi.encryptionType(i) == WIFI_AUTH_OPEN)?" ":"*");
delay(10);
}
}
Serial.println("");
// 延时0.5秒
delay(5000);
}
注释写的很详细。
主要是这几个函数:
1、扫描附近WiFi,返回WiFi数
WiFi.scanNetworks()
2、返回WiFi强度
WiFi.RSSI()
3、返回WiFi加密类型
WiFi.encryptionType()
WiFi加密类型有以下几种:
WIFI_AUTH_OPEN
WIFI_AUTH_WEP
WIFI_AUTH_WPA_PSK
WIFI_AUTH_WPA2_PSK
WIFI_AUTH_WPA_WPA2_PSK
WIFI _AUTH_WPA2_ENTERPRISE
最后,我有话说:
如果文章对你有帮助,我很开心。有疑问请留言,看到后,我会回复。