Use o Blynk e ESP8266 para mostrar temperatura e umidade na tela do celular
Procurando uma solução simples para monitorar temperatura e umidade? Junte o Blynk e o ESP8266, montando um sistema que vai enviar os dados para um smartphone usando o módulo sensor de temperatura e umidade DHT11 para ESP8266 ESP-01:
O Blynk é um programa que já vimos algumas vezes aqui no Arduino e Cia, e permite criar aplicativos de monitoramento, acionar portas e ler dados de sensores em placas como Arduino, Raspberry Pi, ESP8266, ESP32 e muitas outras.
O módulo DHT11 para ESP8266 ESP-01
Esse módulo com DHT11 é muito prático para uso em projetos de automação residencial e monitoração pois basta você programar o ESP8266 ESP-01, encaixá-lo na placa e o mesmo fará a comunicação com o DHT11 realizando o envio dos dados via rede sem fio (wifi).
A alimentação é feita através dos 2 pinos disponíveis na placa e aceita entre 3,7 e 12VDC, podendo ser utilizado por exemplo com baterias de lítio de 3,7V.
Dependendo da programação, a bateria pode durar longos períodos se você usar o modo sleep do ESP8266, que aciona o microcontrolador em intervalos definidos e depois entra em estado de espera para economizar energia.
Configurando o Blynk no smartphone
Vamos primeiro criar a aplicação no software Blynk, já que precisamos da chave gerada pelo aplicativo para que o mesmo possa fazer a comunicação com o ESP8266.
Procure pelo Blynk na loja de aplicativos do seu celular (Android / Iphone) e faça a instalação normalmente. É necessário um pequeno cadastro de usuário, email e senha.
Na tela principal do Blynk, crie um novo projeto, dê um nome para ele e escolha o dispositivo ESP8266. Em seguida selecione Create (Criar):
O aplicativo retorna uma mensagem dizendo que uma chave foi gerada e enviada para o seu email. Vamos precisar dessa chave para colocar depois no nosso programa do ESP, ok?
Agora selecione o ícone com o sinal de “mais” na parte superior do projeto, e adicione um widget do tipo LCD:
Selecione o widget que você acabou de criar e coloque a seguinte configuração:
V0 e V1 são os “pinos virtuais” do Blynk, para onde vamos mandar os dados de temperatura (para o V0) e umidade (para o V1). Você pode selecionar outras opções como o texto que será mostrado, cor do display LCD, etc.
Isso finaliza a configuração do Blynk. Retorne para a tela principal e agora vamos para a configuração da IDE, instalação das bibliotecas e programação do ESP8266.
Blynk e ESP8266: Preparando a IDE
Como aqui não temos uma montagem propriamente dita, já que simplesmente vamos encaixar o ESP-01 no módulo e conectar os pinos de alimentação, vamos direto para a parte de configuração, começando pela preparação da IDE para que ela reconheça o ESP8266.
Na IDE do Arduino, acesse o menu Arquivo -> Preferências e coloque a seguinte URL no campo URLs Adicionais para Gerenciadores de Placas:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Em seguida, acesse o menu Ferramentas -> Placas -> Gerenciador de Placas e procure por ESP8266, clicando em seguida em Instalar:
Isso faz com que as placas da linha ESP8266 fiquem disponíveis no menu Ferramentas -> Placas, bastando selecionar o Generic ESP8266 Module:
Vamos agora para a instalação das bibliotecas e programação do ESP-01.
Programação do módulo DHT11 para ESP8266
Para o nosso programa vamos usar as bibliotecas DHT11 e Blynk, disponíveis para instalação na própria IDE do Arduino.
Acesse o menu Sketch -> Incluir Biblioteca -> Gerenciar Bibliotecas. Dentro do Gerenciador de Bibliotecas, procure por DHT11, selecione a biblioteca DHT sensor library for ESPx e clique em Instalar:
Faça a mesma coisa para a biblioteca Blynk:
Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.
Agora basta carregar o programa abaixo no ESP-01, alterando primeiro essas informações no código:
- Chave de autorização (aquela que você recebeu por email quando criou o projeto no Blynk) na linha 8
- Nome da sua rede Wifi na linha 11
- Senha da sua rede Wifi na linha 12
Para programar o ESP-01, usamos um Adaptador USB ESP-Link para ESP8266 ESP-01, que não exige a montagem de nenhum circuito para colocar o ESP em modo de programação: basta encaixá-lo no adaptador, plugar na USB e o mesmo já será reconhecido pelo computador como uma porta COM/Serial.
//Programa: Blynk com modulo DHT11 ESP8266 //Autor: Arduino e Cia #include <DHTesp.h> #include <BlynkSimpleEsp8266.h> //Coloque abaixo o token de autorizacao recebido por email char auth[] = "-yjn47Kt4aY4x7cGbU9Xl1IjgLCKArAP"; //Preencha com os dados da sua rede wifi char ssid[] = "NOME_DA_REDE_WIFI"; char pass[] = "SENHA_DA_REDE_WIFI"; //Definicoes de pino DHT #define pino_DHT 2 BlynkTimer timer; DHTesp dht; int temperatura; int umidade; void enviardados() { //Le os dados do sensor temperatura = dht.getTemperature(); umidade = dht.getHumidity(); //Envia os dados para o Blynk Blynk.virtualWrite(V0, temperatura); Blynk.virtualWrite(V1, umidade); } void setup() { //Inicializa a comunicacao com o Blynk Blynk.begin(auth, ssid, pass); //Inicializa o DHT11 dht.setup(pino_DHT, DHTesp::DHT11); //Envia as informacoes para o smartphone timer.setInterval(5000L, enviardados); } void loop() { Blynk.run(); timer.run(); }
Tire o ESP-01 do adaptador e encaixe no módulo DHT11 conforme as imagens mostradas anteriormente. Alimente o módulo e se tudo estiver certo o ESP irá conectar na sua rede Wifi e enviar os dados de umidade e temperatura para o seu celular:
Gostou? Confira outros posts usando Blynk aqui mesmo no Arduino e Cia!
Bom dia!
Gostei muito da ideia, mais teria como modificar e colocar ele se comunicar com o SNMP? para que eu possa usar o zabbix para mostra a temperatura e umidade?
Oi Cristiano,
Tem sim, a IDE do Arduino tem bibliotecas para SNMP, que você pode usar para programar o ESP8266 ou o ESP32.
Abraço!
Adilson
Olá Adilson.
Gostei muito desta aula, bem explicada e demonstrada.
Elaborei para testar no meu projeto e funcionou perfeitamente.
Minha dúvida é se posso substituir o botão pelo sinal vindo de uma porta do arduino.
Estou montando um projeto de detecção de gás e gostaria de mandar o sinal recebido pelo sensor para que o arduino comunique com outro esp01 e acione um relê, que por sua vez, aciona uma válvula, desligando o gás.
Poderia me dar um help, por favor?
Abraço.
Oi Wanderley!
Blz? Eu estava aqui pensando se não seria interessante fazer esse projeto direto com dois módulos ESP se comunicando diretamente.
Eu lancei recentemente um post sobre o ESP-NOW, e também tenho outros exemplos com comunicação entre módulos ESP. Dependendo do seu projeto, pode ser uma opção também.
Abraço e obrigado!
Adilson