Menu
CoddyTech

植物监测器:湿度

本课属于 Coddy Arduino 学习旅程的“项目”单元。第 17 课,共 24 课。

这个项目会监测室内植物:土壤的湿度、表示干燥、适中或湿润的彩灯、土壤持续干燥时响起的警报,以及屏幕上的报告。

实际搭建时,要把土壤湿度传感器插入花盆。传感器会输出随土壤湿度变化的电压,通过 analogRead() 读取。模拟器里没有土壤,所以用 A0 上的电位器(旋钮)代替:向下调表示土壤干燥,向上调表示土壤湿润。无论哪种情况,草图都相同。

百分比比 0 到 1023 更容易读懂:0% 表示干透了,100% 表示湿透了。map() 会将一个范围转换为另一个范围:

int reading = analogRead(A0);
int moisture = map(reading, 0, 1023, 0, 100);

土壤需要数小时才会变干,所以每秒读取一次就足够了。

challenge icon

挑战

简单

测量土壤湿度:

  • 编写 readMoisture():读取 A0,并使用 map() 返回湿度百分比
  • 在 loop() 中,将湿度打印为 Moisture: 42%,然后等待 1000 ms

按“运行”,转动旋钮,然后按“检查”。

亲手试试

// 用旋钮代替土壤湿度传感器
const int sensorPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  // 读取传感器的值,转换成百分比并打印出来,然后等待一秒

}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

项目中的所有课

自己练习: Arduino 在线编辑器