MicroPython:Платы/ESP8266/Руководство по MicroPython для ESP8266/Основы работы с сетью: различия между версиями

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

(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =С...»)
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 2: Строка 2:
 
{{Перевод от Сubewriter}}
 
{{Перевод от Сubewriter}}
 
{{Myagkij-редактор}}
 
{{Myagkij-редактор}}
 +
 +
=Основы работы с сетью<ref>[http://docs.micropython.org/en/latest/esp8266/tutorial/network_basics.html docs.micropython.org - Network basics]</ref>=
 +
 +
Для настройки WiFi-соединения в порте [[MicroPython]] для [[ESP8266]] используется модуль network. Вы можете создать WiFi-интерфейсы двух видов: для станции (когда [[ESP8266]] подключается к [[роутер]]у) и для точки доступа (чтобы к [[ESP8266]] могли подключиться другие устройства). Экземпляры этих объектов создаются следующим образом:
  
 
<syntaxhighlight lang="python" enclose="div">
 
<syntaxhighlight lang="python" enclose="div">
 +
>>> import network
 +
>>> sta_if = network.WLAN(network.STA_IF)
 +
>>> ap_if = network.WLAN(network.AP_IF)
 +
</syntaxhighlight>
 +
 +
То, активны ли эти интерфейсы, можно проверить следующим образом:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> sta_if.active()
 +
False
 +
>>> ap_if.active()
 +
True
 +
</syntaxhighlight>
 +
 +
Вы также можете узнать сетевые настройки интерфейса:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> ap_if.ifconfig()
 +
('192.168.4.1', '255.255.255.0', '192.168.4.1', '8.8.8.8')
 +
</syntaxhighlight>
 +
 +
Этот метод вернет следующие значения: [[IP-адрес]], маску подсети, [[сетевой шлюз]] и [[DNS-сервер]].
 +
 +
==Настройка WiFi==
 +
 +
При каждой новой установке прошивки [[ESP8266]] настраивается как точка доступа, т.е. интерфейс ''AP_IF (режим точки доступа'') будет активным, а интерфейс ''STA_IF (режим станции)'' – неактивным. При помощи интерфейса ''STA_IF'' модуль можно настроить таким образом, чтобы он подключался к вашей сети.
 +
 +
Сначала активируйте режим станции:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> sta_if.active(True)
 +
</syntaxhighlight>
 +
 +
Затем подключитесь к своей WiFi-сети:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> sta_if.connect('<ESSID вашей сети>', '<пароль к вашей сети>')
 +
</syntaxhighlight>
 +
 +
Чтобы проверить, успешно ли выполнено подключение, используйте:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> sta_if.isconnected()
 +
</syntaxhighlight>
 +
 +
Когда связь будет установлена, можно узнать [[IP-адрес]]:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> sta_if.ifconfig()
 +
('192.168.0.2', '255.255.255.0', '192.168.0.1', '8.8.8.8')
 +
</syntaxhighlight>
 +
 +
После этого можно отключить интерфейс точки доступа, если он вам больше не нужен:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
>>> ap_if.active(False)
 +
</syntaxhighlight>
 +
 +
Вот этой функцией можно пользоваться (или просто вписать ее в файл ''«boot.py»''), чтобы автоматически подключаться к своей WiFi-сети:
 +
 +
<syntaxhighlight lang="python" enclose="div">
 +
def do_connect():
 +
    import network
 +
    sta_if = network.WLAN(network.STA_IF)
 +
    if not sta_if.isconnected():
 +
        print('подключаемся к сети...')
 +
        sta_if.active(True)
 +
        sta_if.connect('<essid>', '<пароль>')
 +
        while not sta_if.isconnected():
 +
            pass
 +
    print('настройки сети:', sta_if.ifconfig())
 +
</syntaxhighlight>
 +
 +
==Сокеты==
 +
 +
Когда WiFi-связь будет установлена, доступ к сети будет осуществляться с помощью [[сокет]]ов. [[Сокет]] – это конечная точка на сетевом устройстве, и чтобы начать коммуникацию, два сокета должны подключиться друг к другу. Сокеты служат фундаментом для интернет-протоколов вроде [[SMTP]] (электронная почта), [[HTTP]] (сеть), [[TELNET]], [[SSH]] и многих других. В каждом из этих протоколов используется уникальный порт (обычное целое число). Таким образом, зная [[IP-адрес]] и номер порта, вы можете дистанционно подключиться к устройству и начать с ним ''«общаться»''.
 +
 +
В следующей части руководства мы поговорим о том, как использовать сокеты для выполнения полезных и часто встречающихся сетевых задач.
  
 
=См.также=
 
=См.также=

Текущая версия на 12:16, 1 июля 2020

Перевод: Максим Кузьмин (Cubewriter) Контакты:</br>* Skype: cubewriter</br>* E-mail: cubewriter@gmail.com</br>* Максим Кузьмин на freelance.ru
Проверка/Оформление/Редактирование: Мякишев Е.А.


Основы работы с сетью[1]

Для настройки WiFi-соединения в порте MicroPython для ESP8266 используется модуль network. Вы можете создать WiFi-интерфейсы двух видов: для станции (когда ESP8266 подключается к роутеру) и для точки доступа (чтобы к ESP8266 могли подключиться другие устройства). Экземпляры этих объектов создаются следующим образом:

>>> import network
>>> sta_if = network.WLAN(network.STA_IF)
>>> ap_if = network.WLAN(network.AP_IF)

То, активны ли эти интерфейсы, можно проверить следующим образом:

>>> sta_if.active()
False
>>> ap_if.active()
True

Вы также можете узнать сетевые настройки интерфейса:

>>> ap_if.ifconfig()
('192.168.4.1', '255.255.255.0', '192.168.4.1', '8.8.8.8')

Этот метод вернет следующие значения: IP-адрес, маску подсети, сетевой шлюз и DNS-сервер.

Настройка WiFi

При каждой новой установке прошивки ESP8266 настраивается как точка доступа, т.е. интерфейс AP_IF (режим точки доступа) будет активным, а интерфейс STA_IF (режим станции) – неактивным. При помощи интерфейса STA_IF модуль можно настроить таким образом, чтобы он подключался к вашей сети.

Сначала активируйте режим станции:

>>> sta_if.active(True)

Затем подключитесь к своей WiFi-сети:

>>> sta_if.connect('<ESSID вашей сети>', '<пароль к вашей сети>')

Чтобы проверить, успешно ли выполнено подключение, используйте:

>>> sta_if.isconnected()

Когда связь будет установлена, можно узнать IP-адрес:

>>> sta_if.ifconfig()
('192.168.0.2', '255.255.255.0', '192.168.0.1', '8.8.8.8')

После этого можно отключить интерфейс точки доступа, если он вам больше не нужен:

>>> ap_if.active(False)

Вот этой функцией можно пользоваться (или просто вписать ее в файл «boot.py»), чтобы автоматически подключаться к своей WiFi-сети:

def do_connect():
    import network
    sta_if = network.WLAN(network.STA_IF)
    if not sta_if.isconnected():
        print('подключаемся к сети...')
        sta_if.active(True)
        sta_if.connect('<essid>', '<пароль>')
        while not sta_if.isconnected():
            pass
    print('настройки сети:', sta_if.ifconfig())

Сокеты

Когда WiFi-связь будет установлена, доступ к сети будет осуществляться с помощью сокетов. Сокет – это конечная точка на сетевом устройстве, и чтобы начать коммуникацию, два сокета должны подключиться друг к другу. Сокеты служат фундаментом для интернет-протоколов вроде SMTP (электронная почта), HTTP (сеть), TELNET, SSH и многих других. В каждом из этих протоколов используется уникальный порт (обычное целое число). Таким образом, зная IP-адрес и номер порта, вы можете дистанционно подключиться к устройству и начать с ним «общаться».

В следующей части руководства мы поговорим о том, как использовать сокеты для выполнения полезных и часто встречающихся сетевых задач.

См.также

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