Blynk – Utilizando com o Módulo Ethernet ENC28J60 e Arduino

Blynk – Utilizando com o Módulo Ethernet ENC28J60 e Arduino

Nesta postagem você vai aprender a utilizar o Blynk em conjunto com o Módulo Ethernet ENC28J60 e o Arduino. O ENC28J60 é utilizado para atribuir ao Arduino conexão com a internet, dessa forma torna-se possível controlar a placa remotamente a partir de um smartphone, tablet ou página web, por exemplo.

Caso ainda não conheça o Blynk, recomendo que leia a postagem Conhecendo o Blynk, pois nela apresentei a ferramenta, mostrei as opções de configurações, mostrei as funções básicas e ensinei a instalar o pacote de bibliotecas na IDE do Arduino.

Se tratando de um projeto de automação residencial, o Blynk possibilita controlar as lâmpadas a partir de um smartphone ou tablet que esteja conectado à internet pela rede WiFi ou até mesmo no 3G / 4G. Além disso, é possível obter informações dos sensores e demais módulos que estiverem conectados ao Arduino e mostrar estas informações na tela do dispositivo móvel.

Para demonstrar a integração entre o Arduino, o Módulo Ethernet ENC28J60 e o Blynk utilizei um módulo relé para acionamento de uma lâmpada e um sensor de temperatura. Através do Blynk uma lâmpada poderá ser ligada ou desligada e a informação da temperatura ambiente será mostrada na interface do aplicativo.

Será necessário que tenha o Blynk instalado e configurado no seu smartphone ou tablet, e que tenha a biblioteca Blynk instalada no IDE do Arduino. Acesse a postagem Conhecendo o Blynk, pois nela explico tudo isso detalhadamente.

Além de um dispositivo móvel Android ou iOS, você vai precisar também dos seguintes itens:

01 – Arduino Uno R3 com Cabo USB
01 – Módulo Ethernet ENC28J60
01 – Módulo Relé 5V 1 Canal

01 – Sensor de Temperatura LM35
01 – Protoboard
01 – Fonte DC 9V 1A Bivolt Chaveada
04 – Cabos Jumper macho-macho
10 – Cabos Jumper macho-fêmea
01 – Lâmpada
01 – Receptáculo (boquilha)
– Cabo paralelo de 1,5mm ou 2,5mm
– Tomada (Rede alternada de 127V)
– Cabo de rede RJ45

Nas imagens a seguir você pode ver as conexões feitas entre o ENC28J60 e o Arduino, e o esquema de ligação completo com os demais componentes desta prática:

OBS: na tabela é mostrado as conexões que devem ser feitas entre o ENC28J60 e o Arduino Uno ou Arduino Mega 2560.

img01_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

img02_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

O uso da fonte de 9V 1A se faz necessário para que seja possível fornecer ao circuito a corrente necessária para funcionamento e que não haja queda de tensão no referencial de tensão da placa, que no caso é 5V por padrão. Após a montagem do circuito acima, conecte uma ponta do cabo de rede ao roteador e a outra porta conecte a porta ethernet no ENC28J60.

Em seguida, faça download da biblioteca para o ENC28J60:

Download biblioteca UIPEthernet

Caso não saiba como importar bibliotecas para a IDE do Arduino, acesse a postagem Arduino – Importando bibliotecas para a IDE e em seguida retorne para continuar.

Copie o código abaixo e cole no IDE do Arduino:

Vá até a linha char auth[] = “YourAuthToken”; apague o texto YourAuthToken e adicione o seu AuthToken (para mais detalhes sobre como obter o AuthToken, clique AQUI):

img03_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

No menu “Ferramentas” selecione a opção “Placa” e selecione o modelo do seu Arduino. Ainda no menu “Ferramentas”, selecione a opção “Porta” e marque a porta COM em que seu Arduino foi alocado.

Clique no botão para enviar o código ao Arduino e aguarde o carregamento.

Abra o app Blynk em seu dispositivo móvel Android ou iOS, faça login e acesse o seu projeto. Se ainda não tem o projeto criado no Blynk, clique AQUI e leia a postagem para aprender a fazer as devidas configurações do projeto. Seu projeto deverá ser criado com as seguintes configurações:

img04_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

Na tela principal do projeto, vá até a lista de widgets, selecione um “Button” e em seguida selecione o “Gauge”:

img05_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

Com os widgets inseridos no contêiner principal, clique sobre o “Button” para acessar as configurações. Em “OUTPUT” selecione o tipo de pino “Digital” e D8. As configurações deverão ficar similar a imagem abaixo:

img06_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

Clique sobre o “Gauge” para acessar as configurações. Em “OUTPUT” selecione o tipo de pino “Virtual” e V1. As configurações deverão ficar similar a imagem abaixo:

img07_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

O Blynk pode controlar de forma direta os pinos digitais e analógicos da plataforma sem que seja necessário escrever uma linha de código. Contudo, controlar entradas e saídas da plataforma não é suficiente, logo, se faz necessário a troca de informação com qualquer tipo de dado.

Para possibilitar o envio de qualquer tipo de dado da plataforma (Arduino, por exemplo) para o aplicativo e do aplicativo para a plataforma, foram criados os pinos virtuais. A partir destes pinos, você pode trocar qualquer tipo de informação entre o app no dispositivo móvel e a plataforma. Logo, você pode processar algo na plataforma e em seguida enviar o resultado para o aplicativo. Veja que definimos o pino virtual V1 nas configurações do widget “Gauge” e este pino será responsável por informar a temperatura medida pelo LM35.

Depois de efetuar as configurações dos widgets você terá uma tela similar a imagem abaixo:

img08_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

Agora clique no botão de “Play” para iniciar a conexão e em seguida confira se o projeto está online:

img09_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

Agora basta pressionar o botão no app Blynk para acender ou apagar a lâmpada e no widget “Gauge” você pode ver a temperatura que está sendo medida pelo sensor.

Veja no vídeo abaixo o resultado final:

Caso o seu projeto no app Blynk esteja apresentando várias desconexões em intervalos curtos de tempo, pode ser necessário que você aumente o intervalo do heartbeat no arquivo BlynkConfig.h dentro da pasta de biblioteca do Blynk. Se após um determinado tempo o cliente não tiver respondido a uma mensagem (ping / heartbeat) enviada pelo servidor, o mesmo irá considerar que a conexão com o cliente foi perdida e irá encerrar esta conexão e o Blynk irá acusar “Heartbeat Timeout”.

Por padrão, o intervalo definido no heartbeat do arquivo BlynkConfig.h é de 10 segundos. Para alterar este valor, acesse a pasta de instalação das bibliotecas no IDE do Arduino. A pasta em que as bibliotecas são instaladas se chama “Arduino” e ela fica dentro da pasta “Documentos” do seu Windows. A pasta “Documentos” pode ter o nome do usuário do computador. Dentro da pasta “Arduino”, acesse a pasta “libraries”, e em seguida abra a sequência de pastas: “Blynk”, “src” e “Blynk”. Dentro da pasta há o arquivo BlynkConfig.h e você deve abrir o mesmo através do Bloco de Notas ou Notepad++. Com o arquivo aberto, procure pela linha “#define BLYNK_HEARTBEAT      10”:

img10_blynk_utilizando_com_o_modulo_ethernet_enc28j60_e_arduino_smartphone_android_ios_iphone_ipad_automacao_lampada_temperatura

O valor deverá ser alterado caso seu projeto no app Blynk venha recebendo muitas desconexões. Caso essa situação se aplique a você, mude o valor de 10 para 30 e faça um teste. Caso ainda haja desconexões, mude de 30 para 60 e faça um novo teste. Antes de editar o arquivo, feche todas as instâncias do IDE do Arduino que estiverem abertas.

A partir desta prática você pode incluir outros módulos e sensores para ir ampliando o seu projeto de automação residencial ou IoT.

Gostou desta postagem? Então deixa seu comentário, dúvida ou sugestão aí embaixo!

Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop

Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.

Obrigado e até a próxima!

Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.



Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação, Técnico em Eletroeletrônica, Fundador e Diretor da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Existem 4 comentários para esta postagem
  1. Juliano Genyson de Oliveira às 10:24

    Bom dia.
    Euler, desde lhe parabenizo pelos conhecimentos e por compartilha-los.
    Pretendo gerenciar muitos splits e a principal dívida é: Quantos dispositivos são suportados no App ?

    Existe modelos para splits de 60 mil Btus ?

    Muito obrigado.

    • Euler Oliveira Autor às 11:24

      Olá Juliano.

      Agradeço pelo comentário!

      O limite na verdade é baseado no tamanho da tela do dispositivo móvel que for utilizar e na quantidade de energia disponível no app Blynk para inserção de widgets.

      O Blynk não é específico para controlar um determinado tipo de equipamento. Basta fazer a devida programação e poderá controlar diversos dispositivos elétricos e eletrônicos.

  2. wanderson às 22:21

    Gostei muito do projeto, mas fiquei na dúvida. Como faço caso queira usar uns 5 relés individuais? No relé serial sei que é usando as portas virtuais no App. Usando essa quantidade de relé, usa-se uma protoboard com metodo de portas virtuais? ou existe alguma outra forma?

    • Euler Oliveira Autor às 08:28

      Olá Wanderson.

      Agradeço pelo comentário!

      Será da mesma forma que mostrado na postagem, contudo, irá conectar cada módulo relé em um pino digital e no app Blynk irá adicionar mais widgets button e em cada um deles definir um pino digital referente a cada um dos módulos relés.