Русские Блоги
Учебное пособие по MicroPython ESP32 / ESP8266: автоматическое подключение к WiFi
Цель этого учебного пособия по MicroPython — объяснить, как автоматически подключаться к сети WiFi на MicroPython, не вставляя в запрос все независимые команды. Этот учебник находится вESP32иESP8266Были проверены на.
Краткое введение
Цель этого учебного пособия по MicroPython — объяснить, как автоматически подключаться к сети WiFi на MicroPython, не вставляя в запрос все независимые команды. Эта программа находится вESP32И ESP8266 были протестированы. Результат печати взят из теста на ESP32. Обратите внимание, что автоматически напечатанное сообщение на ESP8266 отличается от сообщения на ESP32, поэтому результат будет отличаться от снимка экрана, показанного в этом руководстве. Но два метода абсолютно одинаковы.
Мы проверим два метода: один — импортировать функцию из модуля и выполнять ее, когда необходимо подключиться к сети Wi-Fi, а другой — полностью автоматический, то есть автоматически развиваться после запуска. Плата подключена к сети WiFi.
Обратите внимание, что оба решения требуют загрузки файлов в файловую систему MicroPython. Вы можете обратиться к этому предыдущему руководству для получения подробных инструкций. Кроме того, для получения инструкций о том, как вручную подключиться к сети WiFi, ознакомьтесь с данным руководством. Все шаги имеют решающее значение, потому что мы просто инкапсулируем их в функции модуля.
Соединение вызова модуля
В первой части мы объясним, как автоматически подключаться к сети WiFi при вызове функций, определенных в модуле. Если мы не хотим подключаться к сети WiFi каждый раз, когда используем ESP32 / ESP8266, то этот метод будет очень полезен. Мы можем использовать его, чтобы решить, когда подключаться к WiFi.
Чтобы принять этот метод, мы определим простую функцию Python для выполнения процедуры подключения. Мы называем эту функцию функцией подключения.
1 def connect():
2 #Python code goes here
Затем импортируйте сетевой модуль, что является необходимым шагом для получения функции подключения к сети WiFi. Для удобства нам также необходимо хранить сетевые учетные данные (ssid и пароль) в двух переменных.
1 import network
2
3 ssid = “yourNetworkName”
4 password = “yourNetworkPassword”
Затем получите экземпляр интерфейса WiFi сайта и сохраните его в переменной. Затем проверьте, подключены ли мы к сети WiFi. Если он подключен, распечатайте предупреждение и завершите выполнение.
1 station = network.WLAN(network.STA_IF)
2
3 if station.isconnected() == True:
4 print(“Already connected”)
5 return
Если он не подключен, учетные данные, хранящиеся в переменной, описанной выше, используются для активации сетевого интерфейса и выполнения фактического подключения.
1 station.active(True)
2 station.connect(ssid, password)
Поскольку соединение может занять некоторое время, мы будем активно ждать, проверяя выходные данные метода подключен, пока соединение не будет успешным. Обратите внимание, что оператор pass необходим, потому что синтаксис Python не действует.
Мы также должны учитывать, что мы будем ждать подключения бесконечно, чтобы упростить операцию. Например, если учетные данные WiFi неверны, модуль будет зависать бесконечно в состоянии попытки подключения. Конечно, для более надежных практических сценариев применения нам необходимо реализовать какой-то механизм тайм-аута.
Наконец, мы напечатаем сообщение об успешном завершении и настройку WiFi
1 while station.isconnected() == False:
2 pass
3
4 print(“Connection successful”)
5 print(station.ifconfig())
Полный код модуля показан ниже. Сохраните файл с расширением .py в каталоге по вашему выбору. Вы можете назвать его как хотите, но в этом урокеМы назвали это ConnectWiFi.py。
1 def connect():
2 import network
3
4 ssid = “yourNetworkName”
5 password = “yourNetworkPassword”
6
7 station = network.WLAN(network.STA_IF)
8
9 if station.isconnected() == True:
10 print(“Already connected”)
11 return
12
13 station.active(True)
14 station.connect(ssid, password)
15
16 while station.isconnected() == False:
17 pass
18
19 print(“Connection successful”)
20 print(station.ifconfig())
Наконец, чтобы загрузить код, просто откройте командную строку, перейдите в каталог, где хранится файл, и выполните следующую команду, чтобы изменить COM5 на последовательный порт, где находится ваше устройство.
Теперь подключитесь к приглашению Python с выбранным программным обеспечением. Программное обеспечение, используемое в этом руководстве, — Putty. Чтобы убедиться, что новый файл был загружен правильно, выполните следующую команду:
Как показано на рисунке 1, файл должен быть указан в списке.
Рисунок 1 — Модуль подключения WiFi успешно загружен.
Теперь мы просто импортируем модуль и вызываем функцию подключения, как показано ниже.
1 import ConnectWiFi
2 ConnectWiFi.connect()
Результаты показаны на рисунке 2. Обратите внимание, что наше сообщение об успехе будет отображаться в конце, указывая, что мы установили соединение.
Чтобы подтвердить, что наша гарантия безопасности работает, вы можете попробовать снова вызвать функцию подключения. Теперь он должен вернуть сообщение в коде, указывающее, что мы установили соединение. Как показано на рисунке 3.
Рисунок 3 — Предупреждающее сообщение при вызове функции после подключения к сети WiFi.
Автоматическое подключение
Перед выполнением мы должны сначала проанализировать функции MicroPython, связанные с определенными сценариями запуска.
Как упоминалось в некоторых предыдущих уроках, при установке MicroPython в файловой системе создается файл boot.py. Этот конкретный файл будет запускаться при включении платы разработки [1]. Он уже содержит некоторый низкоуровневый код, который следует сохранить.
Как показано здесь в документации по MicroPython, мы можем поместить в этот файл код, который мы используем для подключения к сети Wi-Fi, чтобы код выполнялся при запуске платы.
Однако мы выбрали другой подход. В дополнение к boot.py, если в файловой системе есть файл с именем main.py, файл будет запущен после завершения сценария boot.py [1]. Поэтому мы создадим этот файл и автоматически подключимся к сети Wi-Fi через него при запуске. Обратите внимание, что этот файл может выполнять другие типы кода для нашего приложения. Кроме того, поскольку это не обязательный документ, мы можем использовать его с уверенностью.
Теперь, чтобы выполнить автоматическое соединение, мы будем повторно использовать предыдущий модуль. Поэтому сначала создайте файл с именем main.py. Как упоминалось ранее,На этот раз его нужно назвать main.py(Отличается от ранее определенного имени модуля), иначе он не будет выполнен автоматически.
Здесь просто импортируйте модуль ConnectWiFi и вызовите функцию подключения, как мы это делали ранее.
1 import ConnectWiFi
2 ConnectWiFi.connect()
Теперь используйте следующую команду для загрузки файла в файловую систему (не забудьте изменить COM5 на порт вашего устройства). Если вы все еще подключаетесь через Putty или другое программное обеспечение, сначала необходимо закрыть соединение, иначе файл не может быть загружен.
Теперь переподключите подсказку Python. Вы можете использовать вызов os.listdir (), который мы выполняли ранее, чтобы подтвердить, что файл был успешно загружен.
Обратите внимание, что поскольку MicroPython уже запущен, изменений не будет. Чтобы проверить, подключает ли наш main.py плату разработки к сети Wi-Fi в соответствии с инструкциями, просто перезагрузите ESP32 / ESP8266 с открытым приглашением. Теперь он должен перезапустить и выполнить нашу функцию, как показано на рисунке 4.
Рисунок 4. Автоматическое подключение после запуска.
Мы можем подтвердить, что установили соединение, импортировав модуль ConnectWiFi и попытавшись вызвать функцию соединения. Здесь должно быть возвращено предупреждение «Подключено», как показано на рисунке 5.
Рисунок 5-Предупреждение появляется при попытке снова подключиться к сети WiFi.
Для получения дополнительных руководств и проектов ESP32 / ESP8266, пожалуйста, нажмите:ESP32 учебник Краткое сообщение