Como usar o Bluetooth no Raspberry Pi Pico e controlar um LED usando o celular

Tempo de leitura: 5 minutes

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.

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.

  1. Ativando o adaptador Bluetooth;
  2. Buscando por dispositivos Bluetooth pareados;
  3. Descobrindo dispositivos Bluetooth nas proximidades;
  4. Conectando dois dispositivos;
  5. 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")