dirty 发表于 2024-5-18 09:57

【Beetle ESP32 C6迷你开发板】--5.WIFI扫描

<div class='showpostmsg'><p>&nbsp; &nbsp; &nbsp; 本篇讲述Beetle ESP32 C6 WIFI扫描热点功能。</p>

<p><strong><span style="color:#0000ff;">一.代码准备</span></strong></p>

<p>1.串口初始化,设置WIFI为STA模式,并主动断连一下WIFI</p>

<pre>
<code>
void setup() {
Serial.begin(115200);

// Set WiFi to station mode and disconnect from an AP if it was previously connected.
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);

Serial.println("Setup done");
}</code></pre>

<p>2.启动WIFI扫描,并将扫描结果打印出来。扫描结果包含扫描到的个数,WIFI名称SSID,信号强度rssi,通道CH和加密类型Encryption ,依此全部打印出来。扫描完后删除wifi扫描内存,间隔5s扫描一次。</p>

<pre>
<code>void loop() {
Serial.println("Scan start");

// WiFi.scanNetworks will return the number of networks found.
int n = WiFi.scanNetworks();
Serial.println("Scan done");
if (n == 0) {
    Serial.println("no networks found");
} else {
    Serial.print(n);
    Serial.println(" networks found");
    Serial.println("Nr | SSID                           | RSSI | CH | Encryption");
    for (int i = 0; i &lt; n; ++i) {
      // Print SSID and RSSI for each network found
      Serial.printf("%2d", i + 1);
      Serial.print(" | ");
      Serial.printf("%-32.32s", WiFi.SSID(i).c_str());
      Serial.print(" | ");
      Serial.printf("%4ld", WiFi.RSSI(i));
      Serial.print(" | ");
      Serial.printf("%2ld", WiFi.channel(i));
      Serial.print(" | ");
      switch (WiFi.encryptionType(i)) {
      case WIFI_AUTH_OPEN:            Serial.print("open"); break;
      case WIFI_AUTH_WEP:             Serial.print("WEP"); break;
      case WIFI_AUTH_WPA_PSK:         Serial.print("WPA"); break;
      case WIFI_AUTH_WPA2_PSK:      Serial.print("WPA2"); break;
      case WIFI_AUTH_WPA_WPA2_PSK:    Serial.print("WPA+WPA2"); break;
      case WIFI_AUTH_WPA2_ENTERPRISE: Serial.print("WPA2-EAP"); break;
      case WIFI_AUTH_WPA3_PSK:      Serial.print("WPA3"); break;
      case WIFI_AUTH_WPA2_WPA3_PSK:   Serial.print("WPA2+WPA3"); break;
      case WIFI_AUTH_WAPI_PSK:      Serial.print("WAPI"); break;
      default:                        Serial.print("unknown");
      }
      Serial.println();
      delay(10);
    }
}
Serial.println("");

// Delete the scan result to free memory for code below.
WiFi.scanDelete();

// Wait a bit before scanning again.
delay(5000);
}</code></pre>

<p><strong><span style="color:#0000ff;">二.编译烧录测验</span></strong></p>

<p>&nbsp; &nbsp; &nbsp; 编译烧录运行后,可看到每隔5s扫描一次WIFI,并将扫描信息打印出来。</p>

<div style="text-align: center;"></div>

<div style="text-align: center;">图1:WIFI扫描</div>

<p>&nbsp; &nbsp; &nbsp; 至此,对Beetle ESP32 C6的WIFI 扫描功能进行了调试测验。</p>
</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: 【Beetle ESP32 C6迷你开发板】--5.WIFI扫描