Cómo enviar alertas desde Raspberry Pi Pico W a un teléfono o tableta
HogarHogar > Blog > Cómo enviar alertas desde Raspberry Pi Pico W a un teléfono o tableta

Cómo enviar alertas desde Raspberry Pi Pico W a un teléfono o tableta

Dec 08, 2023

Alertas personalizadas, mensajes desde tu Pico W a tu dispositivo móvil.

La Raspberry Pi Pico W de 8 dólares es una pequeña tabla maravillosa. Durante la escasez mundial de suministro de chips, tapó un agujero bastante grande con forma de Raspberry Pi en el inventario de Raspberry Pi y proporcionó a los fabricantes una plataforma IoT (Internet de las cosas) de bajo costo y fácil de usar. Seguro que no es el primer microcontrolador conectado a Internet (podemos hablar de ese honor en los comentarios), pero para muchos fanáticos de Raspberry Pi fue su primer paso en el maravilloso mundo de los microcontroladores.

Mientras que Raspberry Pi ejecuta un sistema operativo Linux completo, Raspberry Pi Pico W depende del firmware para proporcionar una capa en la que podemos escribir nuestro código. MicroPython es uno de los lenguajes oficialmente admitidos y ha experimentado muchas mejoras para adaptarse a Raspberry Pi Pico. Una mejora fue la inclusión de urequests (microsolicitudes) que permiten a nuestro Pico W enviar y recibir solicitudes HTTP.

En este procedimiento, usaremos urequests junto con ntfy.sh, un servicio y una aplicación gratuitos para dispositivos Android y Apple que pueden interceptar mensajes de dispositivos IoT y mostrarlos en su dispositivo. Lo vamos a utilizar para enviar alertas a nuestro móvil Android, alertas que se activan mediante un sensor PIR (Infrarrojos Pasivo) que detecta movimiento en una habitación.

Ntfy.sh es un servicio notablemente eficaz y sencillo. En lugar de instalar un módulo Python/MicroPython específico, funciona con solicitudes para enviar mensajes desde la Raspberry Pi Pico W usando un tema específico (muy similar a cómo funciona MQTT). Nuestro dispositivo Android/iOS está suscrito a este tema y recibe las notificaciones del Pico W.

Estamos limitados a enviar texto en Raspberry Pi Pico W, pero este proyecto también se puede usar con Raspberry Pi SBC y la cámara oficial de Raspberry Pi para enviar imágenes (o cualquier otra forma de archivo adjunto) cuando ocurre un evento. Indique si un pájaro se está alimentando de su comedero para pájaros o si hay alguien en su jardín trasero. Para ver un ejemplo sobre cómo usar imágenes con ntfy.sh, consulte nuestro tutorial sobre cómo usar diccionarios.

El circuito de este proyecto es increíblemente simple y está diseñado específicamente. Sólo hay tres conexiones entre el sensor PIR y la Raspberry Pi Pico.

Conecte los cables entre el Pico y el sensor PIR antes de continuar.

1.Instalar ntfy.shpara su dispositivo Android/iOS.

2. Abra la aplicación y haga clic en + para crear una nueva suscripción.

3.Crea un nuevo tema y haz clic en Suscribirse. Elegimos utilizar la prueba th. Crea un tema que sea personal para ti. También tenga en cuenta que es posible que los temas no estén protegidos con contraseña, así que no envíe datos confidenciales.

4.Deja la aplicación abiertaen tu dispositivo.

Ahora pasamos a codificar la Raspberry Pi Pico W.

5.Sigue estos pasospara descargar la última versión de MicroPython para Raspberry Pi Pico W. Los pasos más importantes son descargar e instalar la imagen del firmware UF2 y configurar Thonny. El resto son opcionales.

6.Abierto Thonnyyhaga clic en el botón Detener para actualizar la conexión. Esto garantiza que Python Shell esté abierto y funcionando correctamente.

7.Crea un nuevo archivo en blanco.

8.Importe el módulo de red y luego importe urequests, renombrándolo a solicitudes. El módulo de red permite que nuestro Pico W se conecte a Internet. Urequests es una versión MicroPython del módulo de solicitudes de Python que usaremos para enviar un mensaje desde Pico W. Urequests ahora está preinstalado en la última versión del firmware UF2.

9.Importe la función de suspensión desde el tiempo y Pin desde la máquina. La función de suspensión se utilizará para agregar una pausa al código del proyecto. El módulo de la máquina contiene funciones y clases que permiten que nuestro código controle y lea los pines GPIO.

10.Cree un objeto, pir, y utilícelo para crear una conexión al pin de salida PIR en GPIO 16.El pin debe configurarse como entrada, y debemos colocar el pin GPIO hacia arriba (3V) para que cuando se active el PIR, la señal baje el pin.

11.Cree un objeto, wlan para representar la conexión Wi-Fi, luego encienda el Wi-Fi y conéctese a su punto de acceso Wi-Fi.

12.Agregue un retraso de tres segundos después de realizar la conexión Wi-Fi. Esto no es estrictamente necesario, el proceso de conexión es un "bloqueador", lo que significa que debe completarse antes de poder pasar a esta línea. Pero hemos tenido más suerte conectándonos cuando hay una pausa que sin ella.

13.Imprime el estado de la conexión Wi-Fi.Verdadero significa que estamos conectados, Falso significa que no lo estamos.

14.Cree un bucle while True y utilícelo para imprimir el estado actual del pin PIR GPIO.Configuramos el pin para que esté alto (hacia arriba) en nuestro código, por lo que el valor debe ser 1.

15.Cree una declaración condicional que verifique si el sensor PIR se ha activado.Activar el sensor obligará al pin GPIO conectado al pin de salida del sensor a bajar (0) y nuestro código está buscando este cambio.

dieciséis.Utilice solicitudes para publicar un mensaje en ntfy. Tenga en cuenta que debemos especificar el nombre del tema, en nuestro caso https://ntfy.sh/th-test, como parte del argumento de la función. El siguiente argumento, datos, es el mensaje que verá el usuario.

17.Dentro de la solicitud, especifique "encabezados" que incluyan un título para la notificación. . Una prioridad (siendo 5 la prioridad más alta) y etiquetas, que se utilizan para agregar un emoji de luz giratorio.

18.Imprime un mensaje en el shell de Python.Esto es únicamente para fines de depuración.

19.Agregar una condición másque simplemente usa pass para permitir que el código se repita.

20.Agregue un retraso al código, dentro del bucle while True, pero fuera de las pruebas condicionales. Este retraso puede ser de 10 segundos u horas. Todo depende de la frecuencia con la que quieras recibir alertas.

21.Guarde el código en Raspberry Pi Pico como alarm.py y haga clic en Ejecutar para comenzar. Si desea que este código se ejecute automáticamente cuando se encienda el Pico W, guarde el archivo como main.py. MicroPython está configurado para ejecutar main.py cada vez que se enciende la placa.

22.Coloque su mano frente al sensor para activar la alerta.

23.Su dispositivo Android/iOS recibirá una notificación.

Únase a los expertos que leen Tom's Hardware para obtener información privilegiada sobre las noticias entusiastas sobre tecnología de PC, y lo han hecho durante más de 25 años. Le enviaremos noticias de última hora y reseñas detalladas de CPU, GPU, IA, hardware de fabricante y más directamente a su bandeja de entrada.

Les Pounder es editor asociado de Tom's Hardware. Es un tecnólogo creativo y durante siete años ha creado proyectos para educar e inspirar mentes tanto jóvenes como mayores. Ha trabajado con la Fundación Raspberry Pi para escribir e impartir su programa de formación docente "Picademy".

Raspberry Pi Pico W impulsa un exclusivo reloj unicornio

SB Components anuncia Micro RP2040 para proyectos más pequeños de Raspberry Pi Pico

Radeon RX 6750 GRE podría ser simplemente una RX 6700 overclockeada

Por Ash Hill26 de agosto de 2023

Por Ash Hill26 de agosto de 2023

Por Aaron Klotz25 de agosto de 2023

Por Denise Bertacchi25 de agosto de 2023

Por Stewart Bendle25 de agosto de 2023

Por Jarred Walton25 de agosto de 2023

Por Mark Tyson 25 de agosto de 2023

Por Jarred Walton25 de agosto de 2023

Por Ash Hill25 de agosto de 2023

Por Mark Tyson 25 de agosto de 2023

Por Anton Shilov25 de agosto de 2023

Instalar ntfy.shCrea un nuevo tema y haz clic en Suscribirse.Deja la aplicación abiertaSigue estos pasospara descargar la última versión de MicroPython para Raspberry Pi Pico W.Abierto Thonnyhaga clic en el botón DetenerCrea un nuevo archivo en blanco.Importe el módulo de red y luego importe urequests, renombrándolo a solicitudes.Importe la función de suspensión desde el tiempo y Pin desde la máquina.Cree un objeto, pir, y utilícelo para crear una conexión al pin de salida PIR en GPIO 16.Cree un objeto, wlan para representar la conexión Wi-Fi, luego encienda el Wi-Fi y conéctese a su punto de acceso Wi-Fi.Agregue un retraso de tres segundos después de realizar la conexión Wi-Fi.Imprime el estado de la conexión Wi-Fi.Cree un bucle while True y utilícelo para imprimir el estado actual del pin PIR GPIO.Cree una declaración condicional que verifique si el sensor PIR se ha activado.Utilice solicitudes para publicar un mensaje en ntfy.Dentro de la solicitud, especifique "encabezados" que incluyan un título para la notificación.Imprime un mensaje en el shell de Python.Agregar una condición másAgregue un retraso al código, dentro del bucle while True, pero fuera de las pruebas condicionales.Guarde el código en Raspberry Pi Pico como alarm.py y haga clic en Ejecutar para comenzar.Coloque su mano frente al sensor para activar la alerta.Su dispositivo Android/iOS recibirá una notificación.