使用红外温度传感器制作非接触式红外测温仪

在调试电子电路或测试新硬件设计时,我常会通过触摸来检查电路板上的器件是否异常发热。如果某些东西搞砸了(通常是在第一次尝试中),这些器件可能会达到80°C或更高温度,不仅会烧毁器件,还会烫伤手指。我都不记得被烫伤了多少次了,现在我决定用Arduino和红外线温度传感器来制作属于自己的温度枪。该温度枪将使用一颗名为MLX90614的非接触式温度传感器制作;因此,它不仅可以用于测量元件温度,还可以用于测量体温、表面温度、热通风等等。当然,这些温度测温仪在市场上很容易从Fluke、Flir等着名制造商那里买到。但是它们并不轻巧放在口袋里,最重要的是,自己制作属于自己的小工具才会更加有趣。让我们开始......

所需的材料

● Arduino Pro Mini
● MLX90614红外温度传感器
● OLED显示屏 - SSD1306
● 激光二极管
● 9V电池
● 按钮
● 电池夹
● 连接导线

MLX90614红外测温仪

在继续学习本文之前,了解MLX90614传感器的工作原理非常重要。市场上有许多温度传感器,经常使用的是DHT11传感器和LM35,用于需要测量大气湿度或温度的许多应用。

但是在这里,对于温度枪,我们需要一种能够感知特定物体(不是环境)温度的传感器,并且不会直接与物体接触。为此,我们使用不太常接触到的温度传感器,利用激光或IR红外来计算物体的温度。 MLX90614就是这样一种传感器,它使用红外能量来检测物体的温度。

MLX90614传感器由迈来芯微电子集成系统制造,它内置两个器件,一个是红外热电堆检测器(传感单元),另一个是信号调理DSP器件(计算单元)。它基于Stefan-Boltzmann定律,该定律指出所有物体都发射红外能量,并且该能量的强度将与该物体的温度成正比。传感器中的传感单元测量目标物体发射的IR能量,计算单元使用17位内置ADC将其转换为温度值,并通过I2C通信协议输出数据。传感器测量物体温度和环境温度,以校准物体温度值。 MLX90614传感器的功能如下,有关详细信息,请参阅MLX90614数据手册

MLX90614主要特点:

● 工作电压:3.6V至5V
● 物体温度范围:-70°C至382.2°C
● 环境温度范围:-40°C至125°C
● 分辨率/准确度:0.02°C

传感器和物体之间的距离应该是多少?

数据手册没有直接回答的一个问题是传感器和物体之间的测量距离。该距离的值由术语视场(FOV)给出,对于我们的传感器,视场大约为80°。

如上所示,您可以将感应范围视为传感器点的圆锥形状。因此,当我们远离测量对象时,感应区域增加了两倍。每1cm的含义我们远离物体移动感应区域增长2cm。在我们的温度枪中,我们在传感器顶部放置了一个激光二极管,以了解传感器当前指向的传感区域。我发现,如果枪指向离物体2厘米处,并且随着我们离开时精度下降,则值是可靠的。

电路原理图

红外测温仪的电路图非常简单。完整的电路如下所示,它是使用Fritzing软件创建的。

由于Fritzing软件不支持MLX90614传感器的部件,我们使用了一个注释来提及其连接如上所示,我们也使用红色LED代替激光二极管。整个电路由9V电池通过按钮供电。按下按钮时,9V电池连接到Arduino的RAW引脚,然后使用板载稳压器将其调节至5V。然后,该5V用于为OLED模块、传感器和激光二极管供电。

设计温度枪套管

为了使项目更有趣和实用,我们为温度枪设计3D模型并打印外壳。设计包括两个部分,一个是作为枪体的顶部,包括Arduino控制器、OLED、传感器和激光二极管。另一个是底部,用作容纳电池和按钮的枪的手柄。此处的“按钮”用作触发器。该模型如下所示。

设计文件可从thingiverse下载;您可以使用3D打印机下载设计并打印一个,也可以根据需要进行修改。下载链接如下:Thermal Gun 3D模型。下载文件后,您可以直接开始3D打印设计,也可以根据您的要求进行一些调整。

3D打印外壳

然后将模型保存为STL文件,并使用Cura将其转换为G代码。我用Tevo塔兰图拉打印机打印两个零件,然后将它们拧在一起。如果打印机支持,也可以将这两个部件打印为单件。我的打印的切片设置如下所示

我花了将近6个小时来打印这两个部件,一旦打印出硬件连接,我就可以直接使用7针和4针Relimate连接器(RMC)将导线直接焊接到Arduino引脚,分别用于传感器和OLED显示器。然后使用螺钉将OLED安装在印刷部件中,同时使用热胶安装传感器和激光二极管。然后,电源引脚(Raw、Gnd)通过导线部分向下连接,手柄部分由按钮和电池组成。然后通过按钮将这些电线连接到电池。组装完成后,温度枪如下所示

编程Arduino温度枪

Arduino程序从MLX90614读取温度值并将其显示在OLED显示屏上。幸运的是,由于Adafruit为我们提供了一个可轻松读取MLX90614数据的库,因此该程序非常简单。该库可以从下面的链接下载:Arduino MLX90614库。

该链接将库作为ZIP文件夹下载。下载后,按照Sketch - > Include Library - > Add .ZIP Library命令将其添加到Arduino IDE,然后浏览该ZIP文件的位置。添加库后,我们可以开始编写程序,可以在本页底部找到该项目的完整程序。这里将以小片段进行解释。

和往常一样,我们在程序中首先添加所需的库文件。这里的Wire库(内置)用于使用I2C协议进行通信,SparkFun ML90614库用于与传感器通信。 SPI、GFX和SSD1306库用于与4线SPI协议通信到OLED显示模块。

#include <Wire.h>
#include <SparkFunMLX90614.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

然后,我们定义了OLED连接的引脚。由于该模块与SPI配合使用,因此我们使用了Arduino的SPI引脚。 OLED显示屏也可以使用I2C协议,但我们不能在这里使用I2C,因为I2C引脚已经被温度计传感器占用。

#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

void setup()函数内部,我们初始化用于调试的串行监视器,并使用之前创建的对象therm初始化IR温度传感器。最常用的温度单位是​​摄氏度(摄氏度),因此我们设置了TEMP_C的单位,如果你需要的值是华氏度(F),你也可以将它改为TEMP_F。最后,我们初始化OLED显示屏,然后清除其显示。此外,OLED的屏幕旋转180度,以便于在外壳中安装选项。

void setup()
{
  Serial.begin(9600);
  therm.begin();
  therm.setUnit(TEMP_C);

   display.begin(SSD1306_SWITCHCAPVCC);
   display.clearDisplay();
   display.setRotation(2);
}

loop()函数内部,我们从传感器读取温度值并将其转换为String以显示在OLED显示屏中。我们还在串行监视器上打印了该值以进行调试。我们还增加了一个名为runner的变量,每当温度传感器的值成功更新时,它就会在屏幕上产生一个小动画,这将帮助我们知道读数是否因某种原因而被卡住。

if (therm.read()) // On success, read() will return 1, on fail 0.
  {
    temperature = String(therm.object(), 2);
    Serial.print("Object: ");
    Serial.print(temperature); Serial.println("C");
    display.clearDisplay();
    runner++;
    delay(5);
  }

测试Arduino温度枪

一旦Arduino代码准备就绪,我们可以使用外部TTL编程器或FTDI板将其上传到我们的硬件,因为pro mini没有板载编程器。然后只需按下按钮即可触发温度枪,您将注意到激光束落在物体上,并且OLED屏幕上显示的物体温度如下图所示。在这里,我用它来测量激光束指向的元件温度。

我们还在烙铁、3D打印机喷嘴、冰块等上测试了温度枪,并且观察到令人满意的结果。希望您喜欢这个项目,并在制作项目时学到了一些有用的东西,如果您有任何疑问请在本帖下面进行回复。

原文链接:https://www.yiboard.com/thread-1200-1-1.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容