Raspberry Pi Pico W: первый проект с WiFi и MicroPython

Пошаговое руководство по настройке Raspberry Pi Pico W с WiFi. Узнайте, как установить MicroPython, подключиться к сети и отправить HTTP-запрос для вашего умного дома. Практический DIY проект с нуля.
Привет всем любителям DIY и умного дома! Сегодня мы отойдём от привычных одноплатников вроде Raspberry Pi 4 и погрузимся в мир микроконтроллеров. Наш герой — Raspberry Pi Pico W, младший, но невероятно способный родственник. Зачем он нам? Это идеальный мозг для небольших автономных проектов: датчиков, переключателей, простых автоматизаций, которые должны работать годами на минимальной энергии. А главное — у него теперь есть WiFi! В этой статье я покажу, как с нуля подготовить Pico W, подключить его к сети и написать первую программу на MicroPython, которая отправит данные в ваш умный дом.
Что такое Raspberry Pi Pico W и зачем он нужен в умном доме
Raspberry Pi Pico W — это не полноценный компьютер, а микроконтроллер. У него нет операционной системы в привычном смысле, зато есть GPIO-пины для подключения датчиков, кнопок, реле и других компонентов. С появлением модуля WiFi (буква W в названии) он стал идеальным кандидатом для создания беспроводных сенсорных узлов.
Почему я выбрал его для своих проектов: * Цена: Несоизмеримо дешевле полноценного Raspberry Pi. * Энергопотребление: Может работать от батареек месяцами в спящем режиме. * Простота: Не нужно возиться с ОС — прошил firmware и пиши код. * Надёжность: Меньше точек отказа, чем в системе на Linux.
Наш первый проект будет простым, но фундаментальным: мы заставим Pico W подключиться к вашей WiFi сети и отправить HTTP-запрос. Это основа для будущих метеостанций, датчиков протечки или умных кнопок.
Что понадобится для работы
- Плата Raspberry Pi Pico W.
- Кабель USB-C (для подключения к компьютеру).
- Компьютер с Windows, macOS или Linux.
- Доступ к роутеру (знание SSID и пароля WiFi).
Шаг 1: Установка MicroPython на Pico W
Pico W по умолчанию пуст. Первым делом нужно загрузить на него интерпретатор MicroPython.
1.1 Скачивание прошивки
Идём на официальный сайт Raspberry Pi и скачиваем последнюю стабильную версию MicroPython для Pico W. Файл будет иметь расширение .uf2.
Важно: Не берите версию для обычного Pico (без W) — в ней нет драйверов WiFi!
1.2 Первая загрузка
- Отключите Pico W от USB.
- Зажмите белую кнопку
BOOTSELна плате. - Не отпуская кнопку, подключите плату к компьютеру через USB-C.
-
Отпустите кнопку. В системе должен появиться новый съёмный диск с названием
RPI-RP2. -
Перетащите скачанный файл
rp2-pico-w-...uf2на этот диск. Плата автоматически перезагрузится, и диск исчезнет. MicroPython установлен!
Шаг 2: Первое подключение и настройка окружения
Для работы с платой нам понадобится терминал. Я использую screen на macOS/Linux, но для Windows отлично подходит PuTTY или Thonny IDE.
2.1 Поиск последовательного порта
На macOS/Linux:
ls /dev/tty.*
# Ищем порт, похожий на /dev/tty.usbmodem1101 или /dev/ttyACM0
На Windows: Зайдите в Диспетчер устройств и найдите порт (COM) в разделе "Порты (COM & LPT)".
2.2 Подключение через терминал
Используем скорость 115200 бод.
# Для macOS/Linux
screen /dev/tty.usbmodem1101 115200
# Для Windows в PuTTY:
# Выберите Connection type "Serial", укажите COM-порт (например, COM3) и Speed 115200.
Если всё сделано правильно, вы увидите приглашение MicroPython >>>. Нажмите Ctrl+D для мягкой перезагрузки — вы должны увидеть приветственное сообщение.
Типичная ошибка: "Permission denied" на Linux/macOS. Решение — добавить себя в группу dialout (Linux) или использовать sudo.
Шаг 3: Основы MicroPython и сохранение скрипта
Пока мы в интерактивном режиме (REPL), давайте попробуем мигнуть светодиодом. На Pico W есть встроенный светодиод, привязанный к GPIO 25.
# Вводим в REPL построчно
from machine import Pin
import time
led = Pin("LED", Pin.OUT) # "LED" - это встроенный светодиод на Pico W
led.on() # Светодиод загорелся
time.sleep(2)
led.off() # Погас
Но REPL непостоянен. Чтобы код выполнялся при каждом включении, его нужно сохранить в файл main.py. Сделаем это с помощью Thonny IDE — это проще для новичков.
- Установите Thonny.
- Запустите, в меню выберите "Инструменты" -> "Плата" -> "Raspberry Pi Pico".
- Подключитесь к порту.
- Создайте новый файл, введите код ниже и сохраните его на Pico W под именем
main.py.
Шаг 4: Подключаемся к WiFi — пишем скрипт
Создадим наш главный скрипт. Он будет подключаться к WiFi и выводить IP-адрес.
# main.py
import network
import time
from machine import Pin
# Конфигурация WiFi
WIFI_SSID = "ВАШ_SSID"
WIFI_PASSWORD = "ВАШ_ПАРОЛЬ"
# Инициализация встроенного светодиода
led = Pin("LED", Pin.OUT)
def connect_to_wifi():
# Создаём объект интерфейса станции (клиента WiFi)
wlan = network.WLAN(network.STA_IF)
wlan.active(True) # Активируем интерфейс
# Если не подключены — пробуем подключиться
if not wlan.isconnected():
print(f'Подключаемся к сети {WIFI_SSID}...')
wlan.connect(WIFI_SSID, WIFI_PASSWORD)
# Ожидаем подключения (макс 10 секунд)
timeout = 10
while not wlan.isconnected() and timeout > 0:
# Мигаем светодиодом в процессе ожидания
led.toggle()
time.sleep(0.5)
timeout -= 1
print('.', end='')
# Результат подключения
if wlan.isconnected():
led.on() # Постоянный свет = успех
print('nПодключение успешно!')
print('Сетевые настройки:', wlan.ifconfig())
return wlan.ifconfig()[0] # Возвращаем полученный IP-адрес
else:
led.off() # Светодиод выключен = неудача
print('nНе удалось подключиться!')
return None
# Запускаем подключение
ip_address = connect_to_wifi()
# Если подключились, можно запустить основной цикл
if ip_address:
print(f'Устройство доступно по адресу: {ip_address}')
# Здесь позже добавим основной код
Важные моменты:
* Безопасность: Не коммитьте этот файл с паролем в Git! В будущем пароль лучше хранить в отдельном конфиге.
* Таймаут: Если ваша сеть долго подключается, увеличьте значение timeout.
Шаг 5: Проверка результата и тестирование
- Сохраните файл
main.pyна Pico W через Thonny (Файл -> Сохранить как -> Raspberry Pi Pico). - Нажмите кнопку
RST(перезагрузка) на плате или отключите/подключите USB. - В Thonny откройте "Вид" -> "Shell" (нижняя панель). Вы увидите вывод скрипта при загрузке.
Ожидаемый результат:
Подключаемся к сети MyHomeWiFi...
..........
Подключение успешно!
Сетевые настройки: ('192.168.1.150', '255.255.255.0', '192.168.1.1', '8.8.8.8')
Устройство доступно по адресу: 192.168.1.150
При этом встроенный светодиод на плате должен гореть постоянно.
Если не работает: * "Connection failed": Перепроверьте SSID и пароль. Убедитесь, что сеть на 2.4 ГГц (Pico W не поддерживает 5 ГГц). * Светодиод мигает и гаснет: Превышен таймаут. Возможно, слабый сигнал. Попробуйте приблизить плату к роутеру. * Нет вывода в Shell: Убедитесь, что в настройках Thonny выбрана правильная плата и порт.
Шаг 6: Первое действие — отправка HTTP-запроса
Теперь, когда мы в сети, научим Pico W "разговаривать" с внешним миром. Отправим простой GET-запрос на тестовый веб-сервис.
Добавим в main.py после успешного подключения новую функцию и вызов:
import urequests
def send_http_request(ip):
try:
# Отправляем запрос на тестовый JSON-сервис
print("Отправляем тестовый запрос...")
response = urequests.get("http://httpbin.org/get")
# Печатаем статус и часть ответа
print(f"Статус ответа: {response.status_code}")
print(f"Ответ (первые 200 символов): {response.text[:200]}")
# Важно! Закрываем соединение, чтобы не исчерпать память
response.close()
except Exception as e:
print(f"Ошибка при отправке запроса: {e}")
# Изменяем часть кода после connect_to_wifi:
if ip_address:
print(f'Устройство доступно по адресу: {ip_address}')
# Даём сети немного "устояться"
time.sleep(2)
send_http_request(ip_address)
Сохраните и перезагрузите плату. В Shell вы должны увидеть успешный HTTP-ответ с вашим IP-адресом. Это доказательство, что ваша плата может взаимодействовать с интернетом!
Куда двигаться дальше: идеи проектов
С этого момента возможности ограничены только вашей фантазией. Вот что можно сделать:
- Датчик температуры/влажности: Подключите DHT22 или BME280, отправляйте данные раз в минуту на ваш сервер по MQTT. Это отличная основа для домашней метеостанции.
- Умная кнопка: По нажатию на кнопку, подключённую к GPIO, отправлять запрос в Home Assistant или на MQTT-брокер, чтобы включить свет. Говоря о MQTT, для таких задач вам точно пригодится понимание основ MQTT брокера Mosquitto.
- Сторожевой датчик: Используйте датчик движения (PIR) для отправки уведомления в Telegram при обнаружении активности.
Для сложных проектов с сбором данных и красивыми дашбордами вам может понадобиться более мощный одноплатник. В таком случае, решить вопрос выбора поможет статья Raspberry Pi OS vs Ubuntu vs DietPi: Выбор ОС для домашнего сервера.
Заключение
Мы прошли весь путь от распаковки Raspberry Pi Pico W до создания автономного WiFi-устройства, способного общаться с интернетом. Вы научились прошивать MicroPython, подключаться к WiFi и отправлять HTTP-запросы. Это фундамент для сотен практических проектов в умном доме.
Главная прелесть Pico W — в его простоте и надёжности. Не нужно обновлять пакеты или переживать за падение ОС. Записал скрипт — и он будет работать годами.
Пробуйте, экспериментируйте с датчиками, и скоро ваш дом наполнится умными и полезными устройствами собственного производства. Удачи в творчестве!
Понравилась статья?
Поставьте лайк и сохраните полезный материал в закладки.
Headless Raspberry Pi: Настройка без монитора через SSH — Полное руководство
Pi-hole на Raspberry Pi: Как я избавил всю домашнюю сеть от рекламы раз и навсегда
Raspberry Pi как домашний сервер: что на нём можно запустить в 2024
Ретро-игровая консоль на Raspberry Pi: Полное руководство по установке и настройке RetroPie
GPIO на Raspberry Pi: Управляем светодиодами и реле из Python
Raspberry Pi NAS: Собираем домашнее сетевое хранилище на OpenMediaVault