0°

非接触式温度测量及显示

简介

你好,欢迎来到这个教程,在这里我将使用MLX90614(GY906)红外非接触式温度传感器,我将它采集到的数据显示到LCDi²c屏幕和OLED显示器上,显示格式分为摄氏度°C和和华氏度°F两种。

工作原理:每个物体根据其热量发射红外波,并且使用热电堆检测这些波,这些热电堆变得更热和更热,同时将多余的热量转换为电。

以下是有关MLX 90614传感器的一些信息:

  • 环境温度范围:-40至125˚C(-40至257°F)
  • 物体温度范围(非接触):-70至380˚C(-94至716°F)
  • 分辨率:0.02°C
  • 精度:环境温度和物体温度均为0.5°C(0-50°C)

您可以将此传感器用于医疗和保健应用,家庭自动化或使用非侵入性方法测量表面

步骤一 材料准备

硬件准备:

必选:MLX 90614传感器

arduino uno开发板

可选:oled显示屏 1602显示屏

软件准备:

arduino 集成开发环境;扩展库函数(见附件);串口软件(可用IDE自带,也可用自己习惯的软件)

步骤二 电路搭建

1.串口显示数据,不采用oled和lcd显示器

2.采用oled显示器显示连接图

3:lcd显示器显示连接图

步骤三 编写程序

1.OLED显示MLX90614采集到的数据

MLX90614_OLED_Fahrenheit.ino Arduino
/* This code works with MLX90614 (GY906) and OLED screen
 * It measures both ambient and object temperature in Fahrenheit and display it on the screen
 */
 
#include 
#include 
#include 
#include 
 
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels
#define OLED_RESET    -1 // Reset pin # (or -1 if sharing Arduino reset pin)
 
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //Declaring the display name (display)
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
 
void setup() {  
  mlx.begin(); 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); //Start the OLED display
  display.clearDisplay();
  display.display();
 
}
 
void loop() {
  display.clearDisplay();
  
  display.setTextSize(1);                    
  display.setTextColor(WHITE);             
  display.setCursor(0,4);                
  display.println("Ambient"); 
  
  display.setTextSize(2);
  display.setCursor(50,0);
  display.println(mlx.readAmbientTempF(),1);
 
  display.setCursor(110,0);
  display.println("F");
  
  display.setTextSize(1);                    
  display.setTextColor(WHITE);             
  display.setCursor(0,20);                
  display.println("Target"); 
  
  display.setTextSize(2);
  display.setCursor(50,17);
  display.println(mlx.readObjectTempF(),1);
  
  display.setCursor(110,17);
  display.println("F");
  
  display.display();
  
  delay(1000);
 
}

2.lcd显示MLX90614采集到的数据

MLX90614_LCD_Celsius.ino Arduino

/* This code works with MLX90614 (GY906) and LCD ic screen

 * It measures both ambient and object temperature in Celsius and display it on the screen

 */

 

#include 

#include 

#include 

 

#define I2C_ADDR 0x27 //I2C adress, you should use the code to scan the adress first (0x27) here

#define BACKLIGHT_PIN 3 // Declaring LCD Pins

#define En_pin 2

#define Rw_pin 1

#define Rs_pin 0

#define D4_pin 4

#define D5_pin 5

#define D6_pin 6

#define D7_pin 7

 

LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

 

void setup() {

 

  mlx.begin();

  lcd.begin (16,2);

  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);

  lcd.setBacklight(HIGH); //Lighting backlight

  lcd.home ();

 

}

 

void loop() {

 lcd.setCursor(0,0);

 lcd.print("Ambient ");

 lcd.print(mlx.readAmbientTempC());

 lcd.print(" C");

 

 lcd.setCursor(0,1);

 lcd.print("Target  ");

 lcd.print(mlx.readObjectTempC());

 lcd.print(" C");

 

 delay(1000);

 

}

步骤四 验证结果

串口显示:

oled显示华氏度wen

lcd显示摄氏度温度

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论