Botón de Emergencia con M5Stick y Pushbullet

En este sencillo proyecto te muestro como usar la aplicación Pushbullet para enviar notificaciones PUSH a un teléfono desde un botón de emergencia construido con un M5StickC Plus2.

Introducción

Con frecuencia necesitamos enviar notificaciones desde un dispositivo a un teléfono o una computadora cuando ocurre un evento importante, como el disparo de una alarma o cuando una variable monitoreada, como la temperatura de una habitación, sale del rango esperado.

Existen distintas formas de hacerlo. Una opción es enviar la información del evento a un broker MQTT y recibirla en el teléfono mediante una aplicación compatible. También es posible utilizar un bot de Telegram para generar alertas.

Otra alternativa muy utilizada es la aplicación Pushbullet, que ofrece varias ventajas:

Fácil integración: permite enviar mensajes desde dispositivos haciendo solicitudes HTTP simples usando su API, programando en distintos lenguajes como Arduino o Micropython.

Compatibilidad multiplataforma: funciona en Android, iOS, PC, navegadores (con extensión para Chrome o Firefox) y hasta permite enviar mensajes entre dispositivos fácilmente.

Sincronización entre dispositivos: las notificaciones se muestran simultáneamente en todos los dispositivos conectados a tu cuenta (por ejemplo, PC y teléfono).

Envío de SMS: Si tienes un teléfono Android con la app de Pushbullet instalada, es posible usar la API para solicitarle al teléfono que envíe un SMS en tu nombre.

Envío de archivos y enlaces: además se puede enviar archivos, enlaces y notas directamente desde tu dispositivo.

Lamentablemente, Pushbullet no es completamente gratuito: si bien ofrece un plan sin costo, este tiene algunas limitaciones. Por ejemplo, al utilizar la API se pueden enviar hasta 500 notificaciones (pushes) por mes, lo cual es una cantidad razonable para muchos proyectos personales o educativos.

En lo que sigue veremos como instalar y configurar Pushbullet y de que manera se puede usar para enviar notificaciones a un telefono o computadora.

Instalación

Antes de poder usar Pushbullet, es necesario instalar su aplicación en el teléfono. Está disponible tanto para Android como para iOS, y su instalación es similar a la de cualquier otra app. Durante el proceso, te solicitará una serie de permisos necesarios para su funcionamiento, como el acceso a las notificaciones, mensajes (en Android), y otros elementos del sistema.

También puedes instalar Pushbullet en la computadora. Está disponible como aplicación web y como extensión para navegadores como Chrome y Firefox, lo que permite recibir y responder notificaciones desde distintas plataformas.

Fig. 1. La app de Pushbullet en Windows

Enviando notificaciones

Desde la aplicación en la PC es posible enviar notificaciones al teléfono, pero eso no es lo que buscamos en este caso. Lo que queremos es hacerlo desde una placa como un Arduino o un ESP32, y para eso necesitamos utilizar la API de Pushbullet, enviando solicitudes HTTP con los datos del mensaje.

Para poder hacerlo necesitamos un token de acceso, que funciona como una clave personal para comunicarnos con los servidores de Pushbullet. Este token se puede obtener desde la página web oficial o desde la aplicación de Pushbullet para Windows, ingresando a Settings > Account.

Fig. 2. Obteniendo el token de acceso

El token se genera al pulsar sobre «Create Access Token«. Copia el valor generado y no lo compartas con nadie.

Con el token listo ya puedes hacer una prueba usando el comando curl en Windows o Linux. En una ventana de comandos, escribe lo siguiente (reemplazando TuToken por el token que generaste antes y conservando los dos puntos)

curl -k -u TuToken: https://api.pushbullet.com/v2/pushes -d type=note -d title="Prueba desde Windows" -d body="Hola mundo!" -X POST

Si todo funciona correctamente, verás la notificación en tu teléfono

Fig. 3. Notificación recibida

Lo que hace el comando curl es una solicitud HTTP a la API de Pushbullet con los siguientes detalles:

  • URL: https://api.pushbullet.com/v2/pushes
  • Método: POST
  • Headers:
    • Content-Type: application/json
    • Access-Token: TuToken
  • Payload: Un archivo JSON con la siguiente información:
    • «type»: «note»
    • «title»: «Prueba desde Windows»
    • «body»: «Hola mundo!»

Desde luego, los campos title y body pueden tener otro contenido según tus necesidades.

Esto se puede codificar con facilidad tanto en Arduino como en Micropython. Para ponerlo en funcionamiento rapidamente y mostrarlo de una forma más gráfica te comparto una aplicacion sencilla hecha con M5Stack.

Ejemplo: Botón de emergencia

Para poner en práctica lo aprendido sobre Pushbullet, vamos a realizar un proyecto real: un botón de emergencia, similar al que podría utilizar una persona mayor en su hogar. Si se diera una situación de emergencia, como una caída o un problema médico, el dueño de este dispositivo puede pulsar sobre el botón grande del Stick lo que disparará una notificación al teléfono de otra persona, avisando de esta situación.

Fig. 4. Botón de emergencia con M5Stick

El programa en UIFlow 1 es el siguiente:

Fig. 5. Programa en UIFlow

A los fines de ahorrar batería, la pantalla no muestra nada a menos que pulses el botón B sobre el lateral, en cuyo caso imprime el estado de la batería, sólo a los fines de controlar su duración. Por eso al arrancar, el programa sólo baja el brillo a cero y fija el fondo a color negro.

Cuando se produce la emergencia y el dueño pulsa el botón A (el grande sobre el frente) se invoca a la función PUSH, que conecta con el Wifi, realiza la solicitud HTTP, hace un Beep y desconecta.

Fig. 6. Detalles de la función PUSH

Recuerda que en el programa debes poner el nombre de tu red Wifi y su contraseña, así como tu token de acceso personal y no los valores que muestra la imagen.

Fig. 7. Notificación recibida al pulsar el botón de emergencia

Conclusiones

Entre las distintas opciones disponibles para enviar notificaciones desde un dispositivo, Pushbullet ofrece características interesantes que vale la pena explorar y probar. En este artículo te mostré cómo instalarlo y cómo utilizarlo, usando un M5Stick como ejemplo para ilustrar su funcionamiento. Sin embargo, este mismo procedimiento se puede aplicar fácilmente a otras placas, tanto si están programadas en Arduino como en MicroPython.

Es importante aclarar que el ejemplo con el M5Stick tiene un fin puramente didáctico: tal como está programado, la batería se agota en menos de 12 horas, por lo que no resulta útil para una aplicación práctica real.

Como siempre, espero que este artículo te haya sido de utilidad para realizar tus propios proyectos. Cualquier duda o sugerencia puedes dejarla mas abajo en la sección de comentarios. Hasta la próxima!

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Habilitar notificaciones OK No, gracias