亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

传感器精度评测:环境温度与体温测量对比 (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

应用与在线服务

项目简介

不同温度传感器精度与局限性各异。健康相关项目需精准获取环境温度与体温,以准确评估健康状态。因此我对比了主流温度传感器及 micro:bit 内置传感器的精度。

实验使用:DS18B20、防水 DS18B20、AM2302 (即 DHT22)、Arduino UNO、micro:bit 及标准温度计为基准。

传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)

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

传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)

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

传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)

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

传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)

标准温度计读数 21°C(基准)。micro:bit 读数 27°C,偏差极大。接 Arduino 的三款传感器均较准确,其中 AM2302 精度最高。

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

使用延长线将传感器夹持手中测量:

传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)
传感器精度评测:环境温度与体温测量对比 (DS18B20/DHT11/AM2302/micro:bit)

结论

防水 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/DHT11/AM2302/micro:bit)

制造工艺

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