Guia de como usar o Sensor de Temperatura Ir Mlx90614 em Arduino com Exemplos em Display Oled

Tempo de leitura: 3 minutes

Neste guia, conectaremos um MLX90614 ao nosso Arduino e exibiremos a saída em uma tela LCD OLED 128 x 32 I2C, você poderia usar um tipo diferente de LCD ou uma variedade maior de OLED, mas é isso que temos em mãos aqui

O MLX90614 é um termômetro infravermelho para medições de temperatura sem contato. Tanto o chip detector de termopilha sensível a infravermelho quanto o ASIC de condicionamento de sinal estão integrados na mesma lata do TO-39. Integrados ao MLX90614 estão um amplificador de baixo ruído, ADC de 17 bits e uma unidade DSP poderosa, alcançando assim alta precisão e resolução do termômetro.

O termômetro vem calibrado de fábrica com uma saída SMBus digital que dá acesso total à temperatura medida na (s) faixa (s) de temperatura completa (s) com uma resolução de 0,02°C.

O usuário pode configurar a saída digital como modulação por largura de pulso (PWM). Como padrão, o PWM de 10 bits é configurado para transmitir continuamente a temperatura medida na faixa de -20 a 120°C, com uma resolução de saída de 0,14°C.

Usei um módulo para MLX90614, veja os links na parte inferior, mas aqui está uma foto de um típico

Campo de Visão do Sensor

Se desejar saber mais sobre o Sensor MLX90414 veja no Datasheet aqui.

Agora, tanto o display OLED quanto o MLX90614 são dispositivos I2C e ambos requerem 3,3v e GND, então a ligação é bastante direta para este projeto. Aqui está um layout elaborado em fritzing para lhe dar uma ideia geral

Código

Este exemplo requer algumas bibliotecas, o que torna o desenvolvimento um pouco mais fácil. Ambos são da Adafruit e são as bibliotecas MLX90614 e SSD1306, usando IDEs do Arduino mais recentes, você pode pesquisá-los, mas aqui estão os links se precisar baixá-los e importá-los manualmente

MLX90614 library

SSD1306 library

#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <stdint.h>
#include <Adafruit_MLX90614.h>
 
#define OLED_RESET 4
 
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
 
#if (SSD1306_LCDHEIGHT != 32)
#error("Altura incorreta, corrija Adafruit_SSD1306.h!");
#endif
 
void setup()   
{                
  Serial.begin(57600);
  Serial.println("Teste Adafruit MLX90614");  
  mlx.begin();  
  // inicializar com o addr I2C 0x3C (para 128x32)
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);  
}
 
 
void loop() 
{
  // Limpe o buffer.
  display.clearDisplay();
 
  // testes de exibição de texto
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0,0);
  display.print("Ambiente: ");
  display.print(mlx.readAmbientTempC()); 
  display.print(" c");
  display.setCursor(0,10);
  display.print("Objeto: ");
  display.print(mlx.readObjectTempC()); 
  display.print(" c");
  display.display();
  delay(2000);
 
}

 

Resultado

Agora tudo está indo bem, você deve ver algo assim no seu display OLED

Ao aproximar com seu dedo ou objeto emitindo calor, você poderá ver a variação do objeto.

Espero que você tenha achado este guia útil e informativo. Seja tipo, compartilhe com um amigo que também gosta de eletrônicos e outras coisas!

Você adoraria saber quais projetos você planeja construir (ou construir) com este monitor. Se você vir alguma dúvida, sugestão, ou souber que algo está faltando neste guia, por favor, deixe um comentário abaixo.

 

Visits: 2 Visits: 1199148