クラス 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()

利用可能な無線ネットワークをスキャンします。隠れたネットワーク(SSID がブロードキャストされていないネットワーク)も、WLAN インターフェイスで許可されていればスキャンされます。

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

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

bssid はアクセスポイントのハードウェアアドレスで、バイナリ形式です。これは bytes 型オブジェクトとして返されます。 binascii.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 ホスト名
reconnects 再接続を試みる回数(整数値、0=再接続なし、-1=無制限)
txpower 最大信号強度(dBm 単位で整数または浮動小数点数で指定)