分享

DF创客社区推荐作品 | 红外测温枪

 老友mk09qda3vs 2022-06-18 发布于天津

进小区、进商店必先测体温。如果每人发一个温度计排队测体温,也不知道这个“测温长龙”要排到什么时候能测完,既不方便又很麻烦,况且多人共用体温计还不卫生。怎么办呢?这就要请出测温“神器”——测温枪了。

说实话喊它“枪”,它自己都不知道去哪里喊冤,怪就怪它样子长得像枪。操作起来,把“枪口”对准脑门,扣动“扳机”, “嘀”一声后,看显示屏,马上就得出了数据。测温枪,学名是“红外线测温仪”或者“红外线辐射测温仪”。它的原理是被动吸收目标的红外辐射能量,从而获得物体温度数值。

Image

制作这个项目需要用到一个 GY-906传感器模块(基于 MLX90614 传感器)。选用这个传感器模块除了因为它使用红外非接触方式测温外,还因为它的通信方式是I2C,主要用到 SDA 和 SCL 两条线。

Image

如图 1 所示,你可以将 GY-906 的测温感应范围视为以传感器为顶点的圆锥体形状。因此,当我们远离测量对象时,感应区域反而增加了。我制作的测温枪中,我在传感器顶部放置了一个激光二极管,以了解传感器当前指向的区域。我发现,如果测温枪指向距离物体 2cm 处,并且随着我们远离而精度下降,则值是可靠的。GY-906 与Arduino 的连接方法如图 2 所示。


Image

图 1  GY-906 的测温感应范围

Image

图 2 GY-906 与 Arduino 的连接方法

OLED 屏因具有小巧、轻薄、耗电低等特点,越来越多地应用于嵌入式电子设备中。OLED 屏 种 类 不 同, 显示的颜色也不同,常用的有白色显示、蓝色显示和黄蓝双色显示。屏幕的尺寸和内置驱动芯片也多种多样,常用的驱动接口有 SPI 和I2C 两种。本制作使用一款 0.96 英寸蓝色I2COLED 屏(见图 3),其内置驱动芯片为 SSD1306。

Image

图 3 OLED 屏

OLED 屏 驱 动 库 非 常 多, 本 次 我使 用 了 两 个 库:Adafruit_SSD1306 和Adafruit_GFX。在Arduino IDE中单击“项 目”→“加载库”→“管理库”,分别查找、选择最新版本进行安装(见图 4)。

Image

图 4 安装 Adafruit_SSD1306 和 Adafruit_GFX 库

由于测温传感器使用了I2接口,所以 OLED 屏不能再使用 I2C 接口了,连接方法如图 5 所示。

Image

图 5 OLED 屏与 Arduino 的连接方法

程序编写


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

Image

Image


Image

Image


Image


Image

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多