ESP32 토양 습도 센서 펌프
이 튜토리얼에서는 ESP32를 사용하여 용량성 토양 수분 센서에서 읽은 값에 따라 펌프를 제어하는 방법을 배우게 됩니다.
준비물
| 1 | × | 38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow | 쿠팡 | 아마존 | |
| 1 | × | (또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 쿠팡 | 아마존 | |
| 1 | × | (또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 아마존 | |
| 1 | × | (또는) ESP32 Uno-form board | 아마존 | |
| 1 | × | (또는) ESP32 S3 Uno-form board | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 용량성 토양 수분 센서 | 쿠팡 | 아마존 | |
| 1 | × | 릴레이 | 아마존 | |
| 1 | × | 12V 펌프 | 쿠팡 | 아마존 | |
| 1 | × | Vinyl Tube | 아마존 | |
| 1 | × | 12V 전원 어댑터 | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
토양 수분 센서 및 펌프에 관하여
펌프와 토양 수분 센서(핀배열, 작동 방식, 프로그래밍 방법 등)에 대해 잘 모른다면, 다음 튜토리얼에서 배워보세요:
- ESP32 - 토양 수분 센서 튜토리얼
- ESP32 - 펌프 제어 튜토리얼
작동 원리
ESP32는 주기적으로 정전 용량식 토양 수분 센서에서 값을 읽습니다. 토양의 수분 값에 따라 다음과 같은 조치를 취할 것입니다:
- 만약 토양 수분 값이 임계값보다 낮으면, ESP32는 자동으로 릴레이를 활성화해 펌프를 켭니다.
- 그렇지 않으면, ESP32는 자동으로 릴레이를 비활성화해 펌프를 끕니다.
선연결

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
ESP32 코드
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-soil-moisture-sensor-pump
*/
#define RELAY_PIN 17 // ESP32 핀 GPIO17이 릴레이에 연결됩니다
#define MOISTURE_PIN 36 // ESP32 핀 GPIO36 (ADC0)이 수분 센서의 AOUT 핀에 연결됩니다
#define THRESHOLD 2800 // => 여기서 당신의 임계값을 변경하세요
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
int value = analogRead(MOISTURE_PIN); // 토양 수분 센서에서 아날로그 값을 읽습니다
if (value > THRESHOLD) {
Serial.print("The soil moisture is DRY => activate pump");
digitalWrite(RELAY_PIN, HIGH);
} else {
Serial.print("The soil moisture is WET=> deactivate the pump");
digitalWrite(RELAY_PIN, LOW);
}
Serial.print(" (");
Serial.print(value);
Serial.println(")");
delay(1000);
}
사용 방법
- ESP32를 처음 사용하는 경우, ESP32 - 소프트웨어 설치을 참조하세요.
- 젖은 상태와 건조한 상태의 기준값을 결정하기 위해 보정 작업을 수행하세요. ESP32 - 토양 수분 센서를 참조하세요.
- 보정된 값을 코드의 THRESHOLD에 업데이트하세요.
- Arduino IDE에서 시리얼 모니터를 엽니다.
- 코드를 ESP32로 업로드하세요.
- 시리얼 모니터에서 결과를 확인하세요.
8
Serial.println("Hello World!");
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
The soil moisture is DRY => activate the pump
The soil moisture is DRY => activate the pump
The soil moisture is DRY => activate the pump
The soil moisture is DRY => activate the pump
The soil moisture is WET=> deactivate the pump
The soil moisture is WET=> deactivate the pump
The soil moisture is WET=> deactivate the pump
The soil moisture is WET=> deactivate the pump
코드 설명
소스 코드의 주석 라인에서 줄별 설명을 읽어보세요!
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.