完整可运行代码(ESP-01S WiFi 扫描器)

#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

代码说明

  1. 串口波特率:115200,打开串口监视器必须选这个速率
  2. WiFi 模式:WIFI_STA(仅作为客户端扫描,不开启热点)
  3. 扫描函数

    • WiFi.scanNetworks(false, false)
    • 第一个false:同步扫描(等待扫描完成)
    • 第二个false:不显示隐藏 WiFi
  4. 输出信息

    • WiFi 序号
    • WiFi 名称(SSID)
    • 信号强度(dBm,数值越大信号越好,如 -40 比 -70 强)
    • 加密锁标识(🔒= 加密,空 = 开放)

使用方法

  1. 打开 Arduino IDE
  2. 安装ESP8266开发板库
  3. 选择板型:Generic ESP8266 Module
  4. 选择正确串口号
  5. 上传代码
  6. 打开串口监视器,波特率设为115200

常见问题解决

  • 扫描不到 WiFi:ESP-01S 必须外接天线,否则信号极差
  • 上传失败:ESP-01S 需要进入烧录模式(GPIO0 接地后上电)
  • 乱码:串口监视器波特率必须选115200

总结

  • 代码已完整修复,可直接复制上传
  • 每 5 秒自动扫描一次周围 WiFi
  • 信号强度、加密状态一目了然
  • 专为 ESP-01S 优化,稳定不报错

发表评论

邮箱地址不会被公开。 必填项已用*标注