Use o Blynk para controlar o Arduino por bluetooth
No post de hoje vamos mostrar como controlar as portas do Arduino via bluetooth diretamente pelo smartphone, usando o software Blynk.
Com o Blynk, vamos nos conectar à um módulo bluetooth HC-05, que por sua vez estará se comunicando com o Arduino via Serial.
O que é o Blynk?
O Blynk é uma aplicativo para iOS e Android usado para controlar placas como Arduino e Raspberry Pi através da internet ou bluetooth, como veremos neste tutorial.
É uma excelente ferramenta para você que deseja criar um projeto de IoT (Internet of Things, ou Internet das Coisas) de forma rápida e prática, já que conta com um sistema de widgets com funções pré-definidas, bastando arrastar e soltar no layout de sua preferência.
O Blynk funciona com mais de 400 tipos de placas diferentes, desde o Arduino e Raspberry, como comentamos anteriormente, mas também com ESP8266 NodeMCU, Wemos, ESP32, micro:bit, Particle, Feather, Intel Edison e muitas outras. A lista completa do hardware suportado você encontra neste link.
Para funcionar, o Blynk usa um sistema de “créditos de energia”, que você utiliza conforme adiciona widgets ao seu projeto. Um botão, por exemplo, custa 200 créditos, um timer, mais 200, e esses créditos são debitados do valor total que você recebe quando se cadastra no aplicativo (2000 créditos). Quando você atinge o limite de créditos é possível comprar mais pelo aplicativo. Mas para reproduzir este tutorial não se preocupe, vamos usar apenas 600 créditos, e vão sobrar 1400 para você adicionar novas funções ou criar novos projetos. 🙂
Conexão do módulo Bluetooth HC-05 no Arduino Uno
Na conexão do módulo bluetooth HC-05 no Arduino Uno vamos utilizar os pinos 4 e 5 para comunicação serial entre o microcontrolador e o módulo bluetooth, e os pinos 6 e 7 para conexão de 2 leds que vão representar o estado de cada porta (ligada/desligada).
Note que na conexão dos pinos RX e TX eu usei um conversor de nível lógico, já que os pinos do módulo Bluetooth trabalham com nível de sinal de 3.3V, e o Arduino com 5V. Se ligarmos diretamente, isso pode danificar o módulo. Você também pode usar um divisor de tensão com resistores, como no esquema abaixo, onde utilizei resistores de 480 ohms e 680 ohms no pino RX do módulo Bluetooth:
Se você não tiver esses valores de resistência, pode usar a calculadora deste link e adaptar aos valores de resistores que tiver em mãos.
Criando um projeto no Blynk
Depois de montar o circuito, vamos para a parte do software, baixando o Blynk no seu smartphone. Ele está disponível neste link, ou na loja de aplicativos do seu celular. Como estou usando um celular com Android, basta fazer uma procura por Blynk na Play Store:
Com o aplicativo instalado, a primeira coisa que temos que fazer é criar uma conta no servidor do Blynk, já que dependendo da conexão utilizada no seu projeto você pode controlar o seu dispositivo de qualquer lugar do mundo, e para isso é necessário uma conta protegida por senha. Simplesmente clique em Create New Account na tela inicial do Blynk. O processo é bem simples e exige apenas um email e uma senha.
Após a criação do login, você estará na tela principal do aplicativo. Selecione a opção New Project e na tela seguinte (Create New Project), dê um nome ao seu projeto e escolha o tipo de dispositivo que vai usar. No meu caso, utilizei como nome de projeto Arduino BT, selecionei a placa Arduino Uno e logo depois o tipo de conexão, Bluetooth:
Clique em create e você verá uma tela como essa abaixo, informando que o token de autorização (Auth Token) foi enviado para o seu email. Essa informação é importante pois devemos usar esse token posteriormente dentro do sketch do Arduino.
A tela seguinte já é a tela de layout, onde vamos criar os botões para o nosso aplicativo de teste. Nesta tela, clique no sinal de + na parte superior do aplicativo, e em seguida selecione o widget Button (botão). Repare que o botão “custa” 200 itens de energia, que serão debitados do seu total inicial (2000), mostrados na parte superior da tela. Esse botão será então adicionado ao layout do seu projeto. Faça isso mais 2 vezes e você terá 3 botões na tela. Segure o widget para redimensionar e reposicionar o botão no layout:
Vamos agora colocar o widget do Bluetooth na nossa tela. É com ele que vamos selecionar o HC-05 conectado ao Arduino e permitir que o programa faça a conexão com ele quando estiver rodando. Clique no sinal de + novamente e selecione a opção Bluetooth, será criado então um novo botão no nosso layout, que eu coloquei abaixo dos botões de acionamento:
Clique no botão bluetooth que você acabou de criar para configurar a conexão. Lembre-se de que você já deve ter pareado o seu smartphone com o HC-05 anteriormente para que ele apareça na lista, ok? Selecione Connect Bluetooth Device, depois selecione o dispositivo pareado anteriormente. No meu caso, o HC-05 está nomeado como ARDUINOECIA:
Retorne para a tela anterior e note que o ícone do bluetooth agora está azul, indicando que foi configurado corretamente. Vamos agora configurar os botões para acionar as portas do Arduino.
Selecione o primeiro widget do botão que você criou, na parte superior da tela, e será exibida a tela de propriedades. Nesta tela, você configura o nome do botão, o pino que deseja usar (selecionei o pino digital D6), ao lado dele o valor que será enviado com o botão desligado (no caso, o valor 0), e também o valor que será enviado quando o botão for pressionado (valor 1). Por fim, selecione se você deseja um botão estilo push button ou uma chave. Repita o procedimento para as portas 7 e 13. Minha tela ficou assim:
Com isso finalizamos a configuração do aplicativo Blynk. Vamos agora carregar o sketch no Arduino que vai reconhecer essa configuração.
Programa para controlar Arduino por bluetooth com Blynk
O programa que vamos carregar no Arduino é muito simples, pois todo o controle de recepção e portas é feito pela biblioteca Blynk. Instale a biblioteca à partir da própria IDE do Arduino, no menu Sketch -> Incluir Biblioteca -> Gerenciar bibliotecas:
Com a biblioteca instalada, carregue o programa abaixo no Arduino, substituindo o token na linha 14 pelo token de autorização que você recebeu por email:
//Programa: Arduino e bluetooth HC-05 com Blynk //Autor: Arduino e Cia //Emula a serial nos pinos digitais 4 e 5 #include <SoftwareSerial.h> SoftwareSerial SerialBT(4, 5); // RX, TX //Configuracoes biblioteca Blynk #define BLYNK_PRINT SerialBT #define BLYNK_USE_DIRECT_CONNECT #include <BlynkSimpleSerialBLE.h> //Token de autorizacao char auth[] = "7b0f4572ea13250021348b42bca5e69f"; void setup() { //Inicializa a comunicacao serial com o modulo HC-05 SerialBT.begin(9600); Blynk.begin(SerialBT, auth); } void loop() { //Aguarda conexao e interpreta os comandos enviados Blynk.run(); }
Para testar tudo isso, abra o projeto criado no Blynk e execute-o selecionando o ícone (play) no canto superior direito da tela:
Acione os botões e observe como o seu smartphone controla o Arduino via bluetooth acendendo e apagando os 2 leds que colocamos no circuito, e também o led onboard ligado na porta 13.
Gostou deste post sobre controlar o Arduino por bluetooth? Então confira outros posts usando bluetooth aqui mesmo no Arduino e Cia!
Parabéns pelo artigo muito bom cada vez mais este local se torna referencia em aprendizado de novas tecnologias.
Muito obrigado! Aguardo o seu retorno aqui no Arduino e Cia sempre que possível. 🙂
Abraço!
Adilson
funciona com hc-06 tbm???
Ótimo
Muito obrigado por disponibilizar o post.
Este site é minha referência para projetos
no arduino.
Parabéns pelo trabalho.
Valeu Hugo! 🙂
Abraço.
Adilson
Amigo se eu ligar uma lampada e sair do aplicativo a lampada continuará acesa
Bom dia,
Continua sim, pois o comando já foi enviado para o Arduino.
Abraço!
Adilson
Show de bola funcionou perfeito para arduino uno R3 com HC05, obrigado!
Valey Kleyton! Abraço.
Adilson
Comunicação Bluetooth com Modulo HC-05
Ola amigos boa tarde
É possível realizar uma comunicação entre o PC Bluethoo, modulo HC-05 e um equipamento com comunicação RS232
Estou tentando realizar um TCC com este tema gostaria de saber se pode ser realizado, não tenho muita experiencia.
Desde já agradeço
Oi Antonio,
Para comunicação com o equipamento com serial RS232, muito provavelmente você vai precisar de um hardware auxiliar. Que tipo de equipamento é?
Abraço!
Adilson
amigao boa noite em qual aplicativo voce montou o esquema eletrico ??
pode passar
Boa noite,
No Fritzing: fritzing.org
Abraço!
Adilson
Como faço para conectar com esp32?
Bom dia,
Ainda não tenho nenhum tutorial nesse sentido, mas providenciarei em breve. 😉
Abraço!
Adilson
Muito interessante, gostaria de saber como fazer para o arduino enviar dados pro bluetooth e aparecer no APP
Oi Gustavo,
Obrigado. O processo é praticamente o mesmo, mas vou postar em breve um artigo mostrando como enviar os dados de sensores para o Android usando Blynk.
Abraço!
Adilson
Cara parabéns pelos artigos do arduinoecia.
Aprendo muito aqui!
Dá pra rodar o app em dois aparelhos com a mesma conta, e os dois terem controle sobre o arduino?
Abraço!
Oi Joni!
Muito obrigado.. Interessante a sua pergunta. Preciso testar isso. Não sei se funciona(ria), mas a principio o módulo aceita uma única conexão BT, o que travaria o uso em um único aparelho.
Abraço!
Adilson
opa, entao to usando um zs-040 e um arduino mega , meu cel é um iphone 5s e ele nao encontra para conectar com o HC, oque pode ser??
Olá, posso utilizar o mesmo código no Mega 2560?
Oi Jamerson,
Pode sim. Só fique atento à pinagem das portas digitais, pq no Arduino Mega as seriais tem números diferentes.
Abraço!
Adilson
Funciona com HC-06
É possivel usar este APP e o S4A?
Oi Ricardo,
Realmente desconheço. Preciso fazer um teste.
Abraço!
Adilson
Boa noite. gostaria muito de saber o autor deste post, estou utilizando este artigo de internet aqui para auxílio no meu trabalho e conclusão de curso.
Oi Henrique,
Tudo bem? Obrigado por utilizar o Arduino e Cia como referência para o seu trabalho. 🙂
Autor: Adilson Thomsen
Abraço!
Adilson