开发板使用:正点原子ATK_DNESP32S3 V1.3
IDE: VSCODE + PLATFORMIO
土壤湿度检测传感器模块如下图:

引脚:
传感器VCC --> ESP32[3.3V]
传感器GND --> ESP32[GND]
传感器A0 --> ESP32[GPIO20]
代码如下:
#include <Arduino.h>
const int SOIL_MOISTURE_SENSOR_PIN = 20; // GPIO20
// 更新为ESP32-S3的合理阈值(12位ADC 0-4095)
const int DRY_VALUE = 3500; // 完全干燥时的值(需校准)
const int WET_VALUE = 1500; // 完全湿润时的值(需校准)
void setup() {
Serial.begin(115200);
Serial.println("土壤湿度监测系统启动");
}
void loop() {
int sensorValue = analogRead(SOIL_MOISTURE_SENSOR_PIN);
// 反转映射方向(值高=干燥→百分比低)
int moisturePercentage = map(sensorValue, DRY_VALUE, WET_VALUE, 0, 100);
moisturePercentage = constrain(moisturePercentage, 0, 100);
// 使用百分比判断状态
String status;
if (moisturePercentage < 30) {
status = "干燥";
} else if (moisturePercentage > 70) {
status = "湿润";
} else {
status = "正常";
}
Serial.print("原始值: ");
Serial.print(sensorValue);
Serial.print(" | 湿度百分比: ");
Serial.print(moisturePercentage);
Serial.print("% | 状态: ");
Serial.println(status);
delay(1000);
}
传感器VCC --> ESP32[3.3V]
传感器GND --> ESP32[GND]
传感器A0 --> ESP32[GPIO20]
运行后,terminal输出如下:


694

被折叠的 条评论
为什么被折叠?



