9 年级 · 从 USB 到现场系统:ESP32 水质监测
整合三个传感器
按照学生学习资料,搭建、测试并记录水质监测系统的当前阶段。
这是预备课程资料,请在老师介绍后开始,目前不是已布置的作业。
本课资料
在线阅读学习资料正文
第 9 课:整合全部三个传感器
接线核查、整合代码与故障排查记录
9 年级 MYP 设计 | 从 USB 到现场系统
| 姓名:__________________ | 班级/小组:__________________ | 日期:__________________ |
| 今日目标 • 整合三个传感器,同时确保供电与信号安全。• 运用有条理的故障隔离方法。 |
关键术语
| 术语 | 操作性定义 |
| 整合 | |
| 引脚定义 | |
| 共地 | |
| 子系统 | |
| 故障隔离 | |
| 假设 | |
| 证据 |
1. 引脚与供电表
| 设备 | 电源 | 地 | 信号引脚 | 附加元件 |
| DS18B20 | 3.3V | GND | GPIO4 | 通过 6.8k 电阻上拉至 3.3V |
| EC 模块 | 3.3V | GND | AO → GPIO1 | T1 不使用 |
| 浊度模块 | 5V | GND | 分压点 → GPIO2 | 10k/20k 分压器 |
2. 整合检查清单
☐ 接线时已断电。
☐ 所有地线连接到同一个共地网络。
☐ 每个传感器都已单独正常工作。
☐ GPIO1、GPIO2 和 GPIO4 与代码一致。
☐ 浊度分压点已测得低于 3.3V。
☐ 原始 12V 未直接接入 ESP32 或传感器。
3. 整合测试代码
| #include <OneWire.h>#include <DallasTemperature.h>#include <DFRobot_EC.h>#include <EEPROM.h>#define DS18B20_PIN 4#define EC_PIN 1#define TURBIDITY_PIN 2OneWire oneWire(DS18B20_PIN);DallasTemperature tempSensor(&oneWire);DFRobot_EC ec;int averageAnalog(int pin) { long total = 0; for (int i = 0; i < 20; i++) { total += analogRead(pin); delay(10); } return total / 20;}void setup() { Serial.begin(115200); EEPROM.begin(32); tempSensor.begin(); ec.begin(); analogReadResolution(12); analogSetPinAttenuation(EC_PIN, ADC_11db); analogSetPinAttenuation(TURBIDITY_PIN, ADC_11db); Serial.println("temp_C,ec_raw,ec_mV,ec_mS_cm,turb_raw,turb_gpio_V");}void loop() { tempSensor.requestTemperatures(); float tempC = tempSensor.getTempCByIndex(0); int ecRaw = averageAnalog(EC_PIN); float ecMV = ecRaw * (3300.0 / 4095.0); float ecMS = ec.readEC(ecMV, tempC); ec.calibration(ecMV, tempC); int turbRaw = averageAnalog(TURBIDITY_PIN); float turbGPIOV = turbRaw * (3.3 / 4095.0); Serial.print(tempC, 2); Serial.print(','); Serial.print(ecRaw); Serial.print(','); Serial.print(ecMV, 1); Serial.print(','); Serial.print(ecMS, 3); Serial.print(','); Serial.print(turbRaw); Serial.print(','); Serial.println(turbGPIOV, 3); delay(2000);} |
4. 首次整合读数
| 读数 | 温度 | EC 原始值 | EC(mS/cm) | 浊度原始值 | 浊度 GPIO 电压(V) |
| 1 | |||||
| 2 | |||||
| 3 |
5. 故障排查记录
| 现象 | 已检查的证据 | 假设 | 所作的一项更改 | 结果 |
| 建议顺序:1)电源电压;2)共地;3)信号电压;4)实际引脚;5)代码引脚定义;6)库/编译信息。每次只改变一项。 |