带Arduino的红外测温仪设计

描述

红外测温仪是什么

红外测温仪是一种利用红外辐射原理进行非接触式温度测量的高科技仪器。它通过接收被测物体发出的红外辐射,并将其转换为电信号,进而计算出物体的表面温度。红外测温仪因其非接触、快速、准确、安全等优点,在医疗、工业、农业、科研等多个领域得到了广泛应用。

红外测温仪的结构

红外测温仪主要由以下几个部分组成:

  1. 光学系统 :负责接收被测物体发出的红外辐射,并将其聚焦到红外光电传感器上。光学系统的性能直接影响到红外测温仪的测量精度和范围。
  2. 红外光电传感器 :将接收到的红外辐射转换为电信号。这是红外测温仪的核心部件,其灵敏度和响应速度决定了仪器的测量性能。
  3. 电子电路 :对光电传感器输出的电信号进行放大、滤波、模数转换等处理,以便后续的数字处理和分析。
  4. 微处理器 :对电子电路处理后的信号进行进一步的计算和分析,最终得出被测物体的温度值。微处理器还负责控制仪器的整个测量过程,包括启动、测量、数据处理、显示等。
  5. 显示器 :将测量结果显示给用户。现代红外测温仪通常配备有液晶显示屏,可以直观地显示温度值和其他相关信息。
  6. 电源系统 :为红外测温仪提供电力支持。根据仪器的不同类型和用途,电源系统可以是电池、交流电源或可充电电池等。

红外测温仪的特点

红外测温仪因其独特的测量原理和结构设计,具有以下几个显著特点:

  1. 非接触式测量 :红外测温仪可以在不接触被测物体的情况下进行温度测量,避免了传统接触式测温方法可能带来的污染、损坏或交叉感染等问题。这一特点使得红外测温仪在医疗、食品加工、化工等需要高度卫生和安全性的领域具有独特的优势。
  2. 快速响应 :红外测温仪的响应时间通常非常短,可以在几秒钟甚至更短的时间内完成温度测量。这使得红外测温仪在需要快速筛查体温异常或实时监测温度变化的应用场景中非常有用。
  3. 高精度和高灵敏度 :现代红外测温仪通常采用先进的传感器和信号处理技术,能够实现高精度的温度测量。同时,由于其非接触式测量的特点,红外测温仪还可以测量难以接近或移动的物体的温度,提高了测量的灵活性和准确性。
  4. 广泛的应用范围 :红外测温仪适用于各种材料的温度测量,包括金属、非金属、液体、气体等。此外,它还可以在各种环境条件下进行工作,如高温、低温、潮湿、腐蚀等恶劣环境。这使得红外测温仪在工业生产、科研实验、环境监测等多个领域得到了广泛应用。
  5. 便携性和易用性 :红外测温仪通常体积小巧、重量轻、携带方便。同时,其操作界面简单直观,用户可以通过按键或触摸屏轻松完成测量操作。这使得红外测温仪成为了一种非常实用的便携式测量工具。
  6. 安全性高 :由于红外测温仪采用非接触式测量方式,避免了直接接触被测物体可能带来的安全风险。此外,一些高级的红外测温仪还具备过热保护、过载保护等安全功能,进一步提高了仪器的使用安全性。

红外测温仪的应用

红外测温仪在多个领域得到了广泛应用,以下是一些典型的应用场景:

  1. 医疗领域 :在医疗领域,红外测温仪被广泛应用于体温测量。通过测量人体额头、手腕等部位的表面温度,可以快速筛查出发热患者,为疫情防控提供有力支持。此外,红外测温仪还可以用于手术室、ICU等需要高精度温度监测的场所。
  2. 工业领域 :在工业领域,红外测温仪被用于监测机器设备的运行状态和温度分布情况。通过实时监测设备的温度变化,可以及时发现潜在的故障和安全隐患,提高生产效率和安全性。此外,红外测温仪还可以用于测量高温炉窑、熔融金属等难以接近的物体的温度。
  3. 农业领域 :在农业领域,红外测温仪被用于监测农作物的生长状态和温度环境。通过测量土壤、叶片等部位的表面温度,可以了解作物的生长情况和环境适应性,为农业生产提供科学依据。
  4. 科研领域 :在科研领域,红外测温仪被用于各种物理、化学和生物实验中的温度测量。其高精度和高灵敏度的特点使得它成为科研实验中不可或缺的工具之一。

综上所述,红外测温仪是一种具有非接触式测量、快速响应、高精度和高灵敏度等特点的高科技测量仪器。它在医疗、工业、农业、科研等多个领域得到了广泛应用,并为相关领域的发展提供了有力支持。随着科技的不断进步和应用领域的不断拓展,红外测温仪的性能和应用范围还将不断提高和扩大。

带Arduino的红外测温仪设计

为了测量温度,可以使用不同类型的传感器,如果您想以非接触方式检测温度,那么红外测温仪传感器是首选。 Melexis 的 MLX90614 红外温度计是一款非接触式温度传感设备。

LM35温度传感器的输出取决于传感器装置上的热量下降,但你无法进入火中来检测准确的温度值。该 MLX90614 传感器提供非接触式温度传感。

该传感器内部包含 17 位ADC和强大的 DSP,有助于实现高精度和分辨率,并且该传感器提供两种输出方法:PWM 和 I²C,但这些输出具有分辨率变化,就像如果将输出作为 PWM 则采用 10 位PWM 输出提供 0.14 ℃ 的分辨率,I²C 方法提供 0.02 ℃ 的分辨率。

MLX90614 在宽温度范围内进行了工厂校准,环境温度为 -40 ℃ 至 85 ℃,物体温度为 -70 ℃ 至 382.2 ℃。

红外测温仪如何工作?

我们知道每个物体都会发出红外线,其浓度随温度而变化,但这些红外线是人眼看不见的。通过检测红外线,我们可以量化温度范围。顺便说一句,MLX 90614 温度计传感器也可以工作。

该传感器有两个部分,即 1. 热电堆检测器(负责将热能转换为电能),2. 信号调节部分(处理来自热电堆检测器的信号并使其成为外部外围设备可读的信号)。

信号调节部分具有 17 位 ADC 模块,用于转换热电堆检测到的信号,校准 DSP(数字信号处理)模块在输出信号通过 PWM 和 I²C/TWI 端子后对整个信号进行量化。

应用电路

MLX 90614 温度计传感器是即插即用设备,因此我们可以直接连接警报设备并轻松制作热报警设备。

红外测温仪

接口 MLX90614

微控制器具有 I2C 通信方式来与外部外围设备连接,MLX90614 温度计还具有 I2C 通信线,因此我们可以将该传感器与微控制器连接,而无需任何额外的电路。

红外测温仪

传感器使用 3.3V直流电源工作,如果微控制器使用 5V 直流电源工作,那么我们需要在 SDA 和 SCL 线路之间连接上拉电阻至 +3.3V 直流线路。

MLX90614 带 Arduino 的温度计

红外测温仪

Arduino 板具有 I²C 通信线路,并且可以通过线头文件轻松与 I²C 连接。本文以 Arduino uno 板为例,如果您使用不同的 Arduino 板并想了解 I²C 线。

如图所示连接传感器,并从 Arduino 板向传感器提供 +3.3V 直流电源。这里使用 4.7KΩ 电阻器通过 I²C 线路提供上拉。

红外测温仪Arduino代码

/****************************************************MLX90614 ------------- Arduino  VDD ------------------ 3.3V  VSS ------------------ GND  SDA ------------------ SDA (A4 on older boards)  SCL ------------------ SCL (A5 on older boards)*****************************************************/

#include < Wire.h > // I2C library, required for MLX90614
#include < SparkFunMLX90614.h > // SparkFunMLX90614 Arduino library

IRTherm therm; // Create an IRTherm object to interact with throughout

const byte LED_PIN = 8; // Optional LED attached to pin 8 (active low)

void setup() 
{
  Serial.begin(9600); // Initialize Serial to log output
  therm.begin(); // Initialize thermal IR sensor
  therm.setUnit(TEMP_F); // Set the library's units to Farenheit
  // Alternatively, TEMP_F can be replaced with TEMP_C for Celsius or
  // TEMP_K for Kelvin.
  
  pinMode(LED_PIN, OUTPUT); // LED pin as output
  setLED(LOW); // LED OFF
}

void loop() 
{
  setLED(HIGH); //LED on
  
  // Call therm.read() to read object and ambient temperatures from the sensor.
  if (therm.read()) // On success, read() will return 1, on fail 0.
  {
    // Use the object() and ambient() functions to grab the object and ambient
	// temperatures.
	// They'll be floats, calculated out to the unit you set with setUnit().
    Serial.print("Object: " + String(therm.object(), 2));
    Serial.write('°'); // Degree Symbol
    Serial.println("F");
    Serial.print("Ambient: " + String(therm.ambient(), 2));
    Serial.write('°'); // Degree Symbol
    Serial.println("F");
    Serial.println();
  }
  setLED(LOW);
  delay(500);
}

void setLED(bool on)
{
  if (on)
    digitalWrite(LED_PIN, LOW);
  else
    digitalWrite(LED_PIN, HIGH);
}
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分