Подключите Pico W к Интернету и управляйте им через веб-интерфейс

Недавно я записал новое видео, в котором показал, как взять ваш новый Pico W, подключить его к Интернету и управлять им через веб-интерфейс — все это на языке Python с помощью Anvil.

Посмотрите видео или текстовую версию видео ниже.


Видео

Хотите больше качественного контента для разработчиков?
Следите за мной, чтобы получать больше материалов о разработке программного обеспечения!

Райан

Разработчик программного обеспечения. Энтузиаст технологий. Следите за моими материалами о Python, Anvil и разработке программного обеспечения.

Текстовая версия

Следующая эволюция популярного микроконтроллера Raspberry Pi Pico уже здесь. Raspberry Pi Pico W добавляет встроенный Wi-Fi, что делает его идеальным для создания IoT-устройств.

За 3 шага я научу вас, как создать и развернуть простое веб-приложение, чтобы вы могли научиться управлять своим Pico W удаленно.

Приложение будет простым онлайн-приложением с одной кнопкой, которая заставляет светодиод на Pico мигать.

Шаг 1 — Создание приложения Anvil для управления нашим Pico

Мы создадим веб-приложение с помощью Anvil, платформы для создания веб-приложений, не используя ничего, кроме Python.

Для первого шага мы начнем с создания приложения Anvil, которое будет управлять нашим Pico по беспроводной связи. Перейдем по адресу anvil.works/build и создадим новое пустое приложение.

Нажмите на название приложения в верхней части редактора и измените его на «Pico App».

Далее давайте включим Uplink. Мы будем использовать Uplink для подключения к нашему Pico.

Нажмите кнопку «Добавить функции» в боковой панели редактора и выберите Uplink.

Затем нажмите кнопку «Включить Uplink сервера».

Скопируйте ключ Uplink, мы будем использовать его в сценарии Python на нашем Pico позже, чтобы установить соединение между нашим приложением и Pico.

Теперь Uplink включен в нашем приложении Anvil, давайте перейдем к шагу 2 и настроим наш Pico.


Шаг 2 — Настройка Pico

Чтобы настроить Pico, нам нужно установить прошивку Anvil.

Для начала удерживайте кнопку BOOTSEL на Pico и подключите его к компьютеру.

Отпустите BOOTSEL, как только диск Pico появится на экране компьютера.

Затем загрузим файл прошивки Anvil для Pico (pico-w-anvil-v-complete.uf2) по следующей ссылке:

https://github.com/anvil-works/anvil-pico/releases

После загрузки скопируйте файл на диск Pico. После копирования файлов наш Pico перезагрузится.

Откройте диск Pico и отредактируйте файлы boot.py и main.py.

В файле boot.py измените учетные данные Wifi подключения в соответствии с вашей сетью Wifi.

Затем в файле main.py под операторами import добавьте ключ Uplink, который мы скопировали ранее.

В файле main.py хранятся все функции, которые вы хотите запустить на вашем устройстве Pico.

По умолчанию в файл main.py Anvil для Pico включена функция pico_fn. Это простая функция, которая заставляет свет на Pico мигать и демонстрирует, что вы можете передавать объекты Python из вашего приложения Anvil в Pico.

Декоратор @anvil.pico.callable decorator позволяет вашему приложению Anvil узнать, что эта функция доступна для вызова из интернета. Функция pico_fn — это та функция, которую мы будем вызывать из нашего веб-приложения.

@anvil.pico.callable(is_async=True)
async def pico_fn(n):
    # Output will go to the Pico W serial port
    print(f"Called local function with argument: {n}")

    # Blink the LED and then double the argument and return it.
    for i in range(10):
        led.toggle()
        await a.sleep_ms(50)
    return n * 2
Вход в полноэкранный режим Выход из полноэкранного режима

Сохраните оба файла boot.py и main.py.

Перезагрузите Pico, чтобы сохранить обновления, извлеките диск и снова подключите Pico.

Перезагрузка Pico W
Pico мигнет несколько раз, чтобы показать, что он подключен к Интернету.

Давайте вернемся к приложению Anvil, которое мы создали ранее.


Шаг 3- Создание пользовательского интерфейса и публикация в Интернете

В дизайнере перетащим кнопку на форму нашего приложения. Мы изменим текст на ‘Flash the lights’ и придадим ей стиль, изменив ее роль на primary-color.

Затем мы добавим текстовое поле и установим его тип на число. Это позволит пользователям нашего приложения вводить число и передавать данные на Pico.

Дважды щелкните на кнопке в дизайнере. Это добавит функцию в наш код на стороне клиента, которая будет вызываться каждый раз при нажатии на кнопку.

Внутри функции вызовем функцию pico_fn, которая находится внутри файла main.py нашего пико.

Мы передадим нашей функции Pico номер, который вводит пользователь нашего веб-приложения.

 def button_1_click(self, **event_args):
    """This method is called when the button is clicked"""
    anvil.server.call("pico_fn", self.text_box_1.text)
Вход в полноэкранный режим Выход из полноэкранного режима

Теперь, когда мы разобрались с функциональностью, мы можем развернуть это приложение в Интернете, нажав на кнопку публикации в правом верхнем углу редактора. Давайте выберем «Добавить публичный URL» и изменим URL на значимый.

Если мы перейдем к выбранному URL и нажмем кнопку приложения, светодиоды на Pico начнут мигать.

Вот и все! Теперь у нас есть микроконтроллер Pico, подключенный к Интернету, с развернутым веб-приложением, которое управляет им. Пройдите по ссылке ниже, чтобы увидеть готовое приложение Anvil:

https://anvil.works/build#clone:UU2QIYDJCCUMPHIY=DLI6CTZ5CBL3US575ZVTOPWB


Заключение

Я только что показал вам, как управлять Pico W из Интернета, используя только Python и Anvil.

Anvil бесплатен для использования — зайдите на anvil.works/pico сегодня, чтобы увидеть больше примеров и полную документацию.

Хотите больше качественного контента для разработчиков?
Следите за мной, чтобы узнать больше о разработке программного обеспечения!

Райан

Разработчик программного обеспечения. Энтузиаст технологий. Следите за мной, чтобы узнать о Python, Anvil и разработке программного обеспечения.

Оцените статью
devanswers.ru
Добавить комментарий