Как отправлять оповещения с Raspberry Pi Pico W на телефон или планшет
ДомДом > Блог > Как отправлять оповещения с Raspberry Pi Pico W на телефон или планшет

Как отправлять оповещения с Raspberry Pi Pico W на телефон или планшет

Dec 08, 2023

Пользовательские оповещения, сообщения с вашего Pico W на мобильное устройство.

Raspberry Pi Pico W за 8 долларов — замечательная маленькая плата. Во время глобального дефицита поставок чипов компания закрыла довольно большую дыру в форме Raspberry Pi в запасах Raspberry Pi и предоставила производителям недорогую и простую в использовании платформу IoT (Интернета вещей). Конечно, это не первый микроконтроллер, подключенный к Интернету (мы можем обсудить эту честь в комментариях), но для многих поклонников Raspberry Pi это был первый шаг в чудесный мир микроконтроллеров.

В то время как Raspberry Pi работает под управлением полноценной ОС Linux, Raspberry Pi Pico W использует встроенное ПО, обеспечивающее уровень, на котором мы можем писать наш код. MicroPython — один из официально поддерживаемых языков, и в него было внесено множество улучшений для совместимости с Raspberry Pi Pico. Одним из улучшений стало включение urequests (микрозапросов), которые позволяют нашему Pico W отправлять и получать HTTP-запросы.

В этом практическом руководстве мы собираемся использовать urequests вместе с ntfy.sh, бесплатным сервисом и приложением для устройств Android и Apple, которое может перехватывать сообщения от устройств IoT и отображать их на вашем устройстве. Мы собираемся использовать его для отправки оповещений на наш мобильный телефон Android, оповещений, которые активируются датчиком PIR (пассивный инфракрасный порт), который обнаруживает движение в комнате.

Ntfy.sh — чрезвычайно эффективный и простой сервис. Вместо установки определенного модуля Python/MicroPython он работает с запросами на отправку сообщений от Raspberry Pi Pico W по определенной теме (очень похоже на то, как работает MQTT). Наше устройство Android/iOS подписано на эту тему и получает уведомления от Pico W.

Мы ограничены отправкой текста на Raspberry Pi Pico W, но этот проект также можно использовать с SBC Raspberry Pi и официальной камерой Raspberry Pi для отправки изображений (или любой другой формы вложения) при возникновении события. Скажем, птица кормится из вашей кормушки или кто-то находится в вашем саду за домом. Пример использования изображений с ntfy.sh можно найти в нашем руководстве по использованию словарей.

Схема этого проекта намеренно невероятно проста. Между PIR-датчиком и Raspberry Pi Pico всего три соединения.

Прежде чем двигаться дальше, подключите провода между Pico и PIR-датчиком.

1.Установите ntfy.shдля вашего устройства Android/iOS.

2. Откройте приложение и нажмите +, чтобы создать новую подписку.

3.Создайте новую тему и нажмите «Подписаться». Мы решили использовать th-тест. Создайте тему, которая будет лично для вас. Также обратите внимание, что темы могут быть не защищены паролем, поэтому не отправляйте конфиденциальные данные.

4.Оставьте приложение открытымна вашем устройстве.

Теперь мы переходим к кодированию Raspberry Pi Pico W.

5.Следуй этим шагамчтобы загрузить последнюю версию MicroPython для Raspberry Pi Pico W. Наиболее важными шагами являются загрузка и установка образа прошивки UF2 и настройка Thonny. Остальное опционально.

6.Открыть Тонниинажмите кнопку «Стоп» чтобы обновить соединение. Это гарантирует, что оболочка Python открыта и работает правильно.

7.Создайте новый пустой файл.

8.Импортируйте сетевой модуль, а затем импортируйте urequests, переименовав его в запросы. Сетевой модуль позволяет нашему Pico W подключаться к Интернету. Urequests — это версия модуля запросов Python для MicroPython, которую мы будем использовать для отправки сообщения от Pico W. Urequests теперь предустановлен в последней версии прошивки UF2.

9.Импортируйте функцию сна из времени и закрепите с машины. Функция сна будет использоваться для добавления паузы в код проекта. Машинный модуль содержит функции и классы, которые позволяют нашему коду управлять и считывать контакты GPIO.

10.Создайте объект pir и используйте его для подключения к выходному контакту PIR на GPIO 16.Этот вывод необходимо настроить как вход, и мы должны поднять вывод GPIO на высокий уровень (3 В), чтобы при срабатывании PIR сигнал переводил вывод на низкий уровень.