传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
组件与物料
| Maxim DS18B20 可编程分辨率 1-Wire 数字温度计 | ×1 |
| DHT11 温湿度传感器 (3 引脚) | ×1 |
| 10k Ω 电阻 | ×3 |
| 跳线(若干) | ×10 |
| Adafruit 防水 DS18B20 数字温度传感器 | ×1 |
| 测试探头夹 (鳄鱼夹) | ×3 |
| USB-A 转 Mini-USB 线 | ×1 |
| Arduino UNO | ×1 |
| BBC micro:bit 开发板 | ×1 |
应用与在线服务
- Arduino IDE
- Vittascience 平台 (micro:bit 编程)
项目简介
不同温度传感器精度与局限性各异。健康相关项目需精准获取环境温度与体温,以准确评估健康状态。因此我对比了主流温度传感器及 micro:bit 内置传感器的精度。
实验使用:DS18B20、防水 DS18B20、AM2302 (即 DHT22)、Arduino UNO、micro:bit 及标准温度计为基准。

按原理图连接传感器至 Arduino:

上传 Arduino 代码(见代码部分),micro:bit 使用 Vittascience 平台 (在线编程) 生成代码:

室温测试结果 (10 次实验,展示最具代表性数据)



标准温度计读数 21°C(基准)。micro:bit 读数 27°C,偏差极大。接 Arduino 的三款传感器均较准确,其中 AM2302 精度最高。
体温测试结果 (10 次实验,展示最具代表性数据)
使用延长线将传感器夹持手中测量:
- 标准温度计:**32.2°C**

- micro:bit:**34°C**
- 防水 DS18B20 (第三列):**32.40°C**

- DS18B20 (第一列):**31.50°C**

- AM2302 (第二列):**33°C**

结论
防水 DS18B20 体温测量最精准,适合体温监测;AM2302 室温测量最准,适合环境温度监测。
代码
Arduino 端温度传感器代码 (C/C++)
#include <SoftwareSerial.h>
#include <cactus_io_AM2302.h>
#define AM2302_PIN 3
#include "cactus_io_DS18B20.h"
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
AM2302 dht(AM2302_PIN);
int DS18B20_Pin = 4;
DS18B20 ds(DS18B20_Pin);
void setup() {
Serial.begin(9600);
ds.readSensor();
dht.begin();
sensors.begin();
Serial.println("18B20 | AM2302 | DS18B20");
Serial.println("Temp (C) | Temp (C) | Temp (C)");
}
void loop() {
ds.readSensor();
sensors.requestTemperatures();
dht.readTemperature();
if (isnan(dht.humidity) || isnan(dht.temperature_C)) return;
Serial.print(sensors.getTempCByIndex(0)); Serial.print(" ");
Serial.print(dht.temperature_C); Serial.print(" ");
Serial.println(ds.getTemperature_C());
delay(1500);
}
micro:bit 代码 (Python)
from microbit import *
uart.init(baudrate=9600, bits=8, parity=None, stop=1, tx=pin8, rx=pin14)
while True:
if button_a.is_pressed():
uart.write(str(temperature()))
原理图

制造工艺
- 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
- 树莓派与 Python 构建远程温度传感器:分步实战指南
- BMP180 I2C 气压传感器树莓派接入指南
- 树莓派接入 DS18B20 单总线数字温度计:分步实战指南
- 树莓派读取线性霍尔传感器:Java 指南与 ADC0832 深度解析
- 树莓派多传感器温度光照监测系统:DS18B20 实战构建
- 树莓派 DS18B20 温度传感器测试与 HC-SR04 超声波测距实战
- 树莓派传感器与执行器控制实战:加速度计、舵机与数据流
- 树莓派自动化气雾栽培系统:湿度传感器智能控制
- 验证并校准湿度传感器以实现精准测量
- 数字光照传感器驱动 LED:Windows 10 IoT Core 树莓派实战
- Windows 10 IoT Core 上基于 SHT15 的精准温湿度监测