Automação básica com bluetooth BLE na Raspberry Pi 3

A Raspberry Pi é, indiscutivelmente, uma das plataformas de desenvolvimento mais utilizadas no mundo. O motivo é que, além de sua comunidade muito ativa, a Raspberry Pi conta com muitos recursos de hardware, o que viabiliza uma grande gama de projetos. Um dos recursos mais interessantes dela é o fato de ter Bluetooth (BLE, no caso) já “nativa”. Aproveitando este recurso, este post mostrará como usar um scan bluetooth para fazer uma automação básica e simples usando bluetooth BLE na Raspberry Pi 3.

Material necessário

Para reproduzir este projeto, você precisará de:

Overview do projeto Bluetooth BLE na Raspberry Pi

O projeto de Automação básica com Bluetooth BLE na Raspberry Pi aqui abordado fará o seguinte: periodicamente, um scan do Bluetooth (BLE) será feito. Dele, serão obtidos os nomes dos dispositivos e endereços MAC de todos os dispositivos detectáveis / visíveis. Com base nos dispositivos descobertos, cada um passará por uma rotina de acionamentos, a qual tomará algumas ações dependendo de quem for detectado.

Bluetooth BLE na Raspberry Pi

No caso, as ações serão acionar canais de um módulo de 2 relés, o que poderá facilmente ser convertido em acionamento de quaisquer dispositivos com alimentação AC, como lâmpadas, por exemplo.

Instalação de bibliotecas necessárias

Antes de prosseguirmos, é necessário instalar o pybluez,  para assim conseguirmos interagir com o Bluetooth da Raspbery PI 3 através da linguagem de programação Python. Para isso, execute os seguintes comandos no terminal da Raspberry PI 3:

Descobrindo os endereços MAC de seus dispositivos

Antes de partir para o projeto em si, precisaremos descobrir os endereços MAC dos dispositivos que você possui. Em resumo, o endereço MAC de um Bluetooth é um identificador único, permitindo diferenciar um dispositivo Bluetooth dentre todos os existentes. Portanto, identificar um dispositivo no projeto pelo seu endereço MAC é uma estratégia perfeita para acionamentos personalizados por dispositivo.

Para descobrir os endereços MAC dos seus dispositivos, foi elaborado o programa abaixo, feito em Python.

Copie o código-fonte e salve-o como ScanBLE.py. Para utilizá-lo, siga as orientações:

  1. Ligue os dispositivos Bluetooth que deseja utilizar no projeto. Atente para deixá-los visíveis, caso contrário eles poderão não ser detectados.
  2. Ligue o Bluetooth da Raspberry PI (através da interface gráfica da Raspbian).
  3. Devido ao fato dos dados do Bluetooth na Raspberry PI 3B serem acessíveis somente a quem é super-usuário, execute o programa como sudo. Observe a chamada de execução abaixo:
  4. Os resultados podem demorar algumas dezenas de segundos para aparecer (pois, no programa, cada scan foi programado para durar 20 segundos). Eles aparecerão no formato “Endereço – nome do dispositivo”, conforme imagem a seguir. Anote os endereços e nomes de dispositivos descobertos.

Scan BLE

Circuito esquemático do projeto

O circuito esquemático do projeto pode ser visto abaixo.

Código-fonte do projeto

Abaixo segue o código-fonte do projeto.

Copie o código e salve-o como “AutomacaoBLE.py”.

Observações:

  1. Coloque o endereço MAC de dois dispositivos nas variáveis MACPermitido1 e MACPermitido2, no formato indicado no código-fonte.
  2. Execute o programa como sudo. Observe a chamada de execução abaixo:

Feito isso, basta chegar nas proximidades da Raspberry PI 3 para que um ou mais relés sejam acionados ou se afastar (ou desligar o Bluetooth do dispositivo) para que um ou mais relés sejam desligado. Enfim, hora da diversão!

Gostou ? Ajude-nos a melhorar o blog deixando o seu comentário logo abaixo e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

3 Comentários

  1. Boa tarde Pedro
    Estou tentando fazer alguma coisa relativo a isto mesmo, estou usando 1 beacon para tentar conseguir medir proximidade entre o beacon e o raspberrypi.
    Já fez alguma coisa parecida com isto?
    Obrigado
    Luciano

    Luciano Henrique Albano
    1. Luciano, boa tarde.

      Infelizmente, nunca fiz algo parecido com o que você deseja.
      Mas, dando um palpite, o princípio do que você deseja me parece ser o seguinte: obter a distância em função do RSSI medido no seu receptor (grosso modo, intensidade do sinal Bluetooth).

      Atenciosamente,
      Pedro Bertoleti

Trackbacks and Pingbacks