- O que é o módulo HM10 BLE 4.0?
- Diferença entre HM10 e outro Módulo Bluetooth
- Componentes necessários
- Diagrama de circuito
- Aplicativo para Android Arduino Bluetooth Controller (Módulo HM-10)
- Programação do Arduino UNO para controlar o LED usando o módulo HM-10 Bluetooth
Bluetooth é uma das tecnologias sem fio mais populares e fáceis de usar. Ao longo dos poucos anos, houve muitas atualizações do padrão Bluetooth para acompanhar a tecnologia em andamento com a tecnologia futura e para satisfazer as necessidades dos usuários. A partir da versão 1.0 do Bluetooth para a versão 5.0 do Bluetooth, muitas coisas mudaram, incluindo taxas de dados mais altas, a capacidade de ser usado para IoT com baixo consumo de corrente, segurança aprimorada, etc. Para aprender a comunicação Bluetooth, há muitos módulos disponíveis que podem ser interface com microcontroladores. Esse módulo Bluetooth é o HM10, que é baseado no Bluetooth 4.0.
O que é o módulo HM10 BLE 4.0?
O HM10 é um módulo BLE serial (Bluetooth-Low-Energy) que se destina a ser usado para aplicações de baixo consumo de energia e pode durar muito mesmo com uma bateria do tamanho de uma moeda. O HM10 é um módulo Bluetooth 4.0 baseado no Texas Instruments CC2540 ou CC2541 BLE System SoC (System on Chip). O firmware e o design do módulo são feitos e gerenciados pela Jinan Huamao Technology. O módulo vem com uma camada serial / UART que torna o dispositivo capaz de fazer interface com diferentes microcontroladores. O HM10 é ideal para criar conexões simples e usá-lo com ou como um iBeacon.
O HM10 se tornou um módulo Bluetooth 4.0 BLE muito popular. O HM10 é um módulo baseado em Bluetooth 4.0 apenas, portanto, não se conecta a módulos Bluetooth 2 / 2.1, como HC-05, HC-06 e outros módulos Bluetooth. O HM10 é controlado por meio de comandos AT enviados pela conexão serial UART. O HM-10 é um módulo Bluetooth Low Energy (BLE), para saber mais sobre o BLE siga o link. Aprenda também como um módulo nRF24L01 pode ser usado como módulo BLE com Arduino.
Diferença entre HM10 e outro Módulo Bluetooth
A principal diferença do HM10 é a versão Bluetooth. O HM10 é um módulo Bluetooth 4.0, portanto, ele vem com todos os recursos do Bluetooth versão 4.0, como velocidade, rendimento e alcance. O HM10 oferece uma taxa de dados de até 24 Mbps com baixo consumo / baixo consumo de energia. Junto com isso, o HM10 oferece um alcance de distância de 100 metros em espaço aberto. Em comparação com outros módulos Bluetooth, como o HC-05, que é um módulo baseado em Bluetooth 2.0, o HM10 certamente tem um desempenho melhor do que o HC-05. O HC-05 oferece apenas 3 Mbps em comparação com o HM10, que é bem menos.
Os módulos Bluetooth HC-05 e HC-06 ainda são muito populares entre fabricantes e entusiastas, pois são baratos e fáceis de conectar. Também fizemos muitos projetos usando HC-05/06 e os conectamos com muitos outros microcontroladores:
- Interface do Módulo Bluetooth com ESP8266: Controle de LED
- Interface de Bluetooth HC-05 com STM32F103C8 Blue Pill: LED de controle
- Interface do módulo HC-05 Bluetooth com microcontrolador AVR
- Interface do Módulo Bluetooth HC-06 com Microcontrolador PIC
- LEDs controlados por voz usando Arduino e Bluetooth
- Luzes controladas por voz usando Raspberry Pi
Todos os projetos relacionados ao Bluetooth podem ser encontrados neste link.
Hoje faremos a interface do módulo HM-10 BLE com o Arduino Uno para controlar um LED sem fio usando o protocolo Bluetooth. Os comandos On / Off serão enviados pelo Smartphone.
Componentes necessários
Hardware:
- Arduino UNO
- Módulo HM10 Bluetooth
- Resistores (1 kΩ, 470 Ω)
- Jumper Wires
Programas:
- IDE Arduino
- Aplicativo para Android do controlador Arduino Bluetooth (módulo HM-10)
- Smartphone Android
Diagrama de circuito
O diagrama de circuito para conectar o Arduino e o módulo Bluetooth HM-10 é muito simples, conforme mostrado abaixo.
Antes de iniciar o projeto, certifique-se de que seu módulo HM-10 é um módulo HM-10 genuíno. Existem vários módulos HM-10 clonados em chinês. Para identificar a diferença entre o módulo HM-10 Genuíno e Clonado, basta observar a presença do Oscilador de Cristal de 32KHz na Placa HM-10. Se o Crystal Oscillator estiver presente, ele é um módulo HM-10 genuíno e você não precisa alterar o firmware. Mas se você não puder ver o Oscilador de Cristal no lugar dele, então é um módulo HM10 clonado e você precisa alterar o firmware do módulo HM-10 clonado. Sem alterar o firmware do HM-10, você não pode acessar o módulo HM-10 com comandos AT nem emparelhá-lo com smartphones. Aqui, também estamos usando o módulo clone, então atualizamos seu firmware antes de conectá-lo ao Ardruino. Para alterar o Firmware do módulo Clonado HM-10, basta seguir nosso tutorial sobre Como alterar ou atualizar o Firmware do módulo Clonar HM-10.
Aplicativo para Android Arduino Bluetooth Controller (Módulo HM-10)
O Arduino Bluetooth Controller (Módulo HM-10) é um aplicativo Android que está disponível gratuitamente na Google Play Store. Este aplicativo tem uma interface fácil e simples para o Módulo HM-10 BLE. Durante o teste, ele foi capaz de encontrar o HM-10 rapidamente e se conectar instantaneamente ao HM-10. O aplicativo tem alguns recursos interessantes, como você pode criar um botão e personalizá-lo com nome e funções personalizadas. Aqui, veremos como criar dois botões neste aplicativo controlador de Bluetooth para ligar e desligar o LED conectado ao Arduino.
Como configurar o aplicativo Arduino Bluetooth Controller (módulo HM-10) para Android:
- Baixe o aplicativo na Google Play Store.
- A página inicial do aplicativo será semelhante a abaixo, onde você pode encontrar recursos como conectar dispositivo, ícone de pesquisa, ícone de exclusão, status do dispositivo, enviar texto, adicionar modelo etc. Comece pesquisando o dispositivo clicando no ícone de pesquisa ou clicando em a três pontos no canto superior direito e escolha conectar dispositivo .
- Todos os dispositivos disponíveis serão mostrados na tela. Escolha o módulo HM-10 correto.
- Agora o HM-10 será conectado com sucesso e você poderá ver o status do HM-10 na parte superior da tela.
- Agora você pode enviar diretamente um texto ou String escrevendo na seção de texto e clicar na seta para enviar ou pode criar um modelo personalizado.
- Para criar um modelo personalizado para economizar tempo. Clique no ícone “ + ” no canto superior direito e preencha os detalhes. O “ Nome ” é o nome do botão, o campo “ Texto ” é para textos ou string que serão enviados ao HM-10 e “ Descrição ” é apenas a descrição do botão de como o botão funcionará.
- Em primeiro lugar, crie um botão para ligar o LED e atribuir a cor verde. O botão enviará a letra “N” ao HM-10 que acenderá o LED conectado ao Arduino. Da mesma forma, crie um botão para LED DESLIGADO e dê a ele uma cor vermelha.. O botão enviará a letra “F” ao HM-10 que desligará o LED conectado ao Arduino.
- Agora você pode ver os dois botões criados logo abaixo do campo de texto. Agora, se você deseja controlar o LED, basta clicar nos botões.
Isso conclui a configuração do aplicativo Android para controlar o módulo HM-10. Agora começaremos com a programação do Arduino Uno para obter os personagens do aplicativo Android.
Programação do Arduino UNO para controlar o LED usando o módulo HM-10 Bluetooth
Como sempre, o programa completo com vídeo de demonstração pode ser encontrado no final deste tutorial. Programar o Arduino UNO para este projeto não requer muito esforço nem nenhuma biblioteca. Você pode usar a biblioteca serial de hardware e a biblioteca serial de software. Se você estiver usando o serial do software, apenas inclua a biblioteca serial do software, caso contrário, continue com o serial do hardware. Neste projeto estamos usando SoftwareSerial. Portanto, comece incluindo a Biblioteca serial do software. Os pinos Rx e Tx são conectados nos 2 e 3 pinos do Arduino.
#incluir
As duas variáveis são usadas para armazenar os dados recebidos do HM10 e do aplicativo Android.
char appData; String inData = "";
Basta iniciar o serial de hardware e software na taxa de transmissão de 9600 e imprimir algumas instruções de depuração. O pino do LED é definido como saída e inicialmente está desligado.
Serial.begin (9600); Serial.println ("série HM10 iniciada em 9600"); HM10.begin (9600); // define o serial HM10 na taxa de bauds de 9600 pinMode (13, OUTPUT); // LED integrado digitalWrite (13, LOW); // desliga o LED
Comece a escutar a porta HM10 e leia a string até que o HM10 esteja disponível e envie os dados. Salve os dados em string.
HM10.listen (); // escuta a porta HM10 enquanto (HM10.available ()> 0) {// se o HM10 enviar algo, leia appData = HM10.read (); inData = String (appData); // salve os dados no formato de string Serial.write (appData); }
Para depurar o HM10 com comandos AT, basta escrever a linha de código abaixo que enviará a string para o HM10.
if (Serial.available ()) {// Lê a entrada do usuário, se disponível. atraso (10); HM10.write (Serial.read ()); }
Se a string recebida for “F”, então imprima uma mensagem no monitor serial e desligue o led, senão se a string recebida for “N”, então imprima uma mensagem no monitor serial e pisque o led com atraso de 500ms.
if (inData == "F") { Serial.println ("LED OFF"); digitalWrite (13, LOW); // desliga o LED delay (500); } if (inData == "N") { Serial.println ("LED ON"); digitalWrite (13, ALTO); // desliga o LED delay (500); digitalWrite (13, LOW); // desliga o LED delay (500); }
Isso conclui o tutorial completo sobre como controlar LED usando o módulo Arduino e BLE HM10 Blutooth 4.0. Lembre-se novamente de que , se você tiver um módulo HM10 genuíno, não precisa atualizar seu firmware, ele pode ser usado imediatamente. Mas se você estiver usando um módulo HM-10 clonado, atualize o firmware no módulo HM10 BLE clone. Se você tiver alguma dúvida ou sugestão, comente abaixo ou escreva para o nosso fórum.