Botão de emergência com Raspberry Pi Zero W e Pushbullet

A Raspberry Pi Zero W é a mais recente placa da linha das Raspberries. Dentre seus pontos de destaque, além de todo o suporte e exemplos da comunidade, estão: tamanho (mesmo tamanho da Raspberry Pi Zero, o que significa dizer que ela é um pouco maior que um pendrive) e conectividade (WI-FI e Bluetooth nativos). 

 

Portanto, será apresentado neste artigo um projeto que cabe muito bem à Raspberry Pi Zero W: um botão de emergência que, quando acionado, envia uma notificação para um celular através do Pushbullet. Tal projeto foi ideia do meu amigo Douglas Vieira.

 

 

Motivação - um projeto para resolver um problema real

 

A motivação para realizar este projeto veio da ideia de um amigo, o Douglas Vieira. A ideia surgiu de uma situação vivida por ele, onde um de seus familiares passou mal e desmaiou. Como havia ninguém próximo ao referido familiar no momento e o tempo entre este ser encontrado e socorrido infelizmente foi grande demais, o familiar em questão acabou não resistindo.

 

Como o Douglas possui outros familiares que merecem cuidados especiais (alguns inclusive que não utilizam / não são familiarizados com celular), ele conversou comigo sobre criar um projeto que fosse um botão de emergência, que funcionasse conforme o seguinte: se o familiar dele simplesmente apertasse um botão, uma notificação seria enviada imediatamente ao seu celular e ele poderia agir imediatamente para leva-lo ao hospital. Achei a ideia e aplicação fantásticas e trabalhamos em cima por um tempo, porém a melhor solução veio pensando no uso da Raspberry Pi Zero W no projeto.

 

 

Overview - funcionamento

 

Este projeto, como comentado anteriormente, permitirá o envio de notificações ao smartphone assim que o botão de emergência for pressionado. Ou seja, será feito conforme mostrado no gif animado abaixo:

 

 

 

Material necessário

 

Para a realização deste projeto, você precisará dos seguintes materiais:

  • Uma Raspberry Pi Zero W;
  • Um cartão de memória classe 10 de, no mínimo, 8GB de capacidade (tamanho recomendado: 16GB);
  • Um conjunto de headers 2x20 pinos, 180º;
  • Um botão de fliperama ou um botão de comando (como este, por exemplo);
  • Dois jumpers macho-fêmea;
  • Roteador nas proximidades, com conectividade à Internet;
  • Fonte 5V/2A e cabo micro-USB para alimentação da Raspberry Pi Zero W. Há outras alternativas para alimentação, incluindo: carregador comum de celular e PowerBank, desde que possua corrente de saída de 2A ou superior.

 

 

Preparando a Raspberry

 

Antes de prosseguir no projeto, é preciso preparar a Raspberry para utilização, tanto quanto a software quanto hardware. Siga as instruções abaixo.

 

Preparação - software

 

Em termos de software, a preparação necessária significa instalar o sistema operacional no cartão de memória, deixar a conectividade com a Internet operando, atualizar os pacotes já presentes na mesma e configurar acesso remoto à Raspberry. Para tudo isso, exceto a parte do acesso remoto, siga este tutorial, também de minha autoria.

 

Para habilitar o acesso remoto à Raspberry por SSH e VNC, faça o seguinte:

  • Acesse o menu Raspberry (canto superior-esquerdo), vá em "Preferences" e depois em "Raspberry Pi Configuration";
  • Na janela de configurações, clique na aba "Interfaces" e habilite o SSH e VNC;
  • Feito isso, aperte OK.

 

Observação: o login e senha de acesso remoto são os mesmos definidos como root (ou seja, se você não redefiniu a senha do root, o acesso pode ser feito com login igual a "pi" e senha "raspberry".

 

Preparação - hardware

 

Neste projeto, para preparar a Raspberry Pi Zero W quanto a hardware, serão necessárias duas coisas:

  1. Headers 2x20: Soldar o conjunto de headers 2x20 (pinos a 180º) na área da placa destinada a isso. Tome muito cuidado para não haver curtos, pois um curto nessa parte pode ser "fatal" para a Raspberry;
  2. Botão: para preparar o botão para ser ligado na Raspberry Pi Zero W, utilize os contatos machos dos jumpers macho-fêmea para nos contatos comum (C) e normalmente aberto (NO) do botão. O resultado ficará similar ao da figura 1.

 

Botão de emergência com jumpers ligados
Figura 1 - Botão de emergência com jumpers ligados

 

 

Notificações no celular, como são feitas nesse projeto?

 

As notificações são enviadas ao celular através do Pushbullet, um app + serviço online que permite que qualquer smartphone (e qualquer computador, através do site oficial) receba mensagens (no caso dos smartphone, notificação push) sem custo algum.

 

Logo do Pushbullet
Figura 2 - Logo do Pushbullet

 

Portanto, é preciso instalar o aplicativo oficial do Pushbullet no smartphone para receber as notificações. 

 

É preciso, além de instalar o aplicativo nos seus dispositivos nos quais deseja receber as notificações (smartphone, tablets, etc.), obter o Access Token. O Access Token é uma chave-única que permite o envio de notificação a todos os seus dispositivos. Ou seja, se algo (este projeto, por exemplo) enviar notificação pelo Pushbullet com o dado Access Token, todos os seus dispositivos com o aplicativo a receberão. Para gerar o Access Token, siga o procedimento abaixo:

  1. Instale o aplicativo oficial do Pushbullet nos dispositivos que devem receber notificações do projeto e faça o cadastro. Se desejar, é possível também fazer o cadastro através de redes sociais (como Facebook, por exemplo);
  2. De seu computador, acesse o site oficial do Pushbullet;
  3. Faça o login com as mesmas credenciais utilizadas no cadastro;
  4. Feito o login, clique em "Settings", depois em "Account" e, por fim, em "Create Access Token", destacado na figura abaixo.
    Tela de settings do Pushbullet
    Figura 3 - Tela de settings do Pushbullet

     

  5. Ao clicar, o site exibirá sua Access Token. 
    Atenção: anote / salve em local seguro, pois você não vai visualizar o Acess Token novamente (se você o perder, terá que criar outro seguindo este mesmo procedimento).

 

 

Circuito esquemático

 

O circuito esquemático do projeto pode ser visto na figura abaixo:

 

Circuito esquemático do projeto
Figura 4 - Circuito esquemático do projeto

 

Note que a ligação do botão no GPIO18 da placa não possui nenhum resistor de pull-up ou pull-down externo. Isto ocorre pois, no código-fonte do projeto (visto a seguir), é ativado o pull-up interno do GPIO18, poupando assim um componente externo (o que deixa o circuito esquemático ainda mais simples).

 

 

Código-fonte

 

O código-fonte do projeto pode ser visto abaixo:

 

 

Copie o código-fonte, altere o conteúdo da variável "ACCESS_TOKEN" pelo seu Access Token (obtido anteriormente neste mesmo artigo) e salve como "NotificaPorBotao.py" no seguinte caminho: /home/pi/Python. Para testar, utilize os comandos abaixo:

 

 

E pronto! Agora basta pressionar o botão e uma notificação do acionamento do botão de emergência chegará nos seus dispositivos que possuem o aplicativo Pushbullet.

 

 

Iniciar o projeto no boot da Raspberry Pi

 

Uma coisa muito interessante (na verdade, essencial) a ser feita é viabilizar para que o projeto seja iniciado / rode automaticamente no boot da Raspberry Pi, eliminando a necessidade de você inicializa-lo manualmente. Para isso, siga o procedimento abaixo:

  1. No terminal Linux (CLI), seja localmente ou via acesso remoto, acesse o arquivo /etc/rc.local da seguinte forma:
  2. No editor de texto insira antes da linha "exit 0" a seguinte linha:
  3. Saia e salve as alterações com Ctrl + X e pressionando a tecla Y;
  4. Agora reinicie a sua Raspberry Pi com o seguinte comando:

     

Após o reboot, o projeto já estará automaticamente rodando em background na Raspberry Pi. Para verificar isso, utilize o seguinte comando:

Este comando produzirá uma saída semelhante a exibida na figura 5, comprovando que o projeto está de fato rodando em background.

 

Projeto em execução em background na Raspberry Pi
Figura 5 - Projeto em execução em background na Raspberry Pi

 

Case para o projeto

 

O Tiago Justino colaborou com o projeto fazendo o design e impressão de um case exclusivo para o projeto. O design foi feito na plataforma online Tinkercad. O trabalho ficou espetacular, conforme pode ser visto nas figuras 6, 7 e 8.

 

Figura 6 - case do projeto
Figura 6 - case do projeto
Figura 7 - case do projeto
Figura 7 - case do projeto
Figura 8 - case do projeto
Figura 8 - case do projeto

 

O projeto do case, assim como todo o restante deste projeto, é aberto/livre para uso e modificação também. Para baixar os arquivos, clique aqui e acesse o github oficial do projeto.

 

Próximos passos

 

Agora que o projeto está funcional, os próximos passos sugeridos são:

  • Se for preciso utilizar mais de um projeto destes ao mesmo tempo (para ficar "alerta" mais de uma pessoa, por exemplo), fazer modificações na mensagem enviada na notificação para saber de onde veio o acionamento do botão de emergência;
  • Colocar baterias e um circuito de recarga, para permitir uso portátil do projeto.

 

 

Agradecimentos

 

Agradeço imensamente o Douglas Vieira pela oportunidade em realizar este projeto, o qual terá um uso nobre e especial. Agradeço também à articulista Gedeane Kenshima pela enorme boa vontade em ajudar e soldar (com ótima qualidade) os headers da Raspberry Pi Zero W e ao Tiago Justino pela imensa boa vontade em ajudar e fazer o design e impressão do case do projeto.

 

Referências

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Pedro Bertoleti
Sou engenheiro eletricista formado pela Faculdade de Engenharia de Guaratinguetá (FEG - UNESP) e trabalho com desenvolvimento de sistemas embarcados em São Paulo capital. Curioso e viciado em tecnologia, sempre busco me aprimorar na área de eletrônica e programação, em especial em desenvolvimento de firmware (área que mais gosto de trabalhar e estudar).Para mais informações, acesse minha página no Facebook:https://www.facebook.com/pbertoleti

Deixe um comentário

Seja o Primeiro a Comentar!

avatar
 
  Notificações  
Notificar