Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

7.4. Termômetro digital


Termômetro digital

O projeto utiliza placa Arduino Uno R3, Display Oled 0,96 128x64, Módulo Sensor de Temperatura MLX90614, Diodo Laser 5v e uma  Chave Táctil Push-Button para medir a temperatura corporal de pessoas ou objetos por infravermelho. Ao apontar e apertar o Push-Button para uma pessoa/objeto, é emitido um feixe de laser para sinalizar a região cotada. Após, é fornecido a temperatura da pessoa/objeto e do ambiente.

Baixe a biblioteca: Adafruit MLX90614

/* 
Projeto: Termômetro digital 
Autor: André Silveira
Data: 03/04/2020 
*/

#include "Wire.h"
#include "Adafruit_MLX90614.h"                                  // Biblioteca para Sensor de temperatura I2C MLX90614 
#include "Adafruit_GFX.h"                                           // Biblioteca para processamento gráfico
#include "Adafruit_SSD1306.h"                                   // Biblioteca do controlador SSD1306

Adafruit_MLX90614 sensor = Adafruit_MLX90614();     // Cria objeto sensor
Adafruit_SSD1306 display(128, 64);                           // Cria objeto display

int PinoBotao = 8;   				                       // Pino de entrada do Botão 
int PinoLed = 12;        			                       // Pino de saída do LED
boolean status_temperatura = true;

void setup() {

  Serial.begin(9600);
  pinMode(PinoBotao,INPUT_PULLUP);                       // Pino inicializado como INPUT_PULLUP 
  pinMode(PinoLed,OUTPUT); 
    
  delay(100);                                 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);     // Inicializa a tela com endereço I2C "0x3C"
  display.clearDisplay();                                           // Limpa a tela 
  display.setTextColor(WHITE);                                 // Define cor do texto
  display.setRotation(0);                                          // Configura orientação 0
  display.setTextWrap(false);   
  display.setTextSize(1);                                          // Define tamanho da fonte do texto
  display.dim(0);                                                     // Define brilho (0 é máximo)
  sensor.begin();

}

void loop() {

  if (digitalRead(PinoBotao)) {  // Botão foi apertado
      digitalWrite(PinoLed, HIGH);

      if (status_temperatura){
          display.clearDisplay();
          display.setCursor(0,0);                                 
          display.println("Temperatura");  
          status_temperatura = false;
      }
     
      int temp = sensor.readObjectTempC();
      int tempAmb = sensor.readAmbientTempC(); 

      display.setCursor(10, 8);                          // coluna e linha
      display.println("Pessoa: ");  
      display.setCursor(65, 8); 						
      display.print(temp); 				

      display.setCursor(10, 16);                         // coluna e linha
      display.println("Ambiente: ");  
      display.setCursor(75, 16); 						
      display.print(tempAmb); 
    
  } else{
         digitalWrite(PinoLed, LOW);
       	 if (status_temperatura == false){
             display.clearDisplay();
             display.setCursor(0,0);                                 
             display.println("Aponte/aperte botão");    
             status_temperatura = true;
     	 }  
  		 }
    
  display.display();                                    
  delay(1500);       


}

 

[Voltar]

[Avançar]