Raspberry Pi Pico W: установка статического IP-адреса (MicroPython)
Узнайте, как установить статический / фиксированный IP-адрес для вашего Raspberry Pi Pico W. Когда ваш Pico подключается к сети, некоторые маршрутизаторы могут назначать ему новый IP-адрес при каждой перезагрузке. Это может быть неудобно, если вам нужно обращаться к плате или взаимодействовать с ней по IP-адресу. В этом руководстве мы покажем, как назначить статический IP-адрес вашему Raspberry Pi Pico W.
Рекомендуемое чтение: Raspberry Pi Pico W: начало работы с Wi-Fi (MicroPython)
Необходимые компоненты
Для выполнения этого руководства вам понадобятся:
1) Плата Raspberry Pi Pico W или Raspberry Pi Pico 2W (эти модели поддерживают Wi-Fi).
2) Прошивка MicroPython, установленная на вашу плату Raspberry Pi Pico, и IDE для написания и загрузки кода. Следуйте этому руководству: ../../getting-started-raspberry-pi-pico-w/index.
Установка статического/фиксированного IP-адреса на Raspberry Pi Pico
В моей сети, даже если я перезапущу Raspberry Pi Pico несколько раз, маршрутизатор всегда назначает ему один и тот же IP-адрес. Однако в некоторых других сетях это не так. В таком случае удобно иметь возможность установить статический IP-адрес для вашей платы, чтобы он не менялся при каждом сбросе.
Кроме того, установка статического IP-адреса также полезна для проектов, которые не подключены к вашему компьютеру или не имеют возможности отобразить IP-адрес.
Вы можете использовать метод ifconfig объекта network.WLAN для установки статического IP-адреса. Например, используйте следующую строку после подключения к сети.
wlan.ifconfig((static_ip, subnet_mask, gateway_ip, dns_server))
Следующий пример подключает вашу плату к сети, а затем устанавливает статический IP-адрес.
import network
import time
# Учетные данные Wi-Fi
ssid = 'REPLACE_WITH_YOUR_SSID'
password = 'REPLACE_WITH_YOUR_PASSWORD'
# Конфигурация статического IP
static_ip = '192.168.1.100' # Замените на желаемый статический IP
subnet_mask = '255.255.255.0'
gateway_ip = '192.168.1.254'
dns_server = '8.8.8.8'
# Инициализация Wi-Fi интерфейса
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
# Подключение к сети
wlan.connect(ssid, password)
# Ожидание подключения к Wi-Fi
connection_timeout = 10
while connection_timeout > 0:
if wlan.status() >= 3:
break
connection_timeout -= 1
print('Waiting for Wi-Fi connection...')
time.sleep(1)
# Установка статического IP-адреса
wlan.ifconfig((static_ip, subnet_mask, gateway_ip, dns_server))
# Проверка успешности подключения
if wlan.status() != 3:
raise RuntimeError('Failed to establish a network connection')
else:
print('Connection successful!')
network_info = wlan.ifconfig()
print('IP address:', network_info[0])
Конфигурация статического IP
Замените значения в переменных static_ip, subnet_mask, gateway_ip и dns_server на соответствующие значения для вашей сети.
# Конфигурация статического IP
static_ip = '192.168.1.100' # Замените на желаемый статический IP
subnet_mask = '255.255.255.0'
gateway_ip = '192.168.1.254'
dns_server = '8.8.8.8'
Как узнать эти значения?
Существуют различные способы получить информацию о маске подсети и IP-адресе шлюза. Самый простой способ — открыть окно терминала на вашем компьютере и выполнить следующую команду:
В Windows:
ipconfig
В MacOS или Linux:
ifconfig
Эта команда вернет нужную вам информацию: IP-адрес шлюза (IP-адрес вашего маршрутизатора) и маску подсети.
В моем случае маска подсети равна 255.255.255.0, а IP-адрес шлюза — 192.168.1.254.
Для DNS-сервера вы всегда можете использовать 8.8.8.8 — это публичный DNS-сервер Google.
При выборе статического IP-адреса для вашего Raspberry Pi Pico убедитесь, что этот адрес еще не используется другим устройством. Для этого вы можете использовать программу, такую как Angry IP Scanner (совместима с Windows и Mac OS). Или вы можете войти в панель управления вашего маршрутизатора и проверить, какие IP-адреса уже назначены.
Установка статического IP-адреса
После присвоения правильных значений переменным конфигурации мы можем просто использовать метод ifconfig() и передать в качестве аргументов статический IP, маску подсети, IP-адрес шлюза и DNS-сервер, именно в таком порядке.
wlan.ifconfig((static_ip, subnet_mask, gateway_ip, dns_server))
Ввод учетных данных сети
Чтобы протестировать этот код, не забудьте вставить учетные данные вашей сети в следующие строки, чтобы ваша плата могла подключиться к маршрутизатору:
ssid = 'REPLACE_WITH_YOUR_SSID'
password = 'REPLACE_WITH_YOUR_PASSWORD'
Тестирование кода
После ввода учетных данных сети и желаемых настроек IP-адреса вы можете запустить код на вашем Raspberry Pi Pico.
Обратите внимание, что плата получит IP-адрес, который вы определили в коде. В нашем случае — 192.168.1.100.
Вы также можете проверить панель управления маршрутизатора или Angry IP Scanner, чтобы убедиться, что вашему RPi Pico был назначен выбранный вами IP-адрес.
Перезагрузите плату и убедитесь, что IP-адрес остался прежним.
Заключение
Это было краткое руководство, показывающее, как вы можете модифицировать ваши скрипты MicroPython для установки статического/фиксированного IP-адреса для вашего Raspberry Pi Pico. У нас есть другие руководства по Wi-Fi и сетям для Raspberry Pi Pico, которые могут вам понравиться: