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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Класс WLANWiPy – управление WiFi...»)
 
Нет описания правки
 
(не показаны 4 промежуточные версии 1 участника)
Строка 5: Строка 5:
=Класс WLANWiPy – управление WiFi-интерфейсом с особенностями WiPy<ref>[http://docs.micropython.org/en/latest/library/network.WLANWiPy.html docs.micropython.org - network — class WLANWiPy – WiPy specific WiFi control]</ref>=
=Класс WLANWiPy – управление WiFi-интерфейсом с особенностями WiPy<ref>[http://docs.micropython.org/en/latest/library/network.WLANWiPy.html docs.micropython.org - network — class WLANWiPy – WiPy specific WiFi control]</ref>=


Примечание: Этот класс – нестандартная реализация WLAN для WiPy. На WiPy он называется просто network.WLAN, но в документации ниже используется конструкция network.WLANWiPy, чтобы отличить его от вышестоящего и более общего класса [http://docs.micropython.org/en/latest/library/network.WLAN.html#network-wlan network.WLAN].
{{Примечание1
|1=Этот класс – нестандартная реализация WLAN для WiPy. На WiPy он называется просто network.WLAN, но в документации ниже используется конструкция network.WLANWiPy, чтобы отличить его от вышестоящего и более общего класса [http://docs.micropython.org/en/latest/library/network.WLAN.html#network-wlan network.WLAN].}}


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


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python">
import network
import network
import time
import time
Строка 26: Строка 27:


* [[MicroPython:Библиотеки/network/Класс WLANWiPy/network.WLANWiPy()|network.WLANWiPy()]]
* [[MicroPython:Библиотеки/network/Класс WLANWiPy/network.WLANWiPy()|network.WLANWiPy()]]
* Класс network.WLANWiPy(id=0, ...) – создает объект WLAN и опционально его настраивает. Аргументы для настройки смотрите в описании функции init().
Примечание: особенность конструктора WLAN в том, что если в нем не будет задано никаких других аргументов, кроме id, он вернет существующий экземпляр WLAN, не перенастраивая его. Это потому, что WLAN – это системный элемент WiPy.
Если существующий экземпляр WLAN не инициализирован, конструктор сделает то же самое, что и другие конструкторы – инициализирует его при помощи значений по умолчанию.


== Методы ==
== Методы ==
Строка 47: Строка 43:
* [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.mac()|WLANWiPy.mac()]]
* [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.mac()|WLANWiPy.mac()]]
* [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.irq()|WLANWiPy.irq()]]
* [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.irq()|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) антенна.
Например, конструктором можно воспользоваться вот так:
<syntaxhighlight lang="python" enclose="div">
# Создаем и настраиваем точку доступа.
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)
</syntaxhighlight>
* 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.
Возвращает объект запроса на прерывание.


== Константы ==
== Константы ==
Строка 97: Строка 54:
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.WPA2|WLANWiPy.WPA2]]
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.WPA2|WLANWiPy.WPA2]]
* Тип антенны:
* Тип антенны:
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/ WLANWiPy.INT_ANT| WLANWiPy.INT_ANT]]
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.INT_ANT|WLANWiPy.INT_ANT]]
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.EXT_ANT|WLANWiPy.EXT_ANT]]
** [[MicroPython:Библиотеки/network/Класс WLANWiPy/WLANWiPy.EXT_ANT|WLANWiPy.EXT_ANT]]


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


=См.также=
=См.также=

Текущая версия от 06:52, 24 мая 2023

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


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

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

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

Методы

Константы

<syntaxhighlight lang="python">

См.также

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