Arduino Nano + GY-906 非接触红外测温枪制作指南
项目概述
利用 MLX90614(GY-906 模块)红外测温传感器,配合 Arduino Nano、0.96″ OLED 显示屏、激光指示器与 3D 打印外壳,制作一款手持式非接触红外测温仪。测量范围 -70°C ~ 380°C,精度 ±0.5°C,支持触摸按键触发测量与激光辅助瞄准。
材料清单
- Arduino Nano R3 ×1
- GY-906 (MLX90614) 红外测温模块 ×1 – I2C 接口,自带 10kΩ 上拉
- 0.96″ SSD1306 OLED 屏 (I2C) ×1
- 5V 激光发射模块 ×1 – 200Ω 限流电阻
- 触摸按键模块 ×1 – 5kΩ 下拉电阻
- 双控开关 ×1 – 控制 9V 电池供电
- 9V 电池 ×1 + 电池扣
- 3D 打印外壳 (PLA) – Fusion 360 设计,含上下盖、电池仓、传感器窗口
- 焊接工具、热熔胶、螺丝等
电路原理
供电部分
9V 电池经双控开关接入 Arduino Nano VIN/GND,板载稳压器输出 5V/3.3V 供电给 OLED 与 GY-906(均支持 3.3V 逻辑)。
信号连接
| 模块 | 引脚 | Arduino Nano |
|---|---|---|
| OLED / GY-906 | SDA | A4 |
| OLED / GY-906 | SCL | A5 |
| 激光模块 | SIG | D5 |
| 触摸按键 | OUT | D2 |
I2C 总线上两设备并联,各自模块已含上拉电阻,无需外接。
软件实现
依赖库
- Adafruit_SSD1306 – OLED 驱动
- Adafruit_MLX90614 – 红外测温驱动
安装方式:Arduino IDE → 草图 → 包含库 → 管理库 → 搜索安装。
核心代码逻辑
#include <Wire.h>
#include <Adafruit_MLX90614.h>
#include <Adafruit_SSD1306.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
Adafruit_SSD1306 display(128, 64, &Wire, -1);
const int TOUCH_PIN = 2;
const int LASER_PIN = 5;
void setup() {
pinMode(TOUCH_PIN, INPUT);
pinMode(LASER_PIN, OUTPUT);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
mlx.begin();
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("IR Thermometer");
display.display();
delay(2000);
}
void loop() {
if (digitalRead(TOUCH_PIN) == HIGH) {
digitalWrite(LASER_PIN, HIGH);
float objTemp = mlx.readObjectTempC();
float ambTemp = mlx.readAmbientTempC();
display.clearDisplay();
display.setCursor(0,0);
display.print("Obj: "); display.print(objTemp,1); display.println(" C");
display.print("Amb: "); display.print(ambTemp,1); display.println(" C");
display.display();
delay(500);
digitalWrite(LASER_PIN, LOW);
}
delay(100);
}
3D 打印与组装
- 下载 STL 文件(项目主页提供),切片打印上盖、下盖、电池仓盖。
- 上盖预留 OLED 窗口、激光与 MLX906 透镜孔,内部设计导光柱隔离相邻字符光斑。
- 下盖安装 9V 电池、双控开关、触摸按键,预留走线孔连接上盖电路板。
- 将焊好排针的 Arduino Nano、OLED、GY-906、激光模块固定在上盖内部支柱上,热熔胶加固。
- 合盖拧紧,测试开关、触摸、显示、激光指示均正常。
测试与校准
- 室温下测量人体额头/手腕,对比水银体温计误差通常 ≤0.3°C
- 测量热水杯、电烙铁头等高温目标,验证量程上限
- 如系统偏差固定,可在代码中加入线性修正系数
注意事项
- MLX90614 视场角约 90°,测量距离建议 2~5 cm,避免背景辐射干扰。
- 激光仅作指示,勿直视或照射他人眼睛。
- 9V 电池续航约 8~10 小时(间歇使用),可改用 2 节 18650 + 升压模块延长续航。
- 户外强光下 OLED 可视性一般,可考虑改用反射式 LCD 或加遮光罩。
制造工艺
- 温度计:从伽利略温度计到现代数字传感器的演进
- Arduino 与智能手机打造智能电压表——简单易做的 DIY 项目
- Arduino 红外心率传感器 DIY:低成本高精度,串口绘图器实时波形
- DIY VR 滑板:用 Arduino、Google Cardboard 与蓝牙打造虚拟滑雪体验
- 非接触体温筛查闸机:Arduino MKR1000 + 红外测温 + 舵机控制
- Arduino UNO + WiFi 盾板:串口实时推送温度到网页绘图
- DIY Arduino 电子波疗设备 - 基于拉德尼克疗法的 EMR 治疗仪
- 校园智能体温监测系统 - 精准、实时、安全的学生健康守护方案
- DIY二自由度竞速模拟器:Arduino Nano驱动SG90微型舵机
- 精准温控木炭烟熏炉套件:Arduino MKR1000 物联网 BBQ 大师
- Arduino 激光雕刻机:GRBL 固件 + Universal Gcode Sender 全流程实战
- 超低温微型温度计:芯片上实现50 mK精度