#include <ESP8266WiFi.h>
void setup() {
// 1. 初始化串口通信
Serial.begin(115200);
delay(100);
Serial.println();
Serial.println("🚀 正在启动 ESP-01S 测试程序...");
// 2. 设置 WiFi 模式为 站点模式
WiFi.mode(WIFI_STA);
// 3. 关闭 WiFi 自动连接
WiFi.disconnect();
delay(500);
Serial.println("📡 准备开始扫描周围 WiFi...");
}
void loop() {
Serial.println("🔍 正在扫描...");
// 新版 ESP8266 库扫描函数
// 参数:(异步模式, 显示隐藏WiFi)
int n = WiFi.scanNetworks(false, false);
Serial.println("------------------------------------------------");
Serial.printf("扫描完成!共发现 %d 个 WiFi 网络\n", n);
if (n == 0) {
Serial.println("⚠️ 未发现任何 WiFi 信号(请检查天线或距离)");
} else {
// 打印扫描结果
for (int i = 0; i < n; ++i) {
Serial.printf("%d: %s (%d dBm) %s\n",
i + 1,
WiFi.SSID(i).c_str(),
WiFi.RSSI(i),
(WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "🔒");
delay(10);
}
}
Serial.println("------------------------------------------------");
Serial.println("等待 5 秒后再次扫描...");
delay(5000);
}
666
代码说明
- 串口波特率:115200,打开串口监视器必须选这个速率
- WiFi 模式:WIFI_STA(仅作为客户端扫描,不开启热点)
-
扫描函数
- WiFi.scanNetworks(false, false)
- 第一个false:同步扫描(等待扫描完成)
- 第二个false:不显示隐藏 WiFi
-
输出信息
- WiFi 序号
- WiFi 名称(SSID)
- 信号强度(dBm,数值越大信号越好,如 -40 比 -70 强)
- 加密锁标识(🔒= 加密,空 = 开放)
使用方法
- 打开 Arduino IDE
- 安装ESP8266开发板库
- 选择板型:Generic ESP8266 Module
- 选择正确串口号
- 上传代码
- 打开串口监视器,波特率设为115200
常见问题解决
- 扫描不到 WiFi:ESP-01S 必须外接天线,否则信号极差
- 上传失败:ESP-01S 需要进入烧录模式(GPIO0 接地后上电)
- 乱码:串口监视器波特率必须选115200
总结
- 代码已完整修复,可直接复制上传
- 每 5 秒自动扫描一次周围 WiFi
- 信号强度、加密状态一目了然
- 专为 ESP-01S 优化,稳定不报错