MicroPython:Библиотеки/network/Класс WLAN: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Класс WLAN – управление встр...»)
 
Нет описания правки
Строка 17: Строка 17:


== Конструкторы ==
== Конструкторы ==
* [[MicroPython:Библиотеки/network/Класс WLAN/network.WLAN()|network.WLAN()]]


* Класс network.WLAN(interface_id) – создает объект сетевого интерфейса WLAN. Поддерживаемые интерфейсы: network.STA_IF (станция она же клиент; подключается к вышестоящим точкам WiFi-доступа) и network.AP_IF (точка доступа; позволяет подключаться к себе другим WiFi-клиентам). Доступность методов класса (они описаны ниже) зависит от типа интерфейса. Например, только станции могут использовать WLAN.connect() для подключения к точке доступа.
* Класс network.WLAN(interface_id) – создает объект сетевого интерфейса WLAN. Поддерживаемые интерфейсы: network.STA_IF (станция она же клиент; подключается к вышестоящим точкам WiFi-доступа) и network.AP_IF (точка доступа; позволяет подключаться к себе другим WiFi-клиентам). Доступность методов класса (они описаны ниже) зависит от типа интерфейса. Например, только станции могут использовать WLAN.connect() для подключения к точке доступа.


== Методы ==
== Методы ==
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.active()|WLAN.active()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.connect()|WLAN.connect()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.disconnect()|WLAN.disconnect()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.scan()|WLAN.scan()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.status()|WLAN.status()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.isconnected()|WLAN.isconnected()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.ifconfig()|WLAN.ifconfig()]]
* [[MicroPython:Библиотеки/network/Класс WLAN/WLAN.config()|WLAN.config()]]


* WLAN.active([is_active]) – если в аргументе is_active задано булево значение, активирует или деактивирует сетевой интерфейс. Если никакого аргумента не задано, считывает текущее состояние интерфейса. Большинству других методов требуется, чтобы интерфейс был активным.
* WLAN.active([is_active]) – если в аргументе is_active задано булево значение, активирует или деактивирует сетевой интерфейс. Если никакого аргумента не задано, считывает текущее состояние интерфейса. Большинству других методов требуется, чтобы интерфейс был активным.

Версия от 20:52, 20 сентября 2020

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс 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([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">

См.также

Внешние ссылки