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
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.
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.
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.
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.
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.
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).
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.
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.
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.
Ao final, nossa área de Datastreams ficará da seguinte maneira:
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:
Inicialmente, vamos ajustar os Widgets do tipo Gauge para exibir a temperatura e umidade lidas pelo sensor DHT11, conforme as Figuras 14 e 15.
Logo após, vamos ajustar os Widgets do tipo Switch para fazer o acionamento do LED, conforme a Figura 16.
Após as configurações do template feitas, precisamos salvá-lo. Portanto, clique na opção “Save” (salvar), conforme a Figura 17.
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.
Na página New Device, selecione a opção From Template, de acordo a Figura 19.
Em seguida, selecione o template , adicione um nome para o dispositivo e clique na opção “Create” (Criar), como na Figura 20.
Imediatamente após, o dispositivo adicionado aparecerá na seção Devices (Dispositivos) estará visível no Dashboard, conforme a Figura 21.
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.
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.
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.
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.
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.
Realize as configurações dos widgets conforme a Figura 27.
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.
Espero ter ajudado,
Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!
Att. 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.