Blynk – Controle do Arduino via WiFi com ESP8266 ESP-01

Blynk – Controle do Arduino via WiFi com ESP8266 ESP-01

A interação entre o Arduino e o ESP8266 permite que a placa possa acessar redes WiFi e com isso se torna possível desenvolver projetos bem interessantes, principalmente de automação residencial. O uso do Blynk em conjunto com o Arduino e o ESP8266 ESP-01 vai facilitar bastante a implementação do seu projeto de automação residencial ou IoT e vai permitir controlar o Arduino através do seu smartphone ou tablet.

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. Recomendo também que leia a postagem Blynk – Executando os Primeiros Projetos com Arduino para que possa executar algumas práticas simples e se familiarizar com a ferramenta.

A proposta para esta prática é a integração entre o Arduino, o ESP-01 e o Blynk. O ESP-01 vai permitir que o Arduino se conecte a uma rede sem fio e se comunique com o aplicativo Blynk instalado no seu dispositivo móvel. 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.

Vamos utilizar um módulo relé 5V conectado ao Arduino para fazer o controle de uma lâmpada através do Blynk e usar também um sensor de temperatura e umidade DHT11 para obter as informações e mostrar no aplicativo.

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

Para que o ESP-01 possa se comunicar com o Arduino e com o Blynk, é necessário que o módulo esteja com um firmware que permita o envio de comandos AT. Nos testes que eu fiz, o firmware que funcionou perfeitamente foi a versão v0.9.5.2 AT Firmware. Acesse a postagem Upgrade de Firmware do WiFi ESP8266 ESP-01 através do Arduino e Conversor USB Serial e veja como instalar esta versão de fimrware no ESP-01. Em seguida retorne para continuar.

O ESP-01 conectado a uma rede WiFi pode consumir até 300mA, logo, será necessário alimentá-lo com uma fonte que forneça a corrente necessária para o perfeito funcionamento.

Utilizei uma fonte ajustável para protoboard, pois a mesma aceita de 6,5 a 12VDC na entrada, reduzindo a saída para 3.3VDC / 5VDC e fornece uma corrente de saída de aproximadamente 700mA. Desta forma, a fonte ajustável para protoboard será responsável por alimentar todas as peças que fazem parte do circuito, inclusive o Arduino através do pino VIN.

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 WiFi ESP8266 ESP-01
01 – Módulo Relé 5V 1 Canal
01 – Sensor de Umidade e Temperatura – DHT11
01 – Protoboard de 400 Pontos
03 – Resistor de 10KΩ
08 – Cabos Jumper macho-fêmea
07 – Cabos Jumper macho-macho
01 – Fonte Ajustável 3.3V / 5V para Protoboard MB102
01 – Fonte DC 9V 1A Bivolt Chaveada
01 – Lâmpada
01 – Receptáculo (boquilha)
01 – Cabo paralelo de 1,5mm ou 2,5mm
01 – Tomada (Rede alternada de 127V)

Monte o esquema de ligação conforme a imagem abaixo:

ATENÇÃO: MUITO CUIDADO AO EXECUTAR PRÁTICAS QUE ENVOLVAM TENSÃO / CORRENTE ALTERNADA! FAÇA TODAS AS LIGAÇÕES COM O CIRCUITO COMPLETAMENTE DESLIGADO E ANTES DE FAZER OS TESTES VERIFIQUE CADA UMA DAS LIGAÇÕES PARA ELIMINAR A POSSIBILIDADE DE CURTO ENTRE FASE / NEUTRO OU FASE / FASE.

img01_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio(Clique na imagem para ampliar)

Observe no esquema de ligação que o ESP-01 está sendo alimentado com a tensão de 3.3V que sai da fonte ajustável MB102, pois este é o nível lógico e a máxima alimentação que pode ser aplicada ao módulo de forma direta. Note também que, o módulo relé, o DHT11 e o Arduino estão sendo alimentados pelos 5V fornecidos na outra extremidade da protoboard. No esquema de ligação você pode ver que na fonte ajustável MB102 foi circulado em vermelho os jumpers que definem qual tensão será disponibilizada em cada lado da protoboard.

Mantenha a fonte ajustável MB102 desligada e após conferir todo o esquema de ligação você deverá conectar uma ponta do cabo USB ao Arduino e a outra ponta conectar ao computador para carregamento do código.

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

Download biblioteca DHT11

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 na IDE do Arduino:

No código 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):

img02_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

Você deverá inserir o nome da sua rede WiFi na linha char ssid[] = “NOME DA SUA REDE WIFI”; e a senha deverá inserir na linha char pass[] = “SENHA DA SUA REDE WIFI”;:

img03_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

Para integrar o ESP-01 com o Arduino é necessário o uso de comunicação serial. O Arduino Uno possui apenas uma serial física e que é utilizada para comunicar a placa com o computador. Portanto, para comunicar o ESP-01 com o Arduino é necessário emular uma conexão serial através da biblioteca “SoftwareSerial” utilizando dois pinos digitais, sendo um o RX e o outro TX. A comunicação serial entre o ESP-01 e o Arduino flui sem problemas com a taxa de comunicação em 9600 bauds. No código, a linha “#define ESP8266_BAUD 9600” já está definida com esta velocidade, mas o seu ESP-01 também deverá estar configurado em 9600.

img04_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

No menu “Ferramentas” selecione a opção “Placa” e selecione o “Arduino/Genuino Uno”:

img05_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

No menu “Ferramentas”, selecione a opção “Porta” e marque a porta COM em que sua placa foi alocada:

img06_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

Veja que no meu caso a placa foi alocada na COM6, porém, o seu Arduino pode ter sido alocado em uma COM de outro valor. Caso não saiba em qual porta COM sua placa foi alocada, basta retornar no menu Iniciar do Windows, acessar a opção Dispositivos e Impressoras , verificar a porta em que seu Arduino está conectado, retornar na IDE e selecionar a porta COM.

Em seguida, clique no botão para enviar o código ao Arduino e aguarde o carregamento.

Terminado o carregamento do código, desconecte o cabo USB do Arduino, conecte a fonte de alimentação 9V na tomada e no plug jack da fonte ajustável para protoboard, e pressione o interruptor para liga-la.

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:

img07_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

Na tela principal do projeto, vá até a lista de widgets, selecione um “Button” e selecione também dois “Gauge” (um para temperatura e outro para umidade):

img08_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

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 D4. As configurações deverão ficar similar a imagem abaixo:

img09_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

Clique sobre um dos “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:

img10_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

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

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 os pinos virtuais V1 e V2 nas configurações dos “Gauge” e estes pinos serão responsáveis por informar a temperatura e a umidade.

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

img12_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

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

img13_controle_do_arduino_via_wifi_com_esp8266_esp-01_automacao_residencial_rele_dht11_smartphone_tablet_internet_sem fio

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

Veja no vídeo abaixo o resultado final:

Se por ventura precisar atualizar o código e enviar ao Arduino, lembre-se de sempre desligar a fonte ajustável antes de conectar o cabo USB a placa e ao computador.

Caso ao final desta postagem você não tenha conseguido o resultado mostrado no vídeo, volte e confira todas as ligações. Lembre-se de conferir também a versão do firmware que está instalado no ESP-01 e se a taxa de comunicação está configurada em 9600 bauds (vide tutorial).

Para que o Arduino possa se conectar à rede WiFi e em seguida ao servidor Blynk, é necessário que o ESP-01 seja ligado de forma simultânea com o Arduino. Caso você ligue o Arduino e só depois ligar o ESP-01 (ou vice versa), certamente a comunicação irá falhar.

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.

Blynk – Controle do Arduino via WiFi com ESP8266 ESP-01
1038 votos / Média de avaliação: 5 / Pontuação: 99.85%


Postagem anterior:
Próxima postagem:
Postagem feita por

Formado em Engenharia da Computação pela Faculdade Presidente Antônio Carlos, fundador e CEO da MasterWalker Electronic Shop. Se preocupa com o aprendizado dos seus clientes e daqueles interessados em aprender sobre Arduino e plataformas embarcadas em geral.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *