クラス WLAN -- 組込み WiFi インタフェースの制御

このクラスは WiFi ネットワークプロセッサー用のドライバーを提供します。たとえば次のように使います:

import network
# ステーションインタフェースを有効にし、WiFi アクセスポイントに接続
nic = network.WLAN(network.STA_IF)
nic.active(True)
nic.connect('your-ssid', 'your-password')
# これで通常どおりソケットを使えるようになる

コンストラクタ

class network.WLAN(interface_id)

WLAN ネットワークインタフェースオブジェクトを作成します。サポートされているインタフェースは network.STA_IF (ステーション、別名クライアント、上流のWiFiアクセスポイントに接続します)と network.AP_IF (アクセスポイント、他の WiFi クライアントが接続できるようにする)です。以下のメソッドを利用できるかどうかは、インターフェイスの種類によって異なります。たとえば、STA インタフェースのみが WLAN.connect() でアクセスポイントに接続できます。

メソッド

WLAN.active([is_active])

ブール型の引数が渡された場合、ネットワークインタフェースを有効化("up")または無効化("down")します。引数が与えられていなければ現在の状態を問い合わせます。他のほとんどのメソッドは有効化したインターフェースを必要とします。

WLAN.connect(ssid=None, password=None, *, bssid=None)

指定されたパスワードを使用して、指定されたワイヤレスネットワークに接続します。 bssid が与えられると、接続はそのMACアドレスのアクセスポイントに制限されます(この場合でも ssid は指定する必要があります)。

WLAN.disconnect()

現在接続している無線ネットワークから切断します。

WLAN.scan()

利用可能な無線ネットワークをスキャンします。

スキャンは STA インターフェイスでのみ可能です。戻り値は WiFi アクセスポイントに関する情報を含むタプルのリストです。

(ssid, bssid, channel, RSSI, authmode, hidden)

bssid はアクセスポイントのハードウェアアドレスで、バイナリ形式です。これは bytes 型オブジェクトとして返されます。 ubinascii.hexlify() を使えば ASCII 形式に変換できます。

authmode には5つの値があります:

  • 0 -- open
  • 1 -- WEP
  • 2 -- WPA-PSK
  • 3 -- WPA2-PSK
  • 4 -- WPA/WPA2-PSK

hidden には2つの値があります:

  • 0 -- 可視"
  • 1 -- 不可視
WLAN.status([param])

無線接続の現在のステータスを返します。

引数なしで呼び出された場合、戻り値はネットワークリンクステータスを表します。戻されるステータスは定数として定義されています:

  • STAT_IDLE -- 無接続、無アクティビティ
  • STAT_CONNECTING -- 接続中
  • STAT_WRONG_PASSWORD -- パスワード不正により失敗
  • STAT_NO_AP_FOUND -- アクセスポイントが応答しないため失敗
  • STAT_CONNECT_FAIL -- その他の問題により失敗
  • STAT_GOT_IP -- 接続成功

1つの引数 param を指定して呼び出された場合、 param は取得するステータスパラメータの名前を表す文字列にする必要があります。WiFi STA モードでサポートされているパラメータは 'rssi' です。

WLAN.isconnected()

STA モードの場合、WiFi アクセスポイントに接続されていて有効なIPアドレスを持っていれば True を返します。AP モードの場合、ステーションが接続されていれば True を返します。これら以外では False を返します。

WLAN.ifconfig([(ip, subnet, gateway, dns)])

IP レベルのネットワークインターフェースパラメータ(IPアドレス、サブネットマスク、ゲートウェイ、DNSサーバー)を取得/設定します。引数なしで呼び出されると、このメソッドは上記の情報を含む4タプルを返します。上記の値を設定するには、必要な情報を含む4項目のタプルを渡します。例えば次のように設定します:

nic.ifconfig(('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))
WLAN.config('param')
WLAN.config(param=value, ...)

一般的なネットワークインターフェースパラメータを取得または設定します。これらのメソッドは、(WLAN.ifconfig() で扱われるように)標準の IP 設定以外の追加のパラメータを扱うことを可能にします 。これらには、ネットワーク固有およびハードウェア固有のパラメータが含まれています。パラメータを設定するには、キーワード引数の構文を使用する必要があり、複数のパラメータを一度に設定できます。問合せを実行する場合、パラメータ名は文字列として引用符で囲みます。一度に問合せできるパラメータは1つだけです。

# WiFi アクセスポイント名(正式には ESSID と呼ばれている)と WiFi チャンネルを設定
ap.config(essid='My AP', channel=11)
# 一つずつパラメータを問合せ
print(ap.config('essid'))
print(ap.config('channel'))

以下は一般的にサポートされているパラメータです(特定のパラメータが使用可能かどうかは、ネットワーク技術の種類、ドライバー、 MicroPython ポート によって異なります)。

パラメータ 説明
mac MAC アドレス(bytes 型オブジェクト)
essid WiFi アクセスポイント名(文字列)
channel WiFi チャンネル(整数)
hidden ESSID が非表示かどうか(ブール型)
authmode サポートされている認証モード(列挙値、モジュール定数を参照)
password アクセスパスワード(文字列)
dhcp_hostname 使用する DHCP ホスト名