低成本便携式红外测温计:Arduino Nano + MLX90614 + Android OTG
项目动机
疫情期间红外测温枪价格飙升、缺货,本项目利用 MLX90614 非接触红外测温传感器、Arduino Nano 与 Android 手机 OTG 供电通信,配合 3D 打印外壳,制作成本极低的便携测温计,配套开源 Android App 显示体温与环境温度。
硬件清单
| 模块 | 数量 | 接口/备注 |
|---|---|---|
| Arduino Nano R3 | 1 | 主控,I2C 引脚 A4(SDA)/A5(SCL) |
| MLX90614ESF-BAA/BAA | 1 | I2C,测量范围 -70~380°C,精度 ±0.5°C |
| Micro USB OTG 线(或自制 Micro USB 公头 + Mini USB 公头) | 1 | 手机供电 + 串口通信 |
| 3D 打印外壳 | 1 套 | GrabCAD: portable-thermometer-box-1 |
| 焊接工具、导线 | 若干 | 将 MLX90614 焊接排针/排母 |
接线原理图

MLX90614 VDD→3.3V, GND→GND, SDA→A4, SCL→A5(Nano I2C 硬件引脚)。
软件准备
- Arduino IDE 安装库:工具 → 管理库 → 搜索 “Adafruit MLX90614 Library” → 安装。
- 测试例程:文件 → 示例 → Adafruit MLX90614 Library → mlxtest,打开串口监视器(9600)观察环境温度与物体温度。
- 烧录正式固件(见下),通过串口协议响应手机 App 指令:收到 `'1'` 开始连续上报,`'0'` 停止。
Arduino 固件
/* Portable Thermometer - OTG Serial Protocol
* 接收 '1' 开始流式输出 "环境温度;物体温度\n",间隔 50ms
* 接收 '0' 停止输出
*/
#include
#include
#define LED 13
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
unsigned long prevMs = 0;
const int interval = 50;
char cmd = 0;
bool streaming = false;
void setup() {
Serial.begin(9600);
mlx.begin();
pinMode(LED, OUTPUT);
}
void loop() {
if (Serial.available() > 0) {
cmd = Serial.read();
if (cmd == '1') { streaming = true; digitalWrite(LED, HIGH); }
else if (cmd == '0') { streaming = false; digitalWrite(LED, LOW); }
}
if (streaming && millis() - prevMs >= interval) {
prevMs = millis();
Serial.print(mlx.readAmbientTempC());
Serial.print(";");
Serial.println(mlx.readObjectTempC());
}
}
Android App 使用
- Google Play 搜索 “Portable Thermometer” 或扫描二维码安装。
- 手机开启 OTG 功能(设置 → 更多连接 → OTG,或插入自动弹窗授权)。
- 插入设备,App 自动检测串口,点击 “Check Now” 读取体温。

3D 打印外壳
下载 GrabCAD 模型,建议 PLA 材料,0.2mm 层高,20% 填充,无需支撑。打印件包含主体、盖板、传感器遮光罩,组装后仅露出 MLX90614 探头与 Micro USB 接口。
注意事项与校准
- 非医疗级:MLX90614 为工业级传感器,未经医疗认证,仅供筛查参考,发烧确诊请用医用体温计。
- 测量距离:探头距额头/手腕 1~3 cm 最佳,避免风吹、阳光直射、汗水影响。
- 环境温度剧变时,传感器需热稳定 5~10 分钟。
- 可在固件中加入偏移校准:`readObjectTempC() + offset`,offset 通过对比医用枪标定获得。
资源汇总
- Arduino 代码、原理图、3D 模型:见原文 CAD 与 Schematics 区
- Android App 源码(Cordova):Play Store 页面
制造工艺
- 移动厕所:历史、设计与环境影响
- 温度计:从伽利略温度计到现代数字传感器的演进
- 树莓派+Node-RED自制Nest风智能恒温器
- 基于模拟传感器的高精度压力与气流测量装置
- ESP8266 Wi-Fi 控制 NeoPixel 火焰灯:安卓 App 无线调节特效
- 设备管理:支撑智能电表百万级规模部署
- 精通E3.cable:连接器插件定位实现最优性能
- 1325八主轴CNC雕刻机:定制多旋转装置批量高效加工
- 选择适配Bluetooth Mesh的设备:硬件、软件与App需求实用指南
- 手持设备利用生物发光现场检测食品中有害大肠杆菌
- C 语言 malloc() 完全指南:语法、实战案例与最佳实践
- C 语言 calloc() 详解:零初始化动态分配原理与实战案例