- Materiais requisitados
- Módulo Bluetooth (HC-05)
- Portas STM32 USART
- Diagrama de circuito e conexões
- Programação STM32F103C8
- Etapas para conectar o módulo Bluetooth ao telefone Android
No mundo de hoje, o Bluetooth tornou-se muito popular e quase todos os dispositivos, como telefones celulares, laptops e sistemas de infoentretenimento em carros, usam o Bluetooth para comunicação sem fio. O Bluetooth não é usado apenas para transferir dados, mas também para controlar outros dispositivos Bluetooth sem fio, como usando um fone de ouvido Bluetooth, você pode ouvir a música sem fio do seu celular ou pode usar o sistema de áudio do carro para tocar as músicas do seu celular.
Bluetooth é uma tecnologia sem fio que funciona na frequência de 2,4 GHz. O sinal Bluetooth normal está em um raio de 10 metros. Bluetooth é a tecnologia sem fio mais comumente usada em projetos embarcados, desde que o alcance da comunicação seja limitado. O Bluetooth acrescentou a vantagem de seu baixo consumo de energia e operação de baixo custo. Geralmente é usado para fazer a interface de microcontroladores com telefones inteligentes usando aplicativos Bluetooth.
Vimos a interface do módulo Bluetooth com outros microcontroladores como Arduino, 8051, PIC etc. Agora, neste tutorial, faremos a interface de um módulo Bluetooth HC-05 com STM32F103C8 e LIGAR / DESLIGAR um LED usando celular Android.
Materiais requisitados
- STM32F103C8
- Módulo Bluetooth (HC-05)
- CONDUZIU
- Android Mobile
- Tábua de pão
- Fios de conexão
Programas:
- Terminal Bluetooth (aplicativo Android)
Módulo Bluetooth (HC-05)
É o módulo Bluetooth mais usado em projetos embarcados. É um módulo Bluetooth serial que usa comunicação serial com alcance inferior a 100m e opera a 5V (mínimo de 3,3V). Ele pode ser usado para conectar dois microcontroladores sem fio e também com telefones celulares e laptops. Como há muitos aplicativos Android disponíveis, é muito útil para fazer projetos controlados por Bluetooth sem fio.
Ele usa comunicação USART e pode ser conectado a microcontroladores com protocolo de comunicação USART.
Possui antena integrada. Possui configurações Mestre / Escravo que podem ser alteradas no modo de comando AT que é útil quando apenas um dispositivo deve enviar os dados (mestre para escravo) como por exemplo de PC (MASTER) para escravo (qualquer MCU). Um mestre pode se conectar a outros dispositivos e o escravo não se conecta a outra conexão que não seja o mestre.
Modos de operação
Possui dois modos AT Command Mode e Data Mode.
Quando o Bluetooth é ligado, ele entra no modo de dados padrão. Este modo pode ser usado para transferência de dados. Para entrar no modo de comando AT durante a inicialização, precisamos pressionar o botão presente no módulo para alterar as configurações padrão do módulo, como configurações mestre / escravo.
Pinos do Módulo Bluetooth
- Pino EN (ENABLE) - Este pino é usado para definir o Modo de Dados ou Modo de Comando AT. Por padrão, está no MODO DE DADOS. Quando o botão é pressionado durante a inicialização, ele entra no modo de comando AT.
- Pino de + 5V - É usado para fonte de alimentação para o módulo
- Pino GND - usado para aterramento para o módulo
- Pino TX - Este pino está conectado ao pino RX do MCU
- Pino RX - Este pino conectado ao pino TX do MCU
- ESTADO - Este pino indica o status do módulo, veja abaixo sobre as indicações
Indicação LED
- Possui um indicador LED (VERMELHO) que fornece o estado do módulo Bluetooth.
- Quando o módulo Bluetooth NÃO ESTÁ CONECTADO a nenhum dispositivo, o sinal fica baixo e o led vermelho pisca continuamente, indicando que o módulo NÃO ESTÁ EMPARELHADO.
- Quando o módulo Bluetooth está CONECTADO a qualquer dispositivo, o sinal fica ALTO e o led vermelho pisca com algum atraso, o que indica que o módulo está emparelhado.
Confira nossos outros projetos para saber mais sobre o módulo Bluetooth HC-05 com outros microcontroladores:
- Carro de brinquedo controlado por Bluetooth usando Arduino
- Sistema de automação residencial controlado por Bluetooth usando 8051
- Luzes controladas por voz usando Raspberry Pi
- Rádio FM controlado por telefone inteligente usando Arduino e processamento
- Carro robô controlado por telefone celular usando G-Sensor e Arduino
- Interface do Módulo Bluetooth HC-06 com Microcontrolador PIC
Portas STM32 USART
STM32F103C8 (BLUE PILL) As portas de comunicação serial USART são mostradas na imagem pin out abaixo. Estes são de cor azul com (PA9-TX1, PA10-RX1, PA2-TX2, PA3-RX2, PB10-TX3, PB11-RX3). Possui três canais de comunicação.
Diagrama de circuito e conexões
As conexões do circuito para interface do Módulo Bluetooth com STM32 são feitas como abaixo
Conexão entre STM32F103C8 e módulo Bluetooth (HC-05)
- O pino TX (PA9) do STM32F103C8 é conectado ao pino RX do módulo Bluetooth.
- O pino RX (PA10) do STM32F103C8 é conectado ao pino TX do módulo Bluetooth.
- O pino VCC (+ 5V) do módulo Bluetooth está conectado ao pino 5V do STM32F103C8.
- O pino GND do módulo Bluetooth está conectado ao pino GND do STM32F103C8.
Outras Conexões
- O pino (PA0) do STM32 (Pílula Azul) é conectado ao pino positivo do LED por meio de um resistor em série. O LED usado aqui é de cores misturadas.
- O led outro pino está conectado ao GND do STM32.
Programação STM32F103C8
A interface do Bluetooth com o STM32 é igual ao do arduino e a programação do STM32 é o mesmo do Arduino IDE. Veja este tutorial para programar STM32 com USB usando Arduino IDE.
Como já foi dito, neste projeto, faremos a interface de um módulo Bluetooth (HC-05) com STM32F103C8 e usaremos um aplicativo Android Smart Phone com Terminal Bluetooth para ligar e desligar o LED.
Nota: O pino RX & TX deve ser removido durante o upload do código para STM32F103C8.
O código completo para este projeto é fornecido no final deste tutorial com um vídeo de demonstração.
A codificação para este projeto é tão simples. Os mesmos códigos do Arduino podem ser usados, mas apenas o pino deve ser alterado. Como temos três conjuntos de pinos USART no STM32F103C8, devemos especificar o pino correto que usamos para conectar o módulo Bluetooth.
1. Primeiro, precisamos nomear os pinos com seus respectivos números de pinos com tipo de dados int da seguinte forma
const int pinout = PA0;
2. Em seguida, precisamos ter uma variável para armazenar dados seriais do celular Android. Os dados podem ser um caractere ou inteiro da seguinte forma
char inputdata = 0;
3. Em seguida, em void setup (), devemos iniciar a comunicação serial entre STM32 Blue Pill e o módulo Bluetooth, fornecendo a taxa de transmissão de 9600
Serial1.begin (9600);
Usamos Serial1 aqui porque conectamos HC-05 a TX1 e RX1 de STM32.
Também podemos usar Serial2 ou Serial3, mas o pino deve ser conectado de acordo.
4. Uma mensagem de introdução é enviada como dados seriais para o serial1, ou seja, para o módulo Bluetooth HC05. Este módulo ainda envia dados para o aplicativo Terminal Bluetooth do celular Android. Então, usamos as declarações abaixo
Serial1.print ("CIRCUITO DIGEST \ n"); Serial1.print ("BLUETOOTH COM STM32 \ n");
5. Em seguida, precisamos definir o pinmode (PA0) como saída, pois conectamos o led a este pino.
pinMode (pinagem, OUTPUT);
6. Em seguida, no loop vazio (), executamos os dados a seguir para ler os dados seriais e ligar / desligar o LED de acordo
void loop () { If (Serial1.available ()> 0) { inputdata = Serial1.read (); if (dados de entrada == '1') { digitalWrite (pinagem, ALTO); Serial1.print ("LED LIGADO \ n"); } else if (inputdata == '0') { digitalWrite (pinagem, LOW); Serial1.print ("LED apagado \ n"); } } }
Aqui, usamos a instrução if porque esse código só executa quando a porta Serial1 tem dados recebidos do módulo Bluetooth, por isso essa instrução é usada Serial1.available ()> 0 . Caso contrário, se não entrar, ele espera até iniciar a comunicação serial. Agora ele armazena os dados recebidos em uma variável inputdata = Serial1.read (). Em seguida, ele verifica o valor enviado do aplicativo do terminal Bluetooth. Portanto, se o valor for 1, ele imprime o LED LIGADO e faz o pino (PA0) ficar ALTO pela instrução digitalWrite (pinagem, HIGH) e se o valor for 0, ele imprime o LED DESLIGADO e faz o pino (PA0) ficar BAIXO.
Etapas para conectar o módulo Bluetooth ao telefone Android
Etapa 1: - Abra o Bluetooth do celular após carregar o código no STM32 do Arduino IDE e fornecer energia ao circuito. LEMBRE-SE de remover o pino RX e TX durante o UPLOAD do código
Etapa 2: - Nos dispositivos disponíveis, selecione HC-05 e digite a senha 1234
Etapa 3: - Após o emparelhamento, abra o aplicativo Terminal Bluetooth e selecione conectar um dispositivo e selecione HC-05 conforme mostrado abaixo
Passo 4: - Após conectar com o Módulo HC-05 Bluetooth, forneça valores no terminal 1 ou 0 para LIGAR e DESLIGAR o LED. Você também receberá uma mensagem informando que o LED está ligado ou desligado.