Introdução ao Blynk App

Crie projetos em Arduino (e outros!) controlados pelo Smartphone em poucos minutos.

 

 

O que é o Blynk?

 

Ao considerarmos o universo maker, é quase impossível não citarmos os projetos baseados em Arduino. O surgimento de novos dispositivos que também podem ser programados em Arduino, bem como a utilização de shields (placas que agregam funções aos dispositivos Arduino) ampliaram as possibilidades de projetos que podem ser desenvolvidos em Arduino. Paralelamente, o surgimento de serviços conectados à internet e o conceito de IoT (Internet Of Things) aumentaram a demanda por dispositivos que possuam conectividade e, assim, proporcionem o envio de dados à internet e o controle remoto destes dispositivos.

 

É neste contexto que gostaríamos de apresentar o Blynk. Este serviço é baseado em um aplicativo personalizável que permite controlar remotamente um hardware programável, bem como reportar dados do hardware ao aplicativo. Desta forma, é possível construirmos interfaces gráficas de controle de forma rápida e intuitiva e que interage com mais de 400 placas de desenvolvimento, em sua maioria baseadas em Arduino (principalmente, mas não só! Veja aqui os hardwares compatíveis). A Figura 1 a seguir exibe um exemplo de aplicação criada nessa plataforma:

 

Exemplo de Projeto no Blynk App
Figura 1 - Exemplo de Projeto no Blynk App

 

 

Como funciona?

 

Basicamente, o Blynk é composto de três partes: o Blynk App, o Blynk Server e a Blynk Library, conforme esquema da Figura 2 a seguir:

 

 Organização do Blynk
Figura 2 - Organização do Blynk: Blynk App, Server e Libraries

 

Blynk app

 

O App Blynk é um aplicativo disponível para Android e iOS que permite ao usuário criar aplicações que interagem com o hardware. Através de um espaço próprio para cada projeto, o usuário pode inserir Widgets que implementam funções de controle (como botões, sliders e chaves), notificação e leitura de dados do hardware (exibindo em displays, gráficos e mapas).

 

Blynk Server

 

Toda comunicação entre o aplicativo e o hardware do usuário se dá através da cloud Blynk. O servidor é responsável por transmitir os dados ao hardware, armazenar estados do aplicativo e do hardware e também armazenar dados de sensores lidos pelo hardware mesmo se o aplicativo estiver fechado. Vale ressaltar que os dados armazenados no server Blynk podem ser acessados externamente através de uma API HTTP, o que abre a possibilidade de utilizar o Blynk para armazenar dados gerados periodicamente como dados de sensores de temperatura, por exemplo.

 

Blynk Libraries

 

Finalmente, do lado do hardware temos as bibliotecas Blynk para diversas plataformas de desenvolvimento. Essa biblioteca é responsável por gerir toda a conexão do hardware com o servidor Blynk e gerir as requisições de entrada e saída de dados e comandos. A forma mais fácil e rápida é utilizá-la como bibliotecas Arduino, no entanto, é possível obter versões da biblioteca para Linux (e Raspberry Pi!), Python, Lua, entre outras.

 

 

E isso tudo é grátis?

 

De forma geral, sim! O Blynk App é disponibilizado gratuitamente para ser baixado. O acesso ao Servidor Blynk é ilimitado (e ainda permite ser implementado localmente através do código aberto disponibilizado, leia mais aqui) e as bibliotecas Blynk também são gratuitas. No entanto, cada Widget “custa” determinada quantia de Energy - uma espécie de moeda virtual - e temos uma quantidade inicial de Energy para ser utilizada em nossos projetos. Mais Energy pode ser comprada para desenvolver projetos mais complexos (ou muitos projetos), mas não se preocupe: a quantidade de Energy que temos disponível é suficiente para experimentarmos o aplicativo e para as aplicações mais usuais.

 

A Figura 3 exibe o “preço” de alguns Widgets, lembrando que:

  • Nós temos inicialmente 2000 Energy para usarmos em nossos projetos;
  • Cada Energy utilizado ao acrescentar um Widget é retornado à nossa carteira quando excluímos aquele Widget;
  • Somente algumas operações específicas são irreversíveis, ou seja, não retornam os Energy. Mas não se preocupe, você será avisado pelo App quando for este o caso.

 

Exemplo do Preço em Energy de cada Widget
Figura 3 - Exemplo do Preço em Energy de cada Widget

 

OK, Let’s Hack!

 

Após esta breve introdução, vamos desenvolver um exemplo de aplicação básica com o Blynk. O objetivo é mostrar quão fácil é fazer um projeto utilizando o Blynk. Para tal, precisaremos de:

  • Uma placa de desenvolvimento compatível com o Blynk. Utilizaremos como base o ESP8266 por se tratar de um dispositivo já com conectividade Wi-Fi;
  • A IDE Arduino já com suporte à placa escolhida. No caso do ESP8266, existe este ótimo artigo já publicado no Embarcados;
  • Um smartphone com o aplicativo Blynk instalado e, claro, com acesso à internet.

 

 

Criando o primeiro projeto no Blynk App

 

Após logar-se no aplicativo Blynk, criaremos um novo projeto. Selecione a opção New Project, tal como na Figura 4:

 

Criando um Novo Projeto no Blynk App
Figura 4 - Criando um Novo Projeto no Blynk App

 

A seguir, em Choose Hardware, escolha a opção ESP8266, tal como utilizaremos em nosso exemplo.

 

Seleção do Hardware do Projeto
Figura 5 - Seleção do Hardware do Projeto no Blynk

 

Após clicarmos em Create, teremos acesso ao Project Canvas, ou seja, o espaço onde criaremos nosso aplicativo customizado. Paralelamente, um e-mail com um código - o auth token - será enviado para o e-mail cadastrado no aplicativo: guarde-o, utilizaremos ele em breve.

 

Uma vez no espaço do projeto, ao clicar em qualquer ponto da tela, uma lista com os Widgets disponíveis será aberta. Widgets são itens que podem ser inseridos em nosso espaço e representam funções de controle, de leitura e interface com nosso hardware. Em nosso exemplo, adicionaremos um Widget de Botão. Este Widget é capaz de controlar diretamente o hardware, enviando um comando de acionar uma GPIO que pode estar ligado em um LED, por exemplo. Para adicioná-lo, pressione o item Button e observe que um ícone será inserido no Project Canvas, que inicialmente estava vazio, tal como na Figura 5.

 

Ao clicarmos em cima deste Widget, as opções de configuração serão exibidas tal como na Figura 6:

 

Opções Avançadas do Widget Button
Figura 6 - Opções Avançadas do Widget Button

 

Na tela da Figura 6, é possível definir um nome para este botão. Também é possível definir em MODE: se o botão é do tipo PUSH, que permanece ativo enquanto o usuário mantê-lo pressionado, ou se é do tipo SWITCH, que guarda o último estado tal como um interruptor. Finalmente, ao clicar em PIN é possível definir o pino a que este botão será conectado. A Figura 7 exibe algumas das opções disponíveis:

 

Opções para Seleção de Pino do Widget Button
Figura 7 - Opções para Seleção de Pino do Widget Button

 

Um dos recursos mais interessantes do Blynk é que ele é capaz de controlar diretamente os pinos de GPIO disponíveis no hardware escolhido sem a necessidade de qualquer linha de código adicional para isso.

 

Ao selecionar o hardware, o Blynk carrega o mapeamento dos pinos disponíveis, permitindo o controle destes diretamente do aplicativo. Desta forma, os pinos descritos como Digital e Analog, referem-se diretamente aos pinos disponíveis do hardware de nossa placa de desenvolvimento.

 

Por vezes, no entanto, precisaremos implementar outras funções que não podem ser diretamente mapeadas em pinos do hardware e, para tal, temos também o conceito de Virtual Pins. Os pinos do tipo Virtual podem, por exemplo, ser usados como uma condição para determinada ação no software.

 

Iremos focar no controle direto de um pino do tipo Digital, ligando-o fisicamente a um LED para demonstrar a atuação. Em nosso exemplo selecionaremos o pino Digital gp16, onde existe um LED conectado na placa nodeMCU (baseada no ESP8266) que utilizaremos em nosso exemplo. Caso possua outra placa, ajuste para a GPIO onde será conectado o LED e o resistor.

 

Finalmente, após configurado o botão e de volta ao espaço do projeto, iremos deixar o modo de edição e “rodar” o projeto. Para tal, clique no ícone de play no canto superior direito da tela, conforme imagem a seguir:

 

Espaço do Projeto com o Widget do Botão Inserido
Figura 8 - Espaço do Projeto com o Widget do Botão Inserido

 

Após o comando de execução, o aplicativo tenta se conectar ao hardware através do servidor Blynk. No entanto, ainda não temos o nosso hardware configurado para usá-lo. Vamos instalar a biblioteca Blynk!

 

 

Instalando a biblioteca Blynk para a IDE Arduino

 

Primeiramente, iremos instalar a biblioteca do Blynk para a IDE Arduino. Baixe o arquivo Blynk_Release_vXX.zip. A seguir, descompacte o conteúdo arquivo na pasta sketchbook da Arduino IDE. A localização desta pasta pode ser obtida diretamente da IDE Arduino. Para tal, abra a IDE Arduino e, em File → Preferences, olhe o campo Sketchbook location, conforme indica a Figura 9:

 

Localização da pasta Sketchbook na IDE Arduino
Figura 9 - Localização da pasta Sketchbook na IDE Arduino

 

O conteúdo do arquivo descompactado deve ficar então como a seguir:

seu_diretorio_/libraries/Blynk
seu_diretorio/libraries/BlynkESP8266_Lib
...
seu_diretorio/tools/BlynkUpdater
seu_diretorio/tools/BlynkUsbScript

 

Após reiniciar a IDE Arduino, novos exemplos de código referentes à biblioteca Blynk podem ser encontrados em File → Examples → Blynk. Para o nosso hardware de exemplo, o ESP8266, selecionaremos o exemplo em File → Examples → Blynk → Boards_WiFi → ESP8266_Standalone, conforme mostra a Figura 10 a seguir:

 

Exemplos de Códigos do Blynk após a Instalação da Biblioteca
Figura 10 - Exemplos de Códigos do Blynk após a Instalação da Biblioteca

Vamos dar uma breve olhada neste código de exemplo:

 

 

Chave de Autorização de Controle do Hardware

 

 

A linha acima define o token de autorização para controle do Hardware. Este token é um número único que foi gerado durante a criação do projeto no aplicativo e deve ser preenchido conforme o código enviado por e-mail.


Credenciais de acesso à rede Wi-Fi

 

 

As linhas acimas devem ser adequadas de acordo com o nome e a senha da rede Wi-Fi em que o ESP8266 irá se conectar.

 

Uma vez ajustadas as linhas de código, carregue o software na placa de desenvolvimento através do botão Upload da IDE Arduino. Nossa aplicação está quase pronta para ser testada!

 

Testando o projeto de exemplo

 

Uma vez carregado o software na placa de desenvolvimento pela IDE Arduino, o hardware tentará conectar-se à internet e acessar o servidor Blynk. É possível acompanhar este processo através do monitoramento da porta serial. Abrindo o Serial Monitor da IDE Arduino, devemos ver algo parecido com isso, por exemplo:

 

 

Finalmente, podemos testar o acionamento do LED através da GPIO que é controlada diretamente pelo botão que inserimos em nosso projeto. A Figura a seguir mostra o funcionamento de nosso exemplo de testes na nodeMCU.

 

Teste de funcionamento
Figura 11 - Teste de funcionamento

 

Mas é só isso?

 

Claro que não! O objetivo deste artigo é prover uma visão geral sobre o Blynk e como esta plataforma pode tornar ainda mais fácil o desenvolvimento de um projeto e até mesmo de um protótipo. As possibilidades oferecidas são inúmeras e a documentação é muito bem elaborada, veja aqui. É oferecida também uma ferramenta online chamada Blynk Sketch Builder que permite que códigos Blynk sejam elaborados para diversas plataformas em questão de segundos.

 

Com essa plataforma é possível controlarmos eletrodomésticos pela internet (como uma tomada ou lâmpada), monitorar a temperatura de um aquário, controlar um robô e até mesmo implementar comunicação entre dois hardwares pela internet, tudo isso em questão de minutos!

 

Este artigo é uma introdução a uma ferramenta que eu, Tiago, e o Ronaldo gostamos muito de ter conhecido. Apresentaremos uma introdução prática no ArduinoDay, dia 12 de maio, no LHC em Campinas-SP. Confiram o evento aqui e apareçam com suas plaquinhas (better with ESP8266).


Let’s Hack the World!

 

 

Saiba mais

 

Tinkercad: ferramenta online e gratuita de simulação de circuitos elétricos

Preparando o Eclipse para microcontroladores AVR

Como programar o Arduino com o Visual Studio Code e PlatformIO IDE

 

 

Referências

 

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Tiago Medicci Serrano
Apaixonado por tecnologia! Plaquinhas, embarcados, clouds, IoT, comunidades e ensino: tudo isso faz parte do meu dia-a-dia, do trabalho às horas de lazer. Atualmente desenvolvo soluções inteligentes para o setor elétrico, SmartGrid e IoT na Time Energy, em Campinas.

4
Deixe um comentário

avatar
 
2 Comment threads
2 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Tiago Medicci SerranoVagner RodriguesCarlos Bruni Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Vagner Rodrigues
Membro
Vagner Rodrigues

Muito bom o artigo, Tiago! Parabéns!
Ainda não tive tempo de brincar com o Blynk app, mas seria possível conectar um Arduino com um módulo Bluetooth HC-05 da mesma maneira?

Carlos Bruni
Visitante
Carlos Bruni

Parabéns Tiago,
Sou apaixonado pelo Arduino e seus primos, mais demonstrando sensores diversos em projeto extra classe com Alunos de Eletrotécnica.
Gostei do seu Artigo do Blink e desejo sucesso nos seus estudos e trabalho.
Carlos Bruni /Grupo Proarduino/ IFBA