Termômetro IR IoT usando MLX90614 e ESP8266 em Blynk

Tempo de leitura: 6 minutes

Neste projeto, construiremos nosso próprio termômetro infravermelho baseado em IoT usando MLX90614 e ESP8266 e monitoraremos a temperatura no aplicativo Blynk. Este termômetro infravermelho DIY é o termômetro sem contato de baixo custo para medir a temperatura corporal ou a temperatura de corpos muito quentes. Um termômetro infravermelho é um dispositivo que mede a radiação infravermelha emitida por um objeto. Radiação infravermelha significa um tipo de radiação eletromagnética abaixo do espectro visível da luz.

O IR Temperature Sensor MLX90614 da Melexis pode ser facilmente conectado a qualquer microcontrolador usando o protocolo SMBus, que é semelhante ao protocolo I2C. Aqui, faremos a interface do Sensor MLX90614 com NodeMCU ESP8266 e display OLED de 0,96″.

Vamos conectar o ESP8266 à rede WiFi e enviar os dados de temperatura, ou seja, temperatura ambiente e temperatura do objeto para o painel de aplicativos Blynk. Blynk é uma plataforma IoT que permite construir rapidamente interfaces para controlar e monitorar seus sensores de hardware a partir de seu smartphone.

 

Lista de Materiais

O termômetro infravermelho baseado em IoT requer os seguintes componentes. Todos os componentes podem ser facilmente adquiridos no MercadoLivre ou outros sites no Brasil.

Nome dos Componentes Descrição Quantidade
1 NodeMCU ESP8266 12E Board 1
2 IR Temperature Sensor Sensor de temperatura GY-906 MLX90614 IR 1
3 OLED Display 0.96″ I2C OLED Display 1
4 Fios de Ligação Fios de Ligação 10
5 ProtoBoard 1

Sensor de temperatura infravermelho sem contato MLX90614

O MLX90614 é um sensor de temperatura digital sem contato infravermelho (IR) da Melexis. O sensor pode ser usado para medir a temperatura de um determinado objeto entre -70° C e 382,2° C. O sensor usa raios infravermelhos para medir a temperatura do objeto sem nenhum contato físico. Você pode verificar o princípio de funcionamento do termômetro infravermelho aqui: Termômetro infravermelho funcionando MLX90614

O sensor MLX90614 se comunica com o microcontrolador usando o protocolo SMBus, que é semelhante ao protocolo I2C. Assim, o sensor possui 4 pinos: VCC, GND, SDA e SCL. O sensor opera entre 3,3 V a 5 V com um requisito de corrente de 1,5mA. A precisão do sensor é de 0,02 ° C. O sensor possui um ADC de 17 bits que permite a leitura da temperatura com uma resolução menor de 0,0007. A melhor maneira de ler os dados precisos do sensor é colocando o sensor a uma distância de 2 a 5cm com um campo de visão em um ângulo de 80°.

Você pode aprender em detalhes sobre o Sensor de Temperatura IR MLX90614 em nosso artigo anterior ou no DataSheet MLX90614.

 

Diagrama de circuito e conexão: MLX90614 + NodeMCU + display OLED

Agora, vamos fazer a interface do sensor de temperatura IR MLX90614 com NodeMCU ESP8266 e display OLED. O diagrama de conexão é fornecido abaixo.

Conecte o pino VCC do MLX90614 e o visor OLED ao pino de 3,3V do NodeMCU ESP8266 e o GND ao GND. Da mesma forma, conecte o pino SDA e SCL de MLX90614 a D2 e D1 de NodeMCU respectivamente.

Configurando o aplicativo Blynk

O termômetro IR baseado em IoT envia os dados do sensor em qualquer Cloud Platform. A plataforma de nuvem que selecionei é o aplicativo Blynk. Blynk é uma ótima plataforma de IoT que pode controlar o hardware remotamente, exibir dados do sensor, armazenar dados, visualizá-los e fazer muitas outras coisas legais.

Portanto, baixe e instale o aplicativo Blynk na Google Play Store. Os usuários do IOS podem fazer o download na App Store. Assim que a instalação for concluída, abra o aplicativo e inscreva-se usando seu ID de e-mail e senha.

No painel, clique em New Project e selecione NodeMCU Board & Wifi Connection. Em seguida, clique em Criar. (Com as Setas em Vermelho)

Em seguida, no canto superior direito da tela, há um sinal “+” onde você precisa clicar. Em seguida, na lista, selecione 2 medidores e atribua-os como Pino Virtual 1 e Pino Virtual 2 para Temperatura Ambiente e Temperatura do Objeto. Você pode reorganizar ou redimensionar o widget na tela de acordo com seu desejo.

Vá para a configuração e clique em Enviar e-mail. O código de autenticação será enviado para o Mail. Este código de autenticação será usado no Código ESP8266.

 

Código Fonte / Programa

O código-fonte / programa para NodeMCU ESP8266, MLX90614 e Blynk é escrito em Arduino IDE. O código requer a Biblioteca MLX90614 para compilação. Além da Biblioteca MLX90614, também requer a Biblioteca Blynk. Portanto, primeiro baixe as bibliotecas do link abaixo e adicione-as à pasta Arduino IDE Library.

1. Baixe a biblioteca Adafruit MLX90614
2. Baixe a Biblioteca Blynk

char auth[] = "bOTy***********115buIiZC";    // Blynk Auth Token 
char ssid[] = "***************";             // Seu SSID WiFi
char pass[] = "***************";             // Sua senha WiFi

Altere o SSID e a senha do Wifi. Além disso, insira o token de autenticação que você obteve do Blynk. Eu adicionei um fator de calibração de 2,36 para calibrar a leitura da temperatura do objeto. Você pode adicionar o seu próprio na parte do código.

O código-fonte completo é fornecido abaixo

#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define BLYNK_PRINT Serial
#include <Blynk.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
 
#define SCREEN_WIDTH 128    // Largura da tela OLED, em pixels
#define SCREEN_HEIGHT 64    // Altura da tela OLED, em pixels
#define OLED_RESET -1       // Redefina o pino # (ou -1 se estiver compartilhando o pino de redefinição do Arduino)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
 
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
 
double temp_amb;
double temp_obj;
double calibration = 2.36;
 
char auth[] = "bOTyO9tRJyp8d0FLY8CoFyW115buIiZC";    // Você deve obter o Auth Token no aplicativo Blynk.
char ssid[] = "Alexahome";                           // Suas credenciais de WiFi.
char pass[] = "loranthus";
 
void setup()
{
  Serial.begin(9600);
  mlx.begin();         //Inicializar MLX90614
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //inicializar com o addr I2C 0x3C (128x64)
  Blynk.begin(auth, ssid, pass);
  
  Serial.println("Sensor de temperatura MLX90614");
 
  display.clearDisplay();
  display.setCursor(25,15);  
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.println(" Termômetro");
  display.setCursor(25,35);
  display.setTextSize(1);
  display.print("Inicializando");
  display.display();
  delay(2500);
}
 
void loop()
{
  // Leitura da temperatura ambiente e temperatura do objeto
  // para ler os valores Fahrenheit, use
  //mlx.readAmbientTempF() , mlx.readObjectTempF() )
  Blynk.run();
  temp_amb = mlx.readAmbientTempC();
  temp_obj = mlx.readObjectTempC();
 
  //Serial Monitor
  Serial.print("Temp Quarto = ");
  Serial.println(temp_amb);
  Serial.print("Temp Objeto = ");
  Serial.println(temp_obj);
 
  display.clearDisplay();
  display.setCursor(25,0);  
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.println(" Temperatura");
  
  display.setCursor(10,20);
  display.setTextSize(1);
  display.print("Ambiente: ");
  display.print(temp_amb);
  display.print((char)247);
  display.print("C");
 
  display.setCursor(10,40);
  display.setTextSize(1);
  display.print("Objeto: ");
  display.print(temp_obj + calibration);
  display.print((char)247);
  display.print("C");
  
  display.display();
  
  Blynk.virtualWrite(V1, temp_amb);
  Blynk.virtualWrite(V2, (temp_obj + calibration));
  
  delay(1000);
}

 

Testando termômetro infravermelho baseado em IoT em Blynk

Depois de fazer upload do código, você pode começar a testar o termômetro infravermelho baseado em IoT. Assim que você faz o upload do código, o display OLED de 0,96 ″ começa a exibir a temperatura ambiente, bem como a temperatura do objeto.

Você pode então verificar seu aplicativo Blynk. O aplicativo Blynk exibirá o valor da temperatura em formato de medidor, conforme mostrado na imagem abaixo.

Portanto, é assim que você pode construir seu próprio termômetro infravermelho baseado em IoT usando o aplicativo MLX90614, ESP8266 e Blynk. Este projeto pode ser melhorado adicionando um Sensor Ultrassônico ao circuito e código para detectar a distância adequada. Você pode usar qualquer outra plataforma IoT, como Thingspeak, Ubidots ou Adafruit IO, caso não queira usar o Blynk.

Visits: 1 Visits: 1200562