ESP32 C3 Super Mini 토양 수분 센서

ESP32 C3 Super Mini를 사용하여 토양 수분 센서를 연결하고 식물 프로젝트에 대한 토양 수위를 모니터링하는 방법을 배웁니다. 이 초보자 친화적인 가이드는 배선, 보정 및 센서 데이터 읽기를 다룹니다.

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini - 토양 수분 센서

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×용량성 토양 수분 센서 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

토양 수분 센서 정보

토양 수분 센서는 아날로그 전압 신호를 출력하여 토양의 수분 함량을 측정합니다.

capacitive moisture sensor vs resistive moisture sensor

두 가지 유형의 토양 수분 센서:

  • 저항식 수분 센서: 두 프로브 사이의 전류를 사용하여 저항을 측정
  • 용량성 수분 센서: 노출된 전극 없이 정전 용량 변화를 통해 토양 수분을 측정

용량성 센서를 권장하는 이유:

  • 더 긴 수명 - 부식 문제 없음
  • 시간 경과에 따라 열화되는 노출된 전극 없음
  • 장기적으로 더 정확한 판독값
  • 영구 설치에 더 나음

저항식 센서의 문제:

  • 프로브 사이의 전류로 인한 전기화학 부식
  • 시간이 지남에 따라 정확도 저하
  • 자주 교체 필요
resistive 토양 수분 센서 corrosion

참고: 이 ESP32 C3 Super Mini 토양 수분 센서 튜토리얼의 나머지 부분은 신뢰성을 위해 용량성 유형에 중점을 둡니다.

용량성 토양 수분 센서 핀아웃

용량성 토양 수분 센서는 ESP32 C3 Super Mini에 쉽게 연결할 수 있는 간단한 3핀 인터페이스를 가지고 있습니다.

capacitive 토양 수분 센서 사용법 핀아웃
  • GND: 그라운드 연결 - GND(0V)에 연결
  • VCC: 전원 공급 - 5V 또는 3.3V에 연결
  • AOUT: 아날로그 출력 핀 - 수분 수준에 반비례하는 전압을 출력합니다(높은 수분 = 낮은 전압)

용량성 수분 센서 작동 원리

  • 토양의 수분 함량이 많음 = AOUT 핀의 낮은 전압
  • 더 건조한 토양 = AOUT 핀의 높은 전압
  • ESP32 C3 Super Mini는 아날로그 전압을 읽어 수분 수준 결정
  • 토양과의 직접 접촉 없음 = 부식 방지

배선 다이어그램

용량성 토양 수분 센서를 이 간단한 배선 다이어그램에 따라 ESP32 C3 Super Mini에 연결하세요.

ESP32 C3 Super Mini 토양 수분 센서 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

Moisture Sensor Pin ESP32 C3 Super Mini Pin
GND GND
VCC 3.3V
AOUT A4 (GPIO4 / ADC1_CH4)

중요 안전 주의 사항:

  • 회로 기판(센서의 상단 부분)을 토양/물 수면 위에 유지하세요
  • 센서 프로브 부분만 담그세요
  • 테스트할 때 순수 물이 아닌 소금물을 사용하세요(순수 물은 전기를 전도하지 않음)

ESP32 C3 Super Mini 코드 - 수분 값 읽기

이 코드는 용량성 토양 수분 센서에서 아날로그 값을 읽고 시리얼 모니터에 표시합니다.

코드가 하는 일:

  • GPIO4를 수분 센서의 아날로그 입력으로 구성
  • 500ms마다 센서에서 아날로그 전압 읽기
  • 판독값을 수분 값으로 변환
  • 보정을 위해 시리얼 모니터에 값 표시
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-soil-moisture-sensor */ #define AOUT_PIN A4 // The ESP32 C3 SuperMini pin A4 that connects to AOUT pin of moisture sensor void setup() { Serial.begin(115200); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor Serial.print("Moisture value: "); Serial.println(value); delay(500); }

빠른 단계

  • ESP32 C3 Mini를 처음 사용하나요? 개발 환경을 설정하기 위해 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하세요.
  • 코드 복사: 위의 코드를 Arduino IDE에 붙여넣으세요
  • 업로드: 업로드 버튼을 클릭하여 ESP32 C3 Super Mini를 프로그래밍하세요
  • 센서 연결: 위의 다이어그램에 따라 수분 센서를 배선하세요
  • 센서 테스트: 토양에 프로브를 묻고 천천히 물을 추가하거나 소금물에 담그세요
  • 시리얼 모니터 열기: 판독값을 보려면 보드레이트를 115200으로 설정하세요
  • 값 관찰: 수분이 증가할수록 값이 어떻게 감소하는지 보세요
  • 판독값 기록: 보정을 위해 건식 및 습식 값을 기록하세요
  • 프로 팁: 보정 중 일관된 토양 유형을 사용하여 프로젝트 전체에서 가장 정확한 임계값을 얻으세요.

시리얼 모니터 출력

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
Moisture value: 2230 Moisture value: 2223 Moisture value: 2255 Moisture value: 2279 Moisture value: 2313 Moisture value: 2350 Moisture value: 2383 Moisture value: 2395 Moisture value: 1260 Moisture value: 1325 Moisture value: 1271 Moisture value: 1261 Moisture value: 1254 Moisture value: 1261 Moisture value: 1264 Moisture value: 1360 Moisture value: 1258 Moisture value: 1263 Moisture value: 1266 Moisture value: 1258 Moisture value: 1239 Moisture value: 1264 Moisture value: 1307 Moisture value: 1488 Moisture value: 1647 Moisture value: 1746 Moisture value: 1846
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ 주의:

  • 순수 물은 전기를 전도하지 않으므로 센서 판독값에 영향을 주지 않기 때문에 테스트에 사용하지 마세요.
  • 센서 판독값은 절대 0으로 떨어지지 않습니다. 값이 3100과 2600 사이에 있는 것은 정상이지만 센서 배치 깊이, 토양 또는 물 구성, 전원 공급 전압 등의 요인으로 인해 변할 수 있습니다.
  • 회로 부분(센서 상단에 위치)을 토양이나 물에 묻지 마세요. 센서에 손상을 줄 수 있습니다.

용량성 토양 수분 센서 보정

수분 센서는 토양 유형, 물 염분 및 센서 깊이에 따라 달라지는 상대 값을 출력하므로 정확한 습식/건식 감지를 위해서는 보정이 필수입니다.

보정이 필요한 이유:

  • 다양한 토양 유형은 다양한 판독값을 제공함
  • 물 조성은 전도도에 영향을 미침
  • 센서 깊이는 측정값을 변경함
  • 각 프로젝트에는 사용자 정의 임계값이 필요함

수분 센서를 보정하는 방법:

  • 코드 업로드: 첫 번째 코드 예제를 ESP32 C3 Super Mini에서 실행
  • 토양 준비: 센서를 모니터링할 실제 토양에 배치
  • 건식 상태로 시작: 완전히 건조한 토양으로 시작하여 판독값을 기록
  • 천천히 물 추가: 시리얼 모니터를 보면서 천천히 관개
  • 전환점 찾기: 토양이 건식에서 습식으로 변하는 시점 파악
  • 임계값 기록: 건식-습식 전환 값을 기록
  • 두 극단값 테스트: 완전히 건조한 상태와 완전히 포화된 상태의 값 기록
  • 중간값 계산: 임계값은 일반적으로 건식 및 습식 값의 중간

전형적인 보정 결과:

  • 건식 토양: 2200-2500(조건에 따라 다름)
  • 습식 토양: 1200-1500(조건에 따라 다름)
  • 권장 임계값: 건식 및 습식 판독값의 중간점

토양이 습식인지 건식인지 판단

보정 후 이 코드를 사용하여 기록한 임계값을 기반으로 토양에 물이 필요한지 판단하세요.

이 향상된 코드가 하는 일:

  • 센서 판독값을 보정된 임계값과 비교
  • 시리얼 모니터에 "WET" 또는 "DRY" 상태 표시
  • 참조용 실제 수분 값 표시
  • 자동화된 관수 결정을 더 쉽게 함
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-soil-moisture-sensor */ #define AOUT_PIN A4 // The ESP32 C3 SuperMini pin A4 that connects to AOUT pin of moisture sensor #define THRESHOLD 1500 // CHANGE YOUR THRESHOLD HERE void setup() { Serial.begin(115200); // set the ADC attenuation to 11 dB (up to ~3.3V input) analogSetAttenuation(ADC_11db); } void loop() { int value = analogRead(AOUT_PIN); // read the analog value from sensor if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

습식/건식 감지를 위한 빠른 단계

  • ESP32 C3 Mini를 처음 사용하나요? 개발 환경을 설정하기 위해 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하세요.
  • 임계값 업데이트: THRESHOLD 값을 기록한 보정된 번호로 바꾸세요
  • 코드 업로드: 업데이트된 코드로 ESP32 C3 Super Mini를 프로그래밍하세요
  • 센서 배치: 프로브를 원하는 모니터링 깊이의 토양에 삽입하세요
  • 시리얼 모니터 열기: 보드레이트를 115200으로 설정하세요
  • 정확도 테스트: 임계값이 습식/건식을 올바르게 감지하는지 확인하기 위해 물을 추가하세요
  • 필요한 경우 조정: 결과에 따라 THRESHOLD 값을 미세 조정하세요
  • 프로 팁: 토양이 너무 건조해지기 전에 관수를 트리거하도록 임계값을 전환점보다 약간 높게 설정하세요.

시리얼 모니터 출력 - 습식/건식 상태

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
The soil is DRY (2129) The soil is DRY (1941) The soil is DRY (1767) The soil is DRY (1549) The soil is WET (1471) The soil is WET (1419) The soil is WET (1397) The soil is WET (1373) The soil is WET (1264)
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ 주의:

이 튜토리얼은 analogRead() 함수를 사용하여 센서 또는 구성 요소에 연결된 ADC(아날로그-디지털 변환기)에서 값을 읽습니다. ESP32 C3 Super Mini의 ADC는 높은 정확도가 필요하지 않은 프로젝트에 적합합니다. 그러나 정밀한 측정이 필요한 프로젝트의 경우 다음을 명심하세요:

  • ESP32 C3 Super Mini의 ADC는 완벽하게 정확하지 않으며 정확한 결과를 위해 보정이 필요할 수 있습니다. 각 ESP32 C3 Super Mini 보드는 약간씩 다를 수 있으므로 각 개별 보드에 대해 보정이 필요합니다.
  • 특히 초보자의 경우 보정이 어려울 수 있으며 항상 원하는 정확한 결과를 얻지 못할 수도 있습니다.

높은 정밀도가 필요한 프로젝트의 경우 ESP32 C3 Super Mini와 함께 외부 ADC(예: ADS1115)를 사용하거나 더 안정적인 ADC를 가진 Arduino Uno R4 WiFi 같은 다른 Arduino를 사용하는 것을 고려하세요. 여전히 ESP32 C3 Super Mini의 ADC를 보정하고 싶다면 ESP32 ADC 보정 드라이버를 참조하세요.

ESP32 C3 Super Mini 및 수분 센서를 사용한 프로젝트 아이디어

ESP32 C3 Super Mini로 토양 수분을 읽는 방법을 알았으니 이제 이러한 실용적인 응용 프로그램을 시도해보세요:

  • 자동 식물 급수 시스템: 토양이 너무 건조할 때 수중 펌프 트리거
  • 스마트 정원 모니터: WiFi 알림을 통해 휴대전화로 수분 데이터 전송
  • 다중 식물 모니터: 여러 센서를 연결하여 동시에 여러 식물 추적
  • 데이터 로거: 식물 관리 분석을 위해 시간 경과에 따라 수분 수준을 SD 카드에 기록
  • 온실 자동화: 실시간 토양 조건에 따라 관개 시스템 제어
  • 식물 건강 경고: LED 표시기 또는 부저를 사용하여 식물에 물이 필요한 시기를 알림

비디오 튜토리얼

이 프로젝트에 대한 시각적 안내는 아래 비디오를 보세요.

...VIDEO P7tG-t4dXZ0

...VIDEO

스스로 도전해보세요

이러한 과제로 ESP32 C3 Super Mini 토양 수분 센서 프로젝트를 다음 단계로 가져가세요:

  • 쉬움: 토양이 너무 건조할 때 켜지는 LED를 추가하세요
  • 쉬움: 원본 값 대신 수분 백분율(0-100%)을 표시하세요
  • 중간: 릴레이와 수중 펌프를 사용하여 자동 관수 시스템 만들기
  • 중간: ESP32의 WiFi 기능을 사용하여 수분 데이터를 웹 대시보드에 전송
  • 고급: 3개 이상의 식물을 개별 임계값으로 모니터링하는 다중 센서 시스템 구축
  • 고급: 딥 슬립 모드를 구현하여 수개월 동안 배터리 전원으로 실행

함수 참조

관련 튜토리얼