- Instalando pacotes necessários para comunicação Bluetooth:
- Dispositivos de emparelhamento com Raspberry Pi via Bluetooth:
- Diagrama de circuito:
- Controlando o dispositivo AC 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. Então, hoje vamos controlar eletrodomésticos por meio de smartphones usando Raspberry Pi 3 e Bluetooth.
Aqui, estamos usando o Raspberry Pi 3, que tem Bluetooth integrado, portanto, não precisamos usar nenhum dongle USB Bluetooth externo. Além disso, só precisamos de módulos de relé para este projeto de automação residencial sem fio. 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.
Se você tiver o Raspberry Pi 2, precisará usar um dongle Bluetooth externo ou um módulo Bluetooth HC-06. Verifique nossos projetos anteriores para usar esses dispositivos Bluetooth externos: Controlando Raspberry Pi GPIO usando o aplicativo Android sobre Bluetooth e 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.
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 no vídeo fornecido no tutorial de controle GPIO anterior. Aqui está o link direto do YouTube.
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 de circuito para esta automação residencial controlada por Bluetooth baseada em Raspberry Pi é muito simples, nós apenas conectamos o sinal de entrada do módulo de relé Pin ao PIN 40 (GPIO 21) do Raspberry Pi e outros dois pinos (Vcc e GND do módulo de relé) aos pinos 2 e 6 de Raspberry Pi 3. Em seguida, conectamos uma lâmpada AC CFL ao relé, conforme mostrado no diagrama de circuito:
Se você for novo no Relay e quiser saber mais sobre o Relay e suas conexões com o dispositivo AC, verifique este artigo.
Controlando o dispositivo AC com Android App BlueTerm:
Agora, depois de parear o telefone móvel, precisamos instalar um aplicativo Android para comunicação com o Raspberry Pi usando um adaptador serial Bluetooth, para que possamos controlar os pinos GPIO do Raspberry Pi. 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, que por sua vez aciona o módulo de relé conectado a este pino, que controla ainda mais a lâmpada CA conectada ao relé. 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 AC Appliance 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, carro robô através do telefone Android ou pode usar sua voz para controlar as luzes.
Verifique também nossos vários tipos de projetos de automação residencial usando diferentes tecnologias e microcontroladores como: