正点原子esp32s3探测土壤湿度
开发板使用:正点原子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输出如下: