Недавно я записал новое видео, в котором показал, как взять ваш новый 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 и разработке программного обеспечения.