O Termômetro Infravermelho com Arduino Nano e Mira Laser é um projeto desenvolvido com o intuito de proporcionar aos makers de plantão o projeto de uma pistola MDF para a verificação em tempo real da temperatura.
Desenvolvido de maneira simples e completa, o projeto do termômetro infravermelho possibilita ao usuário uma verificação imediata da temperatura uma vez que integra ao projeto um display OLED de 0,96’’.
A verificação da temperatura por sua vez, é realizada através do sensor de temperatura MLX90615 ao qual está posicionado estrategicamente junto de um laser de alta potência, porém vale ressaltar que não é este laser que realiza a verificação, apenas possibilita uma “mira”.
Desenvolvido através de um Arduino Nano, o Termômetro Infravermelho possibilita uma produção mais compacta, de fácil manuseio, transporte e armazenagem, um projeto de fácil conexão e programação, uma vez que conta apenas com equipamentos de comunicação I2C.
Sensor de Temperatura Infravermelho MLX90615
O Sensor de Temperatura IR se destaca pelo seu tamanho compacto e a sua comunicação I2C que possibilita a conexão de diversos equipamentos nos mesmos dois pinos base do Arduino.
Além da capacidade de realizar a verificação da temperatura no objeto ao qual seu feixe infravermelho é direcionado, o Sensor IR consegue também verificar a temperatura do ambiente ao qual encontrasse, melhorando ainda mais a sua qualidade de funcionamento.
Ideal para utilização nos mais diversificados projetos de medição de temperatur a, o sensor de temperatura infravermelho possibilita a verificação de objetos, líquidos e materiais afins sem a necessidade de contato via sonda, por exemplo.
Para maiores informações sobre este produto e seu funcionamento clique na imagem abaixo para ter acesso ao correspondente artigo desenvolvido com o Sensor de Temperatura IR MLX90615.
Display OLED 0.96’’ I2C 128×64
Este pequeno Display OLED Monocromático possui 128 pixels de largura e 64 pixels de altura, medindo um total de 0,96 polegadas. Mesmo em dimensões pequenas, a tela OLED apresenta caracteres bastante legíveis através do seu contraste que dispensa a necessidade da luz de fundo.
Assim como o sensor de temperatura utilizado neste projeto, o Display em questão utiliza-se da comunicação I2C para realizar o seu funcionamento, desta maneira, utiliza os mesmos dois pinos do sensor de temperatura, o que facilita e simplifica o esquema de ligação.
Destacando-se dos demais dispositivos que possuem compatibilidade apenas com equipamentos de comunicação 5V, o Display OLED 0.96’’ pode ser utilizado também em equipamentos de 3,3V como o ESP32 sem a necessidade de um conversor de nível lógico.
Produtos Utilizados no Termômetro Infravermelho
Abaixo seguem todos produtos utilizados no desenvolvimento do projeto, os quais pode ser adquiridos de forma avulsa conforma listagem. Se você quiser, pode adquirir a versão do Termômetro Infravermelho Completa, o qual já possui todas as peças necessárias para montagem.
1 x Arduino Nano V3;
1 x Cabo Mini USB 1,2m para Arduino NANO;
1 x Case em MDF para Termômetro Infravermelho Arduino TI100;
1 x Display OLED 0.96″ I2C 128×64 Branco para Arduino;
1 x Sensor de Temperatura Infravermelho IR MLX90615 Slim;
1 x Laser Arduino Vermelho 12mm 5mW de Alta Potência;
1 x Conector Clip de Bateria 9V;
1 x Interruptor Liga/Desliga tipo Gangorra 10A/120 6A/250V;
10 x Mini Parafuso M1.6 x 8mm Metálico;
10 x Mini Porca M1,6 x 1,5mm Metálica;
1 Kit Jumper Premium para Protoboard Fêmea-Fêmea 20 cm.
Esquema de Ligação Termômetro Arduino
O esquema de ligação do Termômetro Infravermelho com Arduino Nano é bastante simples, além dos fios de alimentação, apenas dois pinos de comunicação são utilizados, porém isto necessita que ligamos mais de um fio em cada pino do Arduino.
Tendo em vista que este é um projeto que visa a redução de espaço, não utilizamos pinos nem nos sensores nem no Arduino, todos os fios foram soldados diretamente nos terminais.
O laser, diferente do sensor e do display é apenas alimentado pelo Arduino, não passa por nenhum pino de comunicação, então é acionado diretamente assim que alimentado o Arduino, alimentação esta que é realizada através de uma bateria 9V junto ao pino Vin.
Seguindo o esquema de ligação acima facilmente conseguimos desenvolver o nosso projeto, porém um dos fatores que dificulta este procedimento é a alocação de todos os sensores, módulos e fios dentro do case, procedimento que deve ser realizado com calma e cuidado.
Montagem do Termômetro Infravermelho
Tendo em vista a necessidade de reduzir os espaços de instalação do projeto, o Arduino Nano, o Display e o Sensor de Temperatura são integrados ao projeto sem suas barras de pinos utilizadas normalmente para a conexão dos jumpers.
Esta ausência dos pinos por sua vez, resulta na necessidade de soldagem dos fios junto aos respectivos produtos citada anteriormente.
Do Arduino, utilizamos para comunicação, apenas os pinos A4 e A5, pinos de comunicação I2C, responsáveis pela leitura de endereços e reconhecimento de valores. O Arduino Nano diferente do Arduino UNO por outro lado, possui apenas dois pinos de comunicação I2C, ou seja, ambos os dispositivos utilizados devem ser conectados nos mesmos pinos.
A alimentação do Arduino e consequentemente dos demais dispositivos é realizada através de uma bateria 9V, facilmente substituída uma vez que é conectada ao clip adaptador de baterias.
O clip para conexão da bateria não é fixo, ou seja, a bateria não possui exatamente um local específico para instalação, porém o melhor local após alguns testes é o que podemos ver através da imagem abaixo:
Após alocarmos a bateria, já podemos encaixar as demais peças do nosso Termômetro Infravermelho, abaixo podemos observar o seu posicionamento antes de incluirmos a tampa lateral do case, veja:
A instalação do case é extremamente fácil, possui seus encaixem todos alinhados e firmes, porém em alguns casos, é possível a colagem de algumas das peças com cola de secagem rápida, por exemplo, para garantir melhor estabilidade.
Para facilitar a usabilidade do nosso Termômetro Infravermelho e possibilitar a sua programação mesmo após instalação, a sua conexão USB está disposta de maneira acessível na parte inferior do Case, basta remover a tampa como mostra a imagem abaixo:
Com isto, finalizamos a montagem do nosso Termômetro Infravermelho e o temos pronto para realizar a programação e aproveitarmos as suas funções. Vale ressaltar neste processo de montagem que o laser é apenas encaixado via pressão, não possui parafusos e nenhum outro tipo de fixação.
Scanner I2C para Leitura de Endereços
Por estarmos trabalhando com dois equipamentos de comunicação I2C e que possuem endereços próprios para estabelecer a sua comunicação, é normal por hora termos que descobrir qual o endereço de nossos dispositivos.
Em alguns casos, os produtos podem ter endereços incompatíveis e como nomeamos o endereço dos dispositivos em nosso código, por vezes vale realizar a leitura do endereço dos sensores através do código abaixo antes de carregar o código final.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
// Scanner I2C Arduino – Projeto Relógio Arduino com Despertador #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); Serial.println("Scanner I2C"); } void loop() { byte erro, endereco; int dispositivos; Serial.println("Procurando Dispositivo I2C ..."); dispositivos = 0; for (endereco = 1; endereco < 127; endereco++ ) { Wire.beginTransmission(endereco); erro = Wire.endTransmission(); if (erro == 0) { Serial.print("Dispositivo I2C encontrado. Endereco 0x"); if (endereco < 16) Serial.print("0"); Serial.print(endereco, HEX); Serial.println(" !"); dispositivos++; } else if (erro == 4) { Serial.print("Erro desconhecido no Endereco 0x"); if (endereco < 16) Serial.print("0"); } } if (dispositivos == 0) Serial.println("Nenhum dispositivo I2C encontrado\n"); else Serial.println("Scanneamento Concluido\n"); while(Serial); } |
Após o escaneamento, temos os parâmetros necessários para verificar em nosso código se os endereços utilizados são realmente os mesmo. Este é um procedimento bem importante também para quem deseja incluir outros dispositivos I2C.
Código de Funcionamento do Termômetro Infravermelho
O código de funcionamento torna-se bastante simples uma vez que configura a maioria de funções através das bibliotecas incluídas logo no início do projeto, as bibliotecas SPI.h e Wire,h incluídas logo no início já vem instaladas junto ao software Arduino.
Para o funcionamento do Sensor de Temperatura Infravermelho, incluímos a biblioteca SparkFunMLX90614.h, responsável por auxiliar no seu funcionamento e na conversão dos valores que iremos utilizar em nosso Termômetro com Arduino Nano.
Biblioteca SparkFunMLX90614.h: DOWNLOAD AQUI.
Já para o funcionamento do display, para possibilitar a definição direta de comandos como tamanho da fonte posição na tela e demais funções utilizadas no código, utilizamos duas bibliotecas, a Adafruit_GFX.h e a Adafruit_SSD1306.h.
Biblioteca Adafruit_GFX.h: DOWNLOAD AQUI.
Biblioteca Adafruit_SSD1306.h: DOWNLOAD AQUI.
Com as bibliotecas baixadas e incluídas na pasta libraries do software Arduino, podemos dar continuidade ao nosso projeto sem problema, segue código completo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
// Código de Funcionaemnto Termômetro Arduino #include <SPI.h> #include <Wire.h> #include <SparkFunMLX90614.h> // Biblioeca do Sensor Infravermelho #include <Adafruit_GFX.h> // Biblioteca do Display OLED #include <Adafruit_SSD1306.h> // Biblioteca do Display OLED IRTherm temperatura; Adafruit_SSD1306 display = Adafruit_SSD1306(); void setup() { temperatura.begin(0x5A); // Inicia o Sensor no endereço 0x5A temperatura.setUnit(TEMP_C); // Define a temperatura em Celsius display.begin(0x3C); // Inicia o Display no endereço 0x3C display.setTextColor(WHITE); // Define a cor dos caracteres display.clearDisplay(); // Limpa o Display display.setCursor(0, 10); // Posiciona o cursor display.setTextSize(2); // Define tamanho da fonte display.println(" USINAINFO "); // Imprime ... display.display(); delay(2000); // Aguarda 2 segundos display.clearDisplay(); // Limpa o Display } void loop() { if (temperatura.read()) { display.setCursor(0, 0); // Posiciona o cursor display.setTextSize(1); // Define tamanho da fonte display.print("Objeto: " + String(temperatura.object(), 2)); display.println(" Graus"); // Imprime ... display.println(""); // Cria uma linha em branco display.print("Ambiente: " + String(temperatura.ambient(), 2)); display.print(" Graus"); // Imprime ... display.display(); delay(2000); // Aguarda 2 segundos display.clearDisplay(); // Limpa o Display } delay(1500); } |
Antes de carregar o código lembre-se de selecionar a porta COM correspondente e também o microcontrolador Arduino Nano, caso contrário o processo de compilação irá exibir uma mensagem de erro e não irá carregar o código.
Após carregar o código em nosso Arduino Nano, podemos desconectar o cabo USB e aproveitarmos a facilidade de um projeto portátil, por ter incluído internamente uma bateria 9V, podemos levar nosso termômetro infravermelho para qualquer lugar.
Ao ligarmos nosso projeto, ele irá executar uma única vez a função setup(), a qual irá iniciar limpando a tela e eliminando a logo padrão da biblioteca e imprimir na tela a palavra Usinainfo por um período de 2 segundos, como um processo de inicialização da leitura.
Após realizar a sua inicialização, o display irá exibir duas informações:
“Objeto:” – Esta informação demonstra a temperatura do objeto em contato com o sistema infravermelho do Sensor de Temperatura.
“Ambiente:” – Esta informação por sua vez, apresenta a temperatura do ambiente ao qual o sensor está sendo utilizado.
Para este procedimento de verificação de temperatura vale ressaltar que o laser é utilizado apenas para indicar posição, não é ele quem realiza a verificação da temperatura, é o sensor posicionado logo acima que realiza esta função.
Para realizar a leitura, o Sensor MLX90615 não pode estar muito longe do objeto ou local de medição, quanto mais perto maior a precisão do valor, mas não é recomendado o toque do sensor neste local. Veja abaixo como é exibido no display:
As verificações de temperatura são feitas, como descrito no artigo, em graus célsius, por isto na tela, os valores são exibidos nesta mesma unidade de verificação.
Conclusão
O Termômetro Infravermelho com Arduino Nano é um projeto bastante simples e que possui uma finalização incrível, o resultado final é de um projeto profissional e os resultados obtidos são bastante fiéis à temperatura real.
Além de uma fácil conexão, o Termômetro IR possui um código bastante simples e de fácil adaptação, quem desejar, pode trabalhar com apenas um temperatura por vez nas diferentes escalas, como a temperatura do objeto em Célsius e Fahrenheit.
Este é um projeto que pode ser desenvolvido para o uso cotidiano das pessoas uma vez que possibilita a verificação da temperatura de componentes em circuitos eletrônicos e até dentro da cozinha, verificando a temperatura da agua e demais elementos de utilização diária.
Não esqueça de deixar a seu comentário sobre este projeto, comente o que achou, se acha que melhorias podem ser feitas e as experiências que tiveram desenvolvendo o Termômetro Infravermelho com Arduino Nano.
Os links para downloads das bibliotecas “DOWNLOAD AQUI” não funcionam!
Biblioteca SparkFunMLX90614.h: DOWNLOAD AQUI.
Biblioteca Adafruit_GFX.h: DOWNLOAD AQUI.
Biblioteca Adafruit_SSD1306.h: DOWNLOAD AQUI.
Boa Tarde d4rkst4lk! Já foi corrigido este problema, pode realizar o download normalmente agora. Muito Obrigado!
Projeto Show!
Poderia informar o custo total do projeto?
Bom Dia Daniel! O produto completo assim como o seu valor você encontra através do seguinte link: https://www.usinainfo.com.br/kit-robotica-educacional/termometro-infravermelho-arduino-oled-com-mira-laser-completo-mdf-ti100-5976.html
boa noite
voce poderia me informar qual a distancia maxima que ele mede? preciso de um sensor para arduino ou raspberry que capte uma distancia de 1 metro
Boa Noite Joelson! A distância do corpo em análise e o Sensor de Temperatura não pode ser muito elevada, ou seja, os materiais são colocados próximos ao equipamento para realizar a medição com precisão.
Boa tarde amigo, excelente projeto, parabéns!!!
Uma pergunta, qual é a máxima distância que esse termômetro realiza a leitura?? Ou seja, existe uma curva de relação entre distância e temperatura que possa utilizar?
Atenciosamente.
Bom Dia Rafael! O sensor de Temperatura infravermelho trabalha com um ângulo de verificação fixo, teoricamente este ângulo é relativamente alto e consequentemente a verificação em distâncias mais elevadas não proporciona a precisão do objeto verificado.
Olá, boa tarde, desculpe pelo transtorno, sou um novato nisso, mas gostaria de saber todo o programa de sensores de temperatura com o MLX90615 que você implementou, desculpe-me novamente se tiver coragem de solicitar esse código, vou usá-lo para medir a temperatura dos meus aprendizes em uma escola muito pobre Aqui na Colômbia, obrigado por sua resposta e colaboração.
Boa Tarde Edison! O código completo está disponível no corpo do Artigo junto subtítulo “Código de Funcionamento do Termômetro Infravermelho”.
Boa noite. Este sensor teria precisão suficiente para fazer um termostato? Preciso controlar a temperatura de um recipiente com parafina e poderia me ser muito útil. Aqui mesmo no UsinaInfo vcs tem o projeto do termostato com sensor DS18B20, mas, não sei se ele resistiria à parafina líquida. Obrigado.
Olá, teria algum problema se eu usasse um arduino uno ao invés do arduino nano v3?
Olá Vih! É possível incluir um Arduino Uno ao projeto, porém não seria possível utilizar o case MDF devido ao espaço de instalação e também seriam necessárias algumas alterações, como pode ver através do seguinte artigo: https://www.usinainfo.com.br/blog/sensor-de-temperatura-arduino-no-projeto-termometro-infravermelho-mlx90615/
Teria como adaptar esse código para python?
Olá Lucas! A programação em Python é um pouco diferente, você pode utilizar a lógica para tentar desenvolver algo na linguagem que deseja, porém os comandos e a estrutura seriam diferentes.
Lindo…simplismente lindo!
Tanto o projeto quanto a apresentação, são dignos de aplausos…parabens!
Olá Valdr! Fico feliz que tenha gostado do meu trabalho, continue acompanhando as novidades que estamos lançando.
Boa tarde, consigo ligar 4 sensores em um arduino nano ou em um arduino uno pra mostrar 4 temperaturas?
Bom dia, Fernando!
É possível sim, mas é necessário mudar o endereço I2C dos sensores para não haver conflito. Como demonstra nesse artigo:
https://www.instructables.com/Multiple-IR-Temperature-Sensors/
Consegui fazer ler 4 sensores ao mesmo tempo, agora vou passar pra um display as informações, obrigado.