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()
- WLANWiPy.connect()
- WLANWiPy.scan()
- WLANWiPy.disconnect()
- WLANWiPy.isconnected()
- WLANWiPy.ifconfig()
- WLANWiPy.mode()
- WLANWiPy.ssid()
- WLANWiPy.auth()
- WLANWiPy.channel()
- WLANWiPy.antenna()
- WLANWiPy.mac()
- WLANWiPy.irq()
- 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.
Возвращает объект запроса на прерывание.
Константы
- Режим работы WLAN:
- Тип защиты сети:
- Тип антенны:
<syntaxhighlight lang="python" enclose="div">