MicroPython:Библиотеки/network/Класс WLAN
Класс WLAN – управление встроенными WiFi-интерфейсами[1]
Этот класс – это драйвер для сетевых WiFi-процессоров. Пример использования:
import network
# Включаем интерфейс станции и подключаемся к точке WiFi-доступа:
nic = network.WLAN(network.STA_IF)
nic.active(True)
nic.connect('your-ssid', 'your-password')
# Теперь используем сокеты как обычно.
Конструкторы
- Класс network.WLAN(interface_id) – создает объект сетевого интерфейса WLAN. Поддерживаемые интерфейсы: network.STA_IF (станция она же клиент; подключается к вышестоящим точкам WiFi-доступа) и network.AP_IF (точка доступа; позволяет подключаться к себе другим WiFi-клиентам). Доступность методов класса (они описаны ниже) зависит от типа интерфейса. Например, только станции могут использовать WLAN.connect() для подключения к точке доступа.
Методы
- WLAN.active()
- WLAN.connect()
- WLAN.disconnect()
- WLAN.scan()
- WLAN.status()
- WLAN.isconnected()
- WLAN.ifconfig()
- WLAN.config()
- WLAN.active([is_active]) – если в аргументе is_active задано булево значение, активирует или деактивирует сетевой интерфейс. Если никакого аргумента не задано, считывает текущее состояние интерфейса. Большинству других методов требуется, чтобы интерфейс был активным.
- WLAN.connect(ssid=None, password=None, *, bssid=None) – подключает устройство к заданной беспроводной сети ssid при помощи заданного пароля password. Если будет задан аргумент bssid, это ограничит соединение точкой доступа с этим MAC-адресом (в этом случае также должен быть задан аргумент ssid).
- WLAN.disconnect() – отключает устройство от беспроводной сети, к которой оно подключено в данный момент.
- WLAN.scan() – сканирует доступные беспроводные сети.
Сканирование доступно только на интерфейсе станции. Возвращает список кортежей с информацией о точках WiFi-доступа вот такого типа: (ssid, bssid, channel, RSSI, authmode, hidden) Аргумент bssid – это аппаратный адрес точки доступа в двоичном виде, возвращаемый в виде объекта bytes. Чтобы преобразовать его в ASCII-форму, воспользуйтесь функцией ubinascii.hexlify(). В элементе authmode может быть одно из 5 следующих значений:
- 0 – шифрование отсутствует
- 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 – соединение установлено успешно.
При вызове с аргументом param он должен быть строкой с названием параметра, который надо прочесть. Поддерживаемые параметры в режиме WiFi-станции – это: 'rssi'.
- WLAN.isconnected() – если устройство в режиме станции, подключено к точке WiFi-доступа и имеет корректный IP-адрес, возвращает True. Если устройство в режиме точки доступа и подключено, то возвращает 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, ...) – задают или считывают общие параметры сетевого интерфейса. Эти методы позволяют работать с дополнительными параметрами, тогда как со стандартными IP-настройками работает метод WLAN.ifconfig(). К эти дополнительным параметрам относятся параметры, специфичные для используемых сети и устройства. Задавая параметры, необходимо использовать только синтаксис именованных аргументов; за раз можно задать несколько аргументов. Чтобы прочесть параметры, их названия должны быть в виде строк в кавычках; за раз можно задать только один аргумент.
# Задаем название точки 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 | Поддерживаемый режим аутентификации (числа, см. WLAN.scan()) |
password | Пароль для доступа к сети (строка) |
dhcp_hostname | Имя хоста DHCP |
<syntaxhighlight lang="python" enclose="div">