- Instalando pacotes necessários para comunicação Bluetooth:
- Dispositivos de emparelhamento com Raspberry Pi via Bluetooth:
- Diagrama de circuito:
- Controle de LED com Android App BlueTerm:
- Explicação de programação:
Raspberry Pi é muito popular para projetos de IoT devido à sua capacidade contínua de comunicação sem fio pela Internet. Raspberry Pi 3 tem Wi-Fi e Bluetooth embutidos, e Bluetooth é um protocolo de comunicação sem fio muito popular. Hoje vamos controlar o Pin GPIO do Raspberry Pi por meio de um aplicativo Android usando Bluetooth.
Aqui, estamos usando Raspberry 2 Pi Modelo B, que não tem Bluetooth embutido, portanto, estamos usando um dongle Bluetooth USB simples. Além disso, só precisamos de um resistor (220R) e um LED para demonstrar o controle do GPIO. Aqui, estamos usando o protocolo RFCOMM Bluetooth para comunicação sem fio.
A programação para Bluetooth em Python segue o modelo de programação de soquete e a comunicação entre os dispositivos Bluetooth é feita através do soquete RFCOMM. RFCOMM (Radio Frequency Communication) é um protocolo Bluetooth que fornece portas seriais RS-232 emuladas e também chamado de Emulação de Porta Serial. O perfil da porta serial Bluetooth é baseado neste protocolo. O RFCOMM é muito popular em aplicativos Bluetooth devido ao seu amplo suporte e API disponível publicamente. Ele está vinculado ao protocolo L2CAP.
Também usamos o módulo Bluetooth HC-06 em nosso projeto anterior: LEDs controlados por voz usando Raspberry Pi. Verifique também nossos projetos anteriores do Raspberry Pi junto com alguns bons projetos de IoT.
Instalando pacotes necessários para comunicação Bluetooth:
Antes de começar, precisamos instalar alguns softwares para configurar a comunicação Bluetooth no Raspberry Pi. Você deve ter um cartão de memória Raspbian Jessie instalado pronto com Raspberry Pi. Consulte este artigo para instalar o Raspbian OS e começar a usar o Raspberry Pi. Portanto, agora primeiro precisamos atualizar o Raspbian usando os comandos abaixo:
sudo apt-get update sudo apt-get upgrade
Então, precisamos instalar alguns pacotes relacionados ao Bluetooth:
sudo apt-get install bluetooth blueman bluez
Em seguida, reinicie o Raspberry Pi:
sudo reboot
BlueZ é um projeto de código aberto e pilha de protocolo Bluetooth oficial do Linux. Ele suporta todos os principais protocolos Bluetooth e agora se torna parte do kernel Linux oficial.
Blueman fornece a interface Desktop para gerenciar e controlar os dispositivos Bluetooth.
Finalmente, precisamos da biblioteca python para comunicação Bluetooth para que possamos enviar e receber dados por meio de RFCOMM usando a linguagem Python:
sudo apt-get install python-bluetooth
Instale também as bibliotecas de suporte GPIO para Raspberry Pi:
sudo apt-get install python-rpi.gpio
Agora, concluímos a instalação dos pacotes necessários para comunicação Bluetooth no Raspberry Pi.
Dispositivos de emparelhamento com Raspberry Pi via Bluetooth:
Emparelhar dispositivos Bluetooth, como um telefone celular, com o Raspberry Pi é muito fácil. Aqui, emparelhamos nosso smartphone Android com Raspberry Pi. Instalamos anteriormente o BlueZ in Pi, que fornece um utilitário de linha de comando chamado “bluetoothctl” para gerenciar nossos dispositivos Bluetooth. Mas antes, conecte seu dongle USB Bluetooth com Raspberry Pi e verifique se foi detectado ou não, usando o comando abaixo:
lsusb
Agora abra o utilitário bluetoothctl pelo comando abaixo:
sudo bluetoothctl
Você pode verificar todos os comandos do utilitário bluetoothctl digitando 'ajuda' . Por enquanto, precisamos inserir os comandos abaixo na ordem determinada:
# power on # agent on # detectable on # pairable on # scan on
Após o último comando “scan on”, você verá seu dispositivo Bluetooth (celular) na lista. Certifique-se de que seu celular esteja com o Bluetooth ligado e visível para dispositivos próximos. Em seguida, copie o endereço MAC do seu dispositivo e emparelhe-o usando o comando fornecido:
par
Em seguida, será solicitada a senha ou PIN no console do terminal e, em seguida, digite a senha e pressione Enter. Em seguida, digite a mesma senha no seu telefone celular quando solicitado e agora você está emparelhado com o Raspberry Pi. Também explicamos todo esse processo em nosso Vídeo fornecido no final.
Como dito anteriormente, você também pode usar a interface Desktop para emparelhar o telefone móvel. Depois de instalar o Blueman, você verá um ícone de Bluetooth no lado direito da área de trabalho do Raspberry Pi, conforme mostrado abaixo, com o qual você pode fazer o emparelhamento facilmente.
Diagrama de circuito:
O diagrama do circuito é muito simples, apenas conectamos um LED ao PIN 40 (GPIO 21) do Raspberry Pi com um resistor de 220 Ohm:
Controle de LED com Android App BlueTerm:
Agora, depois de emparelhar o telefone móvel, precisamos instalar um aplicativo Android para se comunicar com o Raspberry Pi usando um adaptador serial Bluetooth. Como dito anteriormente, o protocolo RFCOMM / SPP emula a comunicação serial por Bluetooth, então instalamos aqui o aplicativo BlueTerm que suporta este protocolo.
Você também pode usar qualquer outro aplicativo de terminal Bluetooth que ofereça suporte à comunicação por meio do soquete RFCOMM.
Agora, depois de baixar e instalar o aplicativo BlueTerm, execute o programa Python fornecido abaixo a partir do terminal e conecte o dispositivo raspberrypi emparelhado do aplicativo BlueTerm ao mesmo tempo.
Após a conexão bem-sucedida, você verá conectado: raspberrypi no canto superior direito do aplicativo, conforme mostrado abaixo:
Agora você pode simplesmente inserir '1' ou '0' no aplicativo BlueTerm para tornar o pino GPIO ALTO e BAIXO, respectivamente, o que liga e desliga o LED conectado a este pino. Pressione 'q' para sair do programa. Você pode usar o teclado de digitação do Google Voice para controlar o GPIO usando sua voz. Confira a demonstração completa no Vídeo fornecido no final.
Portanto, é assim que você pode controlar sem fio o GPIO Pin usando um aplicativo Android via Bluetooth. Verifique também como usar o Bluetooth com Arduino.
Explicação de programação:
O programa Python para controlar Raspberry Pi GPIO com o aplicativo Android é muito simples e autoexplicativo. Apenas precisamos aprender um pouco sobre o código relacionado à comunicação RFCOMM do Bluetooth. Primeiro, precisamos importar a biblioteca de soquetes Bluetooth, que nos permite controlar o Bluetooth com a linguagem Python; instalamos a biblioteca para o mesmo na seção anterior.
importar Bluetooth
Abaixo está o código responsável pela comunicação Bluetooth:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () print "Conexão aceita de", endereço enquanto 1: data = client_socket.recv (1024)
Aqui podemos entendê-los linha por linha:
server_socket = bluetooth.BluetoothSocket (bluetooth.RFCOMM): Criando soquete para comunicação RFCOMM Bluetooth.
server_socket.bind (("", porta): - O servidor vincula o script no host '' à porta.
server_socket.listen (1) : O servidor escuta para aceitar uma conexão de cada vez.
client_socket, address = server_socket.accept () : O servidor aceita a solicitação de conexão do cliente e atribui o endereço mac ao endereço da variável , client_socket é o soquete do cliente
data = client_socket.recv (1024): Recebe dados através do socket do cliente client_socket e atribui-os aos dados variáveis. No máximo 1024 caracteres podem ser recebidos por vez.
Finalmente, após toda a programação, feche a conexão cliente e servidor usando o código abaixo:
client_socket.close () server_socket.close ()
Todo o outro código é fácil e autoexplicativo. Verifique o código completo abaixo. Tente modificar este projeto e você pode usá-lo para controlar muitas outras coisas sem fio, como usar relés, você pode controlar os eletrodomésticos ou também pode controlar um carro robô através do telefone Android.