fbpx

Criando aplicação Internet das coisas com NODEMCU ESP8266 e o novo Blynk 2.0

O objetivo desse projeto é aplicar os conhecimentos sobre Internet das Coisas para desenvolver uma aplicação usando o Novo Blynk 2.0 e o NODEMCU ESP8266 para receber informações de temperatura e umidade do ambiente e fazer acionamento de carga.

PRIMEIROS PASSOS PARA UTILIZAÇÃO DA PLACA NODEMCU NO ARDUINO IDE

Antes de começar a programar a NODEMCU ESP8266 precisamos realizar algumas configurações no Arduino IDE. Aprenda a realizar as configurações em nosso post Como programar a placa NODEMCU ESP8266 no Arduino IDE.

MATERIAIS NECESSÁRIOS

1 x NODEMCU ESP8266;
1 x Cabo micro USB;
1 x Módulo sensor DHT11;
1 x LED difuso de 5 mm na cor verde;
1 x Resistor de 220 Ω;
1 x Protoboard;
Fios jumper.

ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Figura 1 – Esquemático de ligação dos componentes.

CRIANDO O TEMPLATE NO BLYNK.CLOUD

Para conhecer o Novo Blynk App acesse o nosso tutorial: Conhecendo o Novo Blynk 2.0 – A nova plataforma do Blynk IoT

1.Criar uma conta no site do Novo Blynk 2.0

Para poder criar projetos no Novo Blynk 2.0 será necessário realizar um cadastro na plataforma, mesmo que você já possua cadastro no antigo Blynk. O cadastro pode ser feito acessando o Blynk.App ou o Blynk.Console, através seguinte link: https://blynk.cloud/dashboard/login

Após abrir o Blynk.Console, clique na opção Create new account, conforme a Figura 2. Inclua um e-mail válido e aceite os termos e condições de uso da plataforma. Para confirmar a criação da conta, acesse o seu e-mail, crie uma senha e preencha o seu primeiro nome.

Figura 2 – Criando conta na plataforma Novo Blynk 2.0.

2. Ativar modo desenvolvedor

No Blynk, o desenvolvedor é um usuário que tem acesso a todas as funcionalidades necessárias para configurar a plataforma para uso. Deste modo, para que consigamos desenvolver projetos com o Blynk, precisamos ativar o modo desenvolvedor.

Para isto, abra o Blynk.App ou Blynk.Console, navegue até My Profile no menu à esquerda e verifique se a chave do modo desenvolvedor está ativada, conforme Figura 3.

Figura 3 – Ativando o modo Desenvolvedor.

3. Criar o template do projeto no Blynk.Console

Para criar um template navegue pelo menu e clique na opção “Templates”. Em seguida clique em “+ New Template”, conforme Figura 4.

Figura 4 – Templates no Blynk.

Na tela Create New Project configuraremos o nome do projeto, o hardware utilizado, o tipo de conexão entre a aplicação e o microcontrolador e a descrição do projeto, conforme a Figura 5.

Figura 5 – Tela de criação do template.

4. Configurar Template

Após criado o template, você será redirecionado para a tela de configuração. Na aba Info da tela de configuração do template, você poderá alterar as informações do seu projeto. Nesta aba, obtemos o elemento mais importantes do nosso template: o TemplateID.

O TemplateID é um identificador exclusivo do projeto e deve ser especificado no código do dispositivo de hardware. Importante! A definição do ID do template deve sempre ser a primeira linha do seu código.

Figura 6 – Aba template.

Para realização deste projeto, pule a guia Metadata e vá diretamente para a guia Datastreams. Os Datastreams (do inglês, fluxo de dados, stream = fluxo e data = dados) são canais usados para enviar dados entre o dispositivo de hardware e o Blynk.Cloud. Será por meio dos Datastreams que receberemos e enviaremos dados. Podemos usar os Datastream para dados de sensor, telemetria ou atuadores.

Para adicionar um Datastream basta clicar na opção “+ New Datastream”, conforme a Figura 7. Observe que o Datastream pode ser do tipo Digital, Analógico (Analog), Virtual (Virtual Pin), Enumerável (Enumerable) e de localização (Location).

Figura 7 – Tipos de Datastream.

Em nosso projeto, vamos incluir:

Dois Datastream do tipo virtual (virtual Pin) para guardar a temperatura e umidade do sensor DHT11 e um do tipo digital para fazer o acionamento da carga (LED).

Os pinos virtuais são uma forma de trocar quaisquer dados entre o dispositivo de hardware e a plataforma Blynk. Estes pinos são comumente usados para fazer interface com outras bibliotecas e implementar lógica personalizada.

Iniciaremos incluindo dois Datastreams do tipo Virtual para receber a leitura de temperatura e umidade do sensor DHT11, que nomearemos de Temperatura e Umidade. No Datastream Temperatura usaremos o pino virtual V0, com dado do tipo double, unidade em Celsius (ºC), valores de 0 a 100, conforme Figura 9.

Figura 9 – Configuração do Datastream para receber a leitura da temperatura.

No Datastream Umidade usaremos o pino virtual V2, com dado do tipo double, unidade em porcentagem (%), valores de 0 a 100 e valor padrão igual a 0, conforme Figura 10.

Figura 10 – Configuração do Datastream para receber a leitura da umidade.

Logo após, vamos adicionar o Datastream Digital para para fazer o acionamento da carga (LED). Neste momento, vamos preencher as informações para acionamento de carga. Seguindo o esquemático, utilizaremos o pino 5, GPIO correspondente ao pino D1 da NODEMCU ESP8266.

Figura 11 – Configurações do Datastream para acionar carga.

Ao final, nossa área de Datastreams ficará da seguinte maneira:

Figura 12 – Datastream do template Internet das Coisas.

Em seguida, pule as abas Events e Automations e vá diretamente para a guia “Web Dashboard”, para criar a interface visual do projeto.

O Dashboard é o painel que será usado para visualizar os dados de temperatura, umidade e fazer o acionamento do LED. Em nosso projeto usaremos 2 widgets do tipo gauge e 1 do switch. Desta forma, nossa Web Dashboard ficará da seguinte maneira:

Figura 13 – Configuração dos Widgets.

Inicialmente, vamos ajustar os Widgets do tipo Gauge para exibir a temperatura e umidade lidas pelo sensor DHT11, conforme as Figuras 14 e 15.

Figura 14 – Widget para exibir a temperatura (ºC).
Figura 15 – Widget para exibir a umidade (%).

Logo após, vamos ajustar os Widgets do tipo Switch para fazer o acionamento do LED, conforme a Figura 16.

Figura 16 – Widget para controlar o LED.

Após as configurações do template feitas, precisamos salvá-lo. Portanto, clique na opção “Save” (salvar), conforme a Figura 17.

Figura 17 – Salvando o template.

ADICIONANDO O NODEMCU AO BLYNK.CONSOLE

1.Adicionar o NODEMCU ESP8266 ao Blynk.console

Agora que o template já está configurado, precisamos adicionar a placa NODEMCU ESP8266 como dispositivo no Blynk.Console. Para isto, clique em Search (Pesquisar) e selecione a opção “+ New Device”, conforme Figura 18.

Figura 18 – Adicionando novo dispositivo no Blynk.Console.

Na página New Device, selecione a opção From Template, de acordo a Figura 19.

Figura 19 – Selecione a opção From template.

Em seguida, selecione o template , adicione um nome para o dispositivo e clique na opção “Create” (Criar), como na Figura 20.

Figura 20 – Adicionando um novo dispositivo no Blynk.Console.

Imediatamente após, o dispositivo adicionado aparecerá na seção Devices (Dispositivos) estará visível no Dashboard, conforme a Figura 21.

Figura 21 – Placa NODEMCU ESP8266 na seção Device e Dashboard.

Em seguida, acesse a aba Device Info (Informações do dispositivo). Nela, você encontrará parâmetros importantes que usaremos em nosso código, são elas: Template ID, Device name e Auth Token. Estas informações deverão ser copiadas e coladas no topo do código.

Figura 22 – Parâmetros do projeto no Blynk.Console.

ELABORANDO O CÓDIGO

Para que o Blynk funcione em sua plataforma de hardware é necessário instalar uma biblioteca. A biblioteca Blynk é uma extensão que irá rodar em seu hardware, sendo responsável pela conectividade, autenticação de dispositivo na nuvem e processos de comandos entre o Blynk.App, a nuvem e o hardware. Aprenda a instalar a Biblioteca Blynk no tutorial Conhecendo o Novo Blynk 2.0 – A nova plataforma Blynk IoT.

Também será necessário instalar a biblioteca do sensor DHT11. Para baixar clique aqui!

O código para o nosso projeto de Internet das Coisas usando a NODEMCU ESP8266 e o Novo Blynk 2.0 deve conter a seguinte estrutura:

#define BLYNK_TEMPLATE_ID "XXXXXXXXXX" //Identificação do template
#define BLYNK_DEVICE_NAME "Internet das Coisas" //Nome do template
#define BLYNK_AUTH_TOKEN "XXXXXXX" //Auth token

#include <ESP8266WiFi.h> //Biblioteca para conectar o módulo ESP8266 a uma rede Wi-Fi
#include <BlynkSimpleEsp8266.h> //Biblioteca para uso do ESP8266 na plataforma Blynk

#include <DHT.h> //Biblioteca para sensor DHT11

char auth[] = BLYNK_AUTH_TOKEN; //Armazena o AuthToken no array auth
char ssid[] = "XXXXXXXX"; //Rede WiFi
char pass[] = "XXXXXXXX"; //Senha da rede WiFi

#define DHTPIN D2 //Pino D2 será responsável pela leitura do DHT11
#define DHTTYPE DHT11 //Define o DHT11 como o sensor a ser utilizado pela biblioteca <DHT.h>

DHT dht(DHTPIN, DHTTYPE); //Inicializando o objeto dht do tipo DHT passando como parâmetro o pino (DHTPIN) e o tipo do sensor (DHTTYPE)
BlynkTimer timer;

float u = 0.0; //Variável responsável por armazenar a umidade lida pelo DHT11
float t = 0.0; //Variável responsável por armazenar a temperatura lida pelo DHT11

void sensorDHT() {
  u = dht.readHumidity(); //Realiza a leitura da umidade
  t = dht.readTemperature(); //Realiza a leitura da temperatura
  Serial.print("Umidade: ");
  Serial.println(u); //Imprime na serial a umidade
  Serial.print("Temperatura: ");
  Serial.println(t); //Imprime na serial a temperatura
  Blynk.virtualWrite(V0, t); //Escreve no pino virtual V0 a temperatura em graus Celsius
  Blynk.virtualWrite(V1, u); //Escreve no pino virtual V1 a umidade em porcentagem
}

void setup() {
  Serial.begin(115200); //Inicializa a comunicação serial
  Blynk.begin(auth, ssid, pass); //Inicializa o Blynk passando como parâmetros o auth token, o nome da rede Wi-Fi e a senha

  while (Blynk.connect() == false) { //Verifica se a conexão foi estabelecida
    delay(200);
    Serial.print (".");
  }
  Serial.print("Conetectado à rede WiFi "); //Imprime a mensagem no monitor serial quando a conexão WiFi for estabelecida
  Serial.println(ssid);

  dht.begin(); //Inicializa o sensor DHT11
  timer.setInterval(2000L, sensorDHT); //Configura a função para ser chamada a cada 2 segundos
}

void loop() {
  Blynk.run(); //Chama a função Blynk.run
  Serial.println("====== Projeto Internet das Coisas ======"); //Imprime a mensagem no monitor serial
  sensorDHT(); //Chama a função de leitura do sensor DHT11
  Serial.println("");
}

Transfira a programação para a placa NODEMCU ESP8266, abra o Dashboard do nosso projeto no Blynk.Console. Se tudo estiver correto, ao lado do nome NODEMCU ESP8266 aparecerá informações de que o dispositivo está online e os dados de temperatura e umidade já serão exibidos. Após isso, você já poderá realizar o controle de acionamento do LED através do Switch.

Figura 23 – Dashboard exibindo o status Online.

UTILIZANDO O BLYNK PELO CELULAR

Agora, vamos configurar o nosso projeto no Blynk.App. Para tal, abra o aplicativo e realize o seu login. O dispositivo NODEMCU ESP8266 já estará listado na tela inicial do Blynk. App, como mostra a Figura 24.

Figura 24 – Tela inicial do Blynk.App.

Clique na opção NODEMCU ESP8266 e para iniciar as configurações do Dashboard selecione a opção Setup Dashboard ou clique ícone da chave, conforme a Figura 25.

Figura 25 – Configuração do Dashboard no Blynk.App.

Para acessar os Widgets acesse o menu lateral direito localizado na tela Dashboard, conforme Figura 26. Adicione dois widgets do tipo Gauge e um do tipo Button.

Figura 26 – Menu de Widgets.

Realize as configurações dos widgets conforme a Figura 27.

Figura 27 – Configuração dos Widgets.

Por fim, volte a tela do Dashboard (Figura 28). Neste momento, os dados de temperatura e umidade estarão sendo exibidos e você poderá controlar o LED por meio do celular.

Vídeo 1 – Funcionamento da aplicação de Internet das Coisas.

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Carol Correia Viana

Dúvidas? Deixe seu comentário

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.