ESP-WROOM-02로 Wi-Fi 액세스 포인트 스캔

ESP-WROOM-02에 Arduino 스케치(프로그램)를 쓸 수 있도록 하는 라이브러리 「ESP8266 Arduino Core」에는 다양한 샘플이 준비되어 있습니다. 이번에는 그 중 ESP-WROOM-02가 잡을 수 있는 액세스 포인트와 그 신호의 강도(RSSI)를 스캔하는 샘플을 다룹니다.

샘플 스케치



Arduino IDE 메뉴에서 [ファイル]→[スケッチの例]→[ESP8266WiFi]→[WiFiScan]를 선택하여 샘플 스케치를 엽니다. Wi-Fi 자체에는 연결하지 않으므로 SSID나 비밀번호를 입력할 필요가 없습니다.

WiFiScan
/*
 *  This sketch demonstrates how to scan WiFi networks. 
 *  The API is almost the same as with the WiFi Shield library, 
 *  the most obvious difference being the different file you need to include:
 */
#include "ESP8266WiFi.h"

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");
}

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");
    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(" (");
      Serial.print(WiFi.RSSI(i));
      Serial.print(")");
      Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
      delay(10);
    }
  }
  Serial.println("");

  // Wait a bit before scanning again
  delay(5000);
}

원래 접속하고 있던 Wi-Fi와의 접속을 일단 끊습니다.
// Set WiFi to station mode and disconnect from an AP if it was previously connected
WiFi.mode(WIFI_STA);
WiFi.disconnect();

액세스 포인트의 수를 가져옵니다.
int n = WiFi.scanNetworks();

액세스 포인트 이름과 RSSI를 하나씩 살펴보겠습니다.
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(" (");
  Serial.print(WiFi.RSSI(i));
  Serial.print(")");
  Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
  delay(10);
}

어떤 것을 사용할 수 있습니까?



실제로 어떻게 사용할 수 있는지 조금 핀하지 않을 것입니다
취득한 액세스 포인트 중에서 신호의 강도가 가장 강한 것을 선택하여 접속하거나 특정 액세스 포인트가 살아 있는지 확인하는 등입니까?

좋은 웹페이지 즐겨찾기