9 年级 · 从 USB 到现场系统:ESP32 水质监测

使用 DS18B20 测量温度

按照学生学习资料,搭建、测试并记录水质监测系统的当前阶段。

这是预备课程资料,请在老师介绍后开始,目前不是已布置的作业。

本课资料

2 页 · 完整说明、示例与作答区域请见学习资料。

在线阅读学习资料正文

如需查看图示、视觉示例与完整排版,请打开上方的学习单。

第 6 课:使用 DS18B20 数字温度传感器

接线、库、代码与响应测试

9 年级 MYP 设计 | 从 USB 到现场系统

姓名:__________________班级/小组:__________________日期:__________________
今日目标 • 将 DS18B20 接到 GPIO4。• 使用 OneWire 与 DallasTemperature。• 解释上拉电阻的作用。

关键术语

术语操作性定义
数字传感器
OneWire
数据线
上拉电阻
确定状态
库

1. 接线表

ESP32.3V3 -> DS18B20.VCCESP32.GND -> DS18B20.GNDDS18B20.DATA -> ESP32.GPIO46.8kΩ resistor between DS18B20.DATA and ESP32.3V3
检查导线颜色:探头线色并不统一。通电前,请核对随附传感器文档或老师标注的线缆。

2. 库

☐ 安装 Paul Stoffregen 的 OneWire。

☐ 安装 Miles Burton 的 DallasTemperature。

☐ 确认两条 include 语句均能编译。

3. 测试代码

#include <OneWire.h>#include <DallasTemperature.h>#define DS18B20_PIN 4OneWire oneWire(DS18B20_PIN);DallasTemperature sensors(&oneWire);void setup() { Serial.begin(115200); delay(1500); sensors.begin(); Serial.print("Sensors found: "); Serial.println(sensors.getDeviceCount());}void loop() { sensors.requestTemperatures(); float tempC = sensors.getTempCByIndex(0); if (tempC == DEVICE_DISCONNECTED_C) { Serial.println("ERROR: sensor disconnected"); } else { Serial.print("Temperature_C,"); Serial.println(tempC, 2); } delay(2000);}

4. 响应测试

条件时间温度(°C)预期变化方向备注
室温水
较冷的水
较暖的水
恢复至室温

5. 解释

为什么 DATA 数据线需要通过电阻连接到 3.3V?

________________________________________________________________________________________________________________

________________________________________________________________________________________________________________

________________________________________________________________________________________________________________

________________________________________________________________________________________________________________

出现错误值时,你应该首先检查什么?