获取外部和身体 t°的传感器精度比较
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 10 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
应用和在线服务
| ||||
|
关于这个项目
不同的传感器用于获取温度数据,它们都有不同的局限性和准确性。对于基于健康的项目,获得最精确的外部和体温值非常重要,以便对健康状况和任何建议有一个现实的看法。出于这个原因,我决定比较最流行的温度传感器和 micro:bit 温度传感器的精度。
对于这个项目,我使用了温度传感器 DS18B20、防水 DS18B20、AM2302、arduino 和 micro:bit 板以及标准温度计。
首先,我将传感器连接到 arduino 板(参见原理图部分),这就是它们的连接方式:
然后我上传了arduino板的代码(见代码部分)并使用Vittascience平台(https://en.vittascience.com/microbit/)为这个项目生成代码:
这是我们检查室温时的结果(提供了10个实验,最有代表性的实验数据分析如下):
室温计显示的值为 21°C,我们认为这是最精确的值。 Micro:bit 显示的值为 27°C,与正确值相差甚远。所有三个连接到 arduino 板的传感器在显示室温方面都非常准确,但传感器 AM2302 显示出最高的准确度。
这是我们检查体温时的结果,使用额外的电线能够将传感器保持在我的手中(提供了10个实验,最有代表性的实验数据分析如下):
* 温度计值:32.2°C
* micro:bit 值:34°C
*防水传感器18B20(第三列):32.40°C
* 传感器 DS18B20(第一列):31.50°C
* 传感器 AM2302(第二列):33°C
因此,防水传感器18B20显示出最精确的值,应该用于测量体温,传感器AM2302最适合测量室温。
代码
- arduino 和温度传感器的代码
- micro:bit 代码
arduino 和温度传感器的代码C/C++
#include#include #define AM2302_PIN 3#include "cactus_io_DS18B20.h"#include #include #define ONE_WIRE_BUS 2OneWire oneWire(BUSONE_WIRE);达拉斯温度传感器(&oneWire);AM2302 dht(AM2302_PIN);int DS18B20_Pin =4;DS18B20 ds(DS18B20_Pin);void setup() {Serial.begin(9600); ds.readSensor(); dht.begin();传感器开始(); Serial.println("18B20 | AM2302 | DS18B20"); Serial.println("Temp (C) | Temp (C) | Temp (C)");}void loop() { ds.readSensor();传感器.requestTemperatures(); dht.readTemperature();如果(isnan(dht.湿度)|| isnan(dht.温度_C)){返回; Serial.print(sensors.getTempCByIndex(0)); Serial.print(" "); Serial.print(dht.temperature_C); Serial.print(" "); Serial.println(ds.getTemperature_C());延迟(1500);}
micro:bitPython 的代码
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 (温度()))
示意图
制造工艺