Запуск веб-сервера для управления встроенным светодиодом на Raspberry Pi Pico W

Этот проект можно рассматривать как "Hello World!" для Pico W. Он демонстрирует, как подключиться к Wi-Fi, как запустить HTTP веб-сервер на Pico и как управлять пинами GPIO.

Шаги для мигания светодиода через WiFi на Pico W

Для того чтобы добиться этого, есть три главные темы.

Настройка MicroPython

Сначала необходимо настроить MicroPython. Скачайте файл UF2 здесь который специально предназначен для Pico W.

Удерживая нажатой кнопку BOOTSEL, подключите Pico W через USB.

Как только он будет смонтирован, скопируйте файл UF2, который вы только что загрузили, на Pico.

Используйте Thonny для программирования Pico W

Thonny упрощает программирование Pico W и поставляется с предустановленной ОС Raspberry Pi. Вы также можете скачать его для Windows, Mac и Linux можно здесь.

Убедитесь, что ваш интерпретатор установлен на MicroPython (Raspberry Pi Pico).

Thonny подключится к Raspberry Pi Pico W, и вы сможете выполнять команды в оболочке (нижний сегмент IDE Thonny).

Запустите сканирование сети, чтобы убедиться, что беспроводная сеть Pico W работает

В Shell вы можете запустить этот код, чтобы проверить, работает ли ваш беспроводной чип.

Используйте этот код, чтобы распечатать все доступные беспроводные сети в вашем регионе.

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
print(wlan.scan())

Программирование веб-сервера

Создайте словарь под названием secrets.py и используйте следующее содержимое, заменив значения ssid и pw значениями вашей сети.

secrets = {
    'ssid': 'Replace-this-with-your-Wi-Fi-Name',
    'pw': 'Replace-this-with-your-Wi-Fi-Password'
    }

Затем создайте main.py в котором будет размещен ваш основной код. Поскольку код состоит из многих строк, вы можете найти его здесь, на нашем Github.

Создайте HTML-страницу, которая будет обслуживаться

Следующий файл будет HTML-файлом, который будет обслуживаться при загрузке IP-адреса Pico W. Сохраните его как index.html

Это простая страница с двумя кнопками, которые позволяют включать и выключать светодиод Pico W.

<!DOCTYPE html>
<html>
    <head>
        <title>Pico W</title>
    </head>
    <body>
        <h1>Pico W</h1>
        <p>Control the onboard LED</p>
        <a href=\"?led=on\"><button>ON</button></a>&nbsp;
        <a href=\"?led=off\"><button>OFF</button></a>
    </body>
</html>

Время управлять всем этим

Нажмите на кнопку запуска в Thonny, которая представляет собой зеленую кнопку с символом игры.

Вы увидите IP-адрес Pico W. Скопируйте его в веб-браузер, подключенный к той же беспроводной сети.

Нажмите на кнопки, и вы увидите изменения.

Вы можете найти Репозиторий Github здесь, в котором есть все файлы.

Наш Видео на YouTube для этого проекта также содержит более глубокие детали, такие как объяснение кода.

4 комментариев

  1. Pablo Июль 13, 2022 в 4:31 пп

    Ошибка обнаружена, когда я пытаюсь это сделать

    %Run -c $EDITOR_CONTENT
    Traceback (последний последний вызов):
    Файл "", строка 1, в
    ImportError: нет модуля с именем 'network'

  2. Charles Октябрь 25, 2022 в 8:51 пп

    В строке 100 вы используете функцию get_html(). Когда я запускаю ваш код, я получаю ошибку 'get_html' не определена.

  3. Gunther Ноябрь 28, 2022 в 12:51 дп

    The search by find function does also return a value if eg. the referrer contains the ‘led=xx’ string. So both led_on and led_off get a positive value at the same time and the LED is switched off again, when it was desired to switch on. To overcome this, the if statement has to be extended to check for a small index value (I used 20 only as a rule of thumb):

    if (led_on > -1 and led_on -1 and led_off < 20):
    Now it works as expected.

Комментировать