9 年级 · 从 USB 到现场系统:ESP32 水质监测
使用 DS18B20 测量温度
按照学生学习资料,搭建、测试并记录水质监测系统的当前阶段。
这是预备课程资料,请在老师介绍后开始,目前不是已布置的作业。
本课资料
在线阅读学习资料正文
第 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?
________________________________________________________________________________________________________________
________________________________________________________________________________________________________________
________________________________________________________________________________________________________________
________________________________________________________________________________________________________________
出现错误值时,你应该首先检查什么?