wifi ESP8266

Como usar o Módulo Relé Wifi ESP8266 IoT com Blynk 6

No post anterior sobre o Módulo Relé WiFi ESP8266 mostramos detalhes do seu funcionamento. Agora que você já experimentou com esse módulo e já entendeu seu funcionamento, vamos mostrar como podemos customizá-lo para realizar tarefas além das pré configuradas modificando seu firmware. Neste post iremos desenvolver especificamente um firmware para comunicação com o aplicativo Blynk de celular. Com isso o leque de possibilidades aumenta bastante e você poderá utilizar o Módulo Relé WiFi ESP8266 com MQTT por exemplo.

Gravando o ESP8266 pela IDE Arduino

O ESP8266, além da utilização de comandos AT, também pode ser programado em C/C++ através da IDE Arduino. Para isso é necessário que sua IDE tenha suporte a tal função. Para isso siga as instruções no GitHub de como habilitar suporte ao ESP8266 na IDE Arduino.

Além da IDE configurada, é necessário a utilização de um circuito especial para gravação do ESP8266-01. Existem várias opções na internet, utilizando chaves, transistores e adaptadores USB-serial como FTDI.

Basicamente o GPIO0 precisa estar em nível 0 (LOW) enquanto o módulo é resetado ou energizado. Assim ele entra em modo gravação via UART (TX, RX).

Dica rápida e prática! Com o módulo desligado, faça um “curto” com um jumper entre o pino GPIO0 e GND, ligue o módulo relé e remova o “curto”. Assim o ESP8266 entra em modo gravação. Com um adaptador FTDI conectado na UART é só fazer o upload via IDE Arduino. Se o upload funcionar, desligue e ligue novamente para que o ESP8266 entre em modo normal de funcionamento e execute seu programa. Veja abaixo como é fácil fazer:

Esquema de ligação FTDI com módulo relé WiFi ESP8266

Ou utilize um adaptador USB-serial para ESP8266 como indicado no seguinte tutorial do nosso parceiro Arduino e Cia.

Como teste, grave o seguinte código no módulo:

uint8_t relayOn[] = {0xA0, 0x01, 0x00, 0xA1};
uint8_t relayOff[] = {0xA0, 0x01, 0x01, 0xA2};

void setup() {
 Serial.begin(9600);
}

void loop() {
 Serial.write(relayOn, 4);
 delay(1000);
 Serial.write(relayOff, 4);
 delay(1000);
}

O código acima é um exemplo básico para o módulo relé WiFi ESP8266, ligando/desligando a cada 1 segundo. Node os vetores relayOn[] e relayOff[] que possuem os bytes de comando que já vimos no post anterior.

Primeiros passos com Blynk

Agora que podemos usar códigos na IDE Arduino para gravar o módulo relé, podemos utilizar qualquer biblioteca disponível para ESP8266 inclusive a biblioteca Blynk que é o foco de nosso tutorial.

Primeiro siga os primeiros passos indicados no site do Blynk para configuração na IDE Arduino. Isso inclui instalação do aplicativo, instalação da biblioteca, código Token, etc.

Configuração no aplicativo Blynk

Abra o aplicativo Blynk e faça login com uma conta ou crie uma nova se necessário. Crie um novo projeto (1) e selecione as opções como abaixo (2).

Telas do Blynk

Um aviso irá aparecer informando que o código Token do projeto foi enviado ao seu e-mail cadastrado (3). Anote esse Token pois usaremos na programação. Escolha o widget botão na janela de widgets (4).

Telas do Blynk

Clique no botão para editar suas configurações (5). Escolha um nome para o botão, selecione o tipo V0, que é do tipo pino virtual, selecione o nível lógico de 1 para 0 e o tipo de botão switch (6).

Telas do Blynk

Finalmente clique em play para executar a aplicação (7). Porém será informado que o dispositivo está offline pois ainda não carregamos a programação.

Telas do Blynk

Programando o ESP8266 para comunicação com Blynk

O código para comunicação com Blynk e controle do relé pode ser visto abaixo.

#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "SeuTokenAqui";

// bytes de comando do rele
uint8_t relayOn[] = {0xA0, 0x01, 0x00, 0xA1};
uint8_t relayOff[] = {0xA0, 0x01, 0x01, 0xA2};

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "NomeDaRede";
char pass[] = "SenhaDaRede";

void setup()
{
  // Debug console
  Serial.begin(9600);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);
}

void loop()
{
  Blynk.run();
}

BLYNK_WRITE(V0)
{
  int pinValue = param.asInt();
  if(pinValue == 1) Serial.write(relayOn, 4);
  if(pinValue == 0) Serial.write(relayOff, 4);
}

Note os seguintes itens mais importantes:

1 – Coloque o Token do seu projeto, recebido por e-mail ou visto nas configurações do aplicativo, no seguinte trecho:

char auth[] = "SeuTokenAqui";

2 – Coloque as credenciais de sua rede WiFi na qual se deseja conectar o módulo relé ESP8266.

char ssid[] = "NomeDaRede";
char pass[] = "SenhaDaRede";

3 – Um conceito importante do Blynk são pinos virtuais. Como não iremos controlar uma GPIO diretamente e sim enviar comandos via serial, podemos utilizar pinos virtuais para realizar tal tarefa. Assim conforme o valor do botão no app Blynk, enviamos os valores de ligar/desligar o relé pela serial. Aprenda mais sobre pinos virtuais do Blynk.

BLYNK_WRITE(V0)
{
  int pinValue = param.asInt();
  if(pinValue == 1) Serial.write(relayOn, 4);
  if(pinValue == 0) Serial.write(relayOff, 4);
}

Projeto relé WiFi ESP8266 funcionando!

Agora volte ao aplicativo Blynk e clique em play novamente. Será informado que o dispositivo está online e será possível controlar o relé através do botão.

Gostou de usar o módulo relé WiFi ESP8266 com Blynk? Ajude-nos a melhorar o blog comentando abaixo sobre este tutorial. Não se esqueça de visitar o Fórum da Filipeflop!

Deixe uma resposta

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

6 Comentários

  1. Muiito legal, mas vamos tentar melhor rs, estou tentando colocar um interruptor(pulsador) como posso fazer ??

    1. Legal mesmo Marcus!

      Infelizmente este relé não tem entradas digitais para interruptor pulsador.

      O relé sonoff é uma outra alternativa para relé WiFi. Ele possui um botão que você pode ligar qualquer outro interruptor pulsador em paralelo.

      1. Obrigado. Você trás dele kk

  2. man, grava um vídeo desse tutorial por favor, tenho os 2 módulos não to sabendo fazer alguma coisa, tentei aqui gravar no esp. to apanhando pra upload, enfim um vídeo de 2 minutos rapidinho de como faz o upload já ajuda.

    1. Olá Juan! Este tutorial não é focada na gravação do ESP8266 e sim no uso do Blynk.

      Tente focar no primeiro objetivo. Gravar o ESP8266. Então deixe esse tutorial um pouco de lado por enquanto.

      A dica rápida para gravar o ESP8266 é a seguinte: Com o módulo desligado, faça um “curto” com um jumper entre o pino GPIO0 e GND, ligue o módulo relé e remova o “curto”. Assim o ESP8266 entra em modo gravação. Com um adaptador FTDI conectado na UART é só fazer o upload via IDE Arduino. Se o upload funcionar, desligue e ligue novamente para que o ESP8266 entre em modo normal de funcionamento e execute seu programa.

      Segue alguns links que podem complementar seu estudo. Favor ler com atenção e entender todos os detalhes.

      Entenda o básico de ESP8266, modos de utilização e gravação:
      https://www.filipeflop.com/blog/guia-do-usuario-do-esp8266/

      Entenda neste artigo como é o processo de gravação do ESP8266:
      https://www.embarcados.com.br/analise-do-circuito-gravador-para-esp8266/

      Leia também o seguinte artigo no nosso parceiro Arduino e Cia:
      https://www.arduinoecia.com.br/2017/07/adaptador-usb-para-esp8266-esp-01.html

      Qualquer dúvida pode retornar aqui ou também pode usar nosso Fórum. Lá tem mais gente que pode ajudar.