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 ComponentesDescriçãoQuantidade
1NodeMCUESP8266 12E Board1
2IR Temperature SensorSensor de temperatura GY-906 MLX90614 IR1
3OLED Display0.96″ I2C OLED Display1
4Fios de LigaçãoFios de Ligação10
5ProtoBoard1

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.