MicroPython:Библиотеки/network/Класс WLANWiPy

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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


Класс WLANWiPy – управление WiFi-интерфейсом с особенностями WiPy[1]

Примечание: Этот класс – нестандартная реализация WLAN для WiPy. На WiPy он называется просто network.WLAN, но в документации ниже используется конструкция network.WLANWiPy, чтобы отличить его от вышестоящего и более общего класса network.WLAN.


В этом классе реализован драйвер для сетевого WiFi-процессора на WiPy. Пример использования:

import network
import time
# Настраиваем WLAN как станцию.
wlan = network.WLAN(mode=WLAN.STA)
wlan.connect('your-ssid', auth=(WLAN.WPA2, 'your-key'))
while not wlan.isconnected():
    time.sleep_ms(50)
print(wlan.ifconfig())

# Теперь используем сокет как обычно.
...

Конструкторы

  • Класс network.WLANWiPy(id=0, ...) – создает объект WLAN и опционально его настраивает. Аргументы для настройки смотрите в описании функции init().

Примечание: особенность конструктора WLAN в том, что если в нем не будет задано никаких других аргументов, кроме id, он вернет существующий экземпляр WLAN, не перенастраивая его. Это потому, что WLAN – это системный элемент WiPy. Если существующий экземпляр WLAN не инициализирован, конструктор сделает то же самое, что и другие конструкторы – инициализирует его при помощи значений по умолчанию.

Методы

  • WLANWiPy.init(mode, *, ssid, auth, channel, antenna) – задает или считывает настройки сетевого WiFi-процессора. Аргументы:
    • mode – здесь может быть WLAN.STA или WLAN.AP.
    • ssid – это строка с названием SSID. Этот аргумент нужен, только если устройство работает в режиме WLAN.AP.
    • auth – это кортеж в формате (sec, key). Элемент sec – это тип шифрования, и здесь могут быть значения None, WLAN.WEP, WLAN.WPA или WLAN.WPA2. Элемент key – это строка с паролем к сети. Если в sec задано WLAN.WEP, в элементе key должна быть строка с шестнадцатеричным значением (например, ‘ABC1DE45BF’). Нужен, только если устройство работает в режиме WLAN.AP.
    • channel – число в диапазоне 1-11. Нужен, только если устройство работает в режиме WLAN.AP.
    • antenna – здесь задается внутренняя (WLAN.INT_ANT) или внешняя (WLAN.EXT_ANT) антенна.

Например, конструктором можно воспользоваться вот так:

# Создаем и настраиваем точку доступа.
wlan.init(mode=WLAN.AP, ssid='wipy-wlan', auth=(WLAN.WPA2,'www.wipy.io'), channel=7, antenna=WLAN.INT_ANT)
Или вот так:
# Настраиваем как станцию.
wlan.init(mode=WLAN.STA)
  • WLANWiPy.connect(ssid, *, auth=None, bssid=None, timeout=None) – подключает устройство к точке WiFi-доступа при помощи заданных SSID и других параметров безопасности.
    • auth – это кортеж в формате (sec, key). Элемент sec – это режим шифрования, здесь может быть значение None, WLAN.WEP, WLAN.WPA или WLAN.WPA2. Элемент key – это строка с паролем к сети. Если в sec задано WLAN.WEP, в key должно быть строка с шестнадцатеричным значением (например, ‘ABC1DE45BF’).
    • bssid – это MAC-адрес точки доступа, к которой надо подключиться. Используется, когда у вас несколько точек доступа с одинаковым SSID.
    • timeout – максимальное время ожидания успешного соединения (в миллисекундах).
  • WLANWiPy.scan() – выполняет сканирование, возвращая список именованных кортежей типа (ssid, bssid, sec, channel, rssi). Обратите внимание, что в channel всегда будет стоять None, потому что WiPy эту информацию не предоставляет.
  • WLANWiPy.disconnect() – отключает устройство от точки WiFi-доступа.
  • WLANWiPy.isconnected() – если устройство находится в режиме станции, подключено к точке WiFi-доступа и имеет корректный IP-адрес, этот метод вернет True. Если устройство находится в режиме точки доступа и подключено к станции, метод возвращает True. В противном случае метод возвращает False.
  • WLANWiPy.ifconfig(if_id=0, config=['dhcp' or configtuple]) – если в этом методе не будет задано никаких аргументов, он вернет 4-элементный кортеж типа (ip, subnet_mask, gateway, DNS_server). Если в аргументе config будет задано 'dhcp', это включит режим DHCP-клиента, а полученные IP-параметры будут использованы для подключения к точке доступа.

Если задать в config 4-элементный кортеж, это задаст статический IP-адрес. Например: wlan.ifconfig(config=('192.168.0.4', '255.255.255.0', '192.168.0.1', '8.8.8.8'))

  • WLANWiPy.mode([mode]) – считывает или задает режим работы WLAN.
  • WLANWiPy.ssid([ssid]) – считывает или задает SSID (если устройство находится в режиме точки доступа).
  • WLANWiPy.auth([auth]) – считывает или задает тип аутентификации (если устройство находится в режиме точки доступа).
  • WLANWiPy.channel([channel]) – считывает или задает канал (этот метод применим только в режиме точки доступа).
  • WLANWiPy.antenna([antenna]) – считывает или задает тип антенны (внешняя или внутренняя).
  • WLANWiPy.mac([mac_addr]) – считывает или задает 6-байтный объект bytes с MAC-адресом.
  • WLANWiPy.irq(*, handler, wake) – создает функцию обратного вызова, которая будет запущена при появлении WLAN-события во время режима сна machine.SLEEP. События запускаются активностью сокета или подключением/отключением WLAN.
    • handler – это функция, вызываемая при срабатывании прерывания.
    • wake – здесь должно быть machine.SLEEP.

Возвращает объект запроса на прерывание.

Константы

<syntaxhighlight lang="python" enclose="div">

См.также

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