Como usar o Bluetooth no Raspberry Pi Pico e controlar um LED usando o celular
Olá a todos, bem-vindos de volta a outro tutorial da série de tutoriais do Raspberry Pi Pico. Neste tutorial, vamos controlar um LED com um aplicativo Android usando Bluetooth e Micro Python. O módulo HC-06 Bluetooth é muito barato e fácil de fazer interface com os microcontroladores e geralmente é implementado usando a comunicação UART. Portanto, nossa tarefa é estabelecer uma comunicação UART entre a placa pico e o módulo Bluetooth.
Conteudo
Componentes necessários para o tutorial de bluetooth do raspberry pi pico
Você precisa se certificar de que possui os seguintes componentes abaixo antes de seguir este tutorial.
- Módulo Bluetooth HC-06
- Placa Raspberry Pi Pico
- Led de qualquer cor
- Resistor de 220 Ohm
- Fios de conexão
- ProtoBoard
Conexões do circuito do módulo Bluetooth Raspberry Pi Pico HC-05
No diagrama de conexão acima, você pode ver que o pino do transmissor do módulo Bluetooth foi conectado ao GPIO1, que é o pino número 2 da placa pico com o fio LARANJA e o pino do receptor do módulo Bluetooth foi conectado ao GPIO0 ou seja, o pino número 1 da placa pico com um fio verde O VCC e o pino terra do módulo Bluetooth são conectados ao VBUS e ao pino terra da placa pico com os fios VERMELHO e PRETO, respectivamente. O LED é conectado ao GPIO16 da placa pico através de um resistor de 220 ohms.
Iniciando a Programação do Programa em Android
Uma das coisas mais excitantes na programação de computadores e dispositivos móveis é a possibilidade de comunicação sem fio. É quase mágico quando um clique em um botão no seu celular gera uma ação em outro dispositivo. Dá uma sensação de controle, poder criar uma aplicação que envia comandos à distância para outro celular, notebook ou componentes eletrônicos feitos por você mesmo.
Neste post, vamos aprender a utilizar o controlador Bluetooth de um dispositivo Android. Ao final, seremos capazes de compartilhar dados entre dispositivos Android. No processo, vamos escrever um pequeno aplicativo capaz de buscar dispositivos Bluetooth, conectar-se e trocar mensagens.
- Ativando o adaptador Bluetooth;
- Buscando por dispositivos Bluetooth pareados;
- Descobrindo dispositivos Bluetooth nas proximidades;
- Conectando dois dispositivos;
- Transferência de dados bidirecional.
Baixe e configure o aplicativo Terminal Serial Bluetooth para Android
Você precisa baixar o aplicativo gratuito Serial Bluetooth Terminal na Google Play Store. Quando você abrir o aplicativo, poderá ver o seguinte layout. Na parte inferior do aplicativo, você pode ver que temos alguns botões rotulados como “M1”, “M2”, “M3” e assim por diante. Precisamos configurar o “M1” como botão “Led On” e “M2” como botão “Led Off”.
Para configurar os botões, você precisa manter o botão pressionado por algum tempo. Uma nova janela aparecerá semelhante à imagem abaixo. Você precisa inserir o “Nome”, “Valor”, “Modo de edição” e “Ação” conforme mencionado na imagem abaixo. Então você precisa repetir esta etapa para o próximo botão. Ao terminar essas etapas, você terá dois botões personalizados no lugar dos botões “M1” e “M2”. Como você pode ver na segunda imagem abaixo. Portanto, configuramos o aplicativo Android de acordo com nossa necessidade.
Programa para a comunicação Bluetooth no Pico Board
O código completo abaixo, tambem disponivel para download no final do Artigo, crie um projeto com nome bluetooth_pico.py no Thonny IDE, e rode.
bluetooth_pico.py
from machine import Pin,UART uart = UART(0,9600) LedGPIO = 16 led = Pin(LedGPIO, Pin.OUT) while True: if uart.any(): command = uart.readline() # print(command) # descomente esta linha para ver os dados recebidos if command==b'\xd0': led.high() print("ON") elif command==b'\xd5': led.low() print("OFF")
Dentro do arquivo bluetooth_pico.py importamos as classes “Pin” e “UART” da biblioteca “máquina”. Então estamos criando um objeto usando o “UART(0, 9600)” onde 0 representa o canal UART. Temos 2 canais UART na placa Pico. O GPIO0 e o GPIO1 podem ser usados como um canal 0 UART na placa pico. Em seguida, mencionamos a taxa de transmissão para a comunicação UART que é 9600. Atribuímos esse objeto UART a uma variável “uart”.
from machine import Pin,UART uart = UART(0,9600)
Então, declaramos o GPIO16 no “LedGPIO” como um pino de saída do LED. Usamos a função “Pin(LedGPIO, Pin.OUT)” para criar um objeto mencionando o pino “LedGPIO” como um pino de SAÍDA. Em seguida, atribuímos o objeto Pin() à variável “led”.
LedGPIO = 16 led = Pin(LedGPIO, Pin.OUT)
No loop while() abaixo, estamos usando a função uart.any() para verificar se há dados por meio do canal UART. Se esta função any() retornar true, então estamos lendo os dados usando a função uart.readline(). Então, pela primeira vez, precisamos imprimir os dados respondidos para ver o valor. No meu caso, quando eu estava pressionando o botão “ON” do aplicativo Android, estava obtendo o valor b’\xd0′ e para “OFF” estava obtendo o valor b’\xd5′. Em seguida, configurei “led.high()” para ligar o led e “led.low()” para desligar o led.
while True: if uart.any(): command = uart.readline() # print(command) # descomente esta linha para ver os dados recebidos if command==b'\xd0': led.high() print("ON") elif command==b'\xd5': led.low() print("OFF")
Upload do código e controle do Led com o aplicativo Android
Agora, no IDE Thonny, abra o arquivo “bluetooth_pico.py”. Para começar, salve o arquivo como “main.py” no quadro do Pico pressionando as teclas “ctrl+shift+s” em seu teclado. Antes de salvar os arquivos, certifique-se de que sua placa Pico está conectada ao seu laptop. Ao salvar o código, uma janela pop-up aparecerá, conforme mostrado na imagem abaixo. Você deve primeiro selecionar o Raspberry Pi Pico, então nomear o arquivo “main.py” e salvá-lo. Este procedimento permite que você execute o programa quando o Pico está ligado.
Agora, precisamos conectar o aplicativo ao nosso módulo Bluetooth. Certifique-se de ter carregado o código na placa pico. O código pode ser encontrado na seção abaixo. Ao ligar a placa pico, você pode ver que o led no módulo Bluetooth está piscando lentamente. Agora você pode pressionar o “botão de conexão” que pode ser encontrado no canto superior direito do aplicativo. Uma nova janela aparecerá com o nome “Dispositivos” conforme mencionado na imagem abaixo. Você precisa selecionar seu respectivo dispositivo Bluetooth. No meu caso foi “Ble”, mas no seu caso poderia ser “HC-06”. Ao selecionar o dispositivo, você se conectará ao módulo Bluetooth.
Quando você estiver conectado ao Bluetooth e pressionar os botões “Led ON” ou “Led OFF” respectivamente, você poderá ver os dados como “1” ou “0” respectivamente no terminal do aplicativo Android. Você pode consultar a seguinte imagem abaixo.
Você também pode ver que o LED é ligado e desligado enquanto você pressiona os botões “led ON” e “Led OFF” respectivamente. Você pode assistir ao vídeo a seguir para obter mais informações.
Código
from machine import Pin,UART uart = UART(0,9600) LedGPIO = 16 led = Pin(LedGPIO, Pin.OUT) while True: if uart.any(): command = uart.readline() # print(command) # descomente esta linha para ver os dados recebidos if command==b'\xd0': led.high() print("ON") elif command==b'\xd5': led.low() print("OFF")