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!