ESP32 - 토양 수분 센서 | ESP32 - Soil Moisture Sensor

이 튜토리얼은 ESP32를 사용하여 센서에서 토양 습도를 읽는 방법을 안내합니다. 자세하게는 다음을 배우게 됩니다:

준비물

1×ESP-WROOM-32 Dev Module 쿠팡 | Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Capacitive Soil Moisture Sensor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) DC Power Jack 쿠팡 | Amazon
1×(Recommended) ESP32 Screw Terminal Adapter 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

Buy Note: Many soil moisture sensors available in the market are unreliable, regardless of their version. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

토양 수분 센서에 관하여

capacitive moisture sensor vs resistive moisture sensor

습도 센서에는 두 가지 유형이 있습니다:

  • Resistive moisture sensor: 저항성 습도 센서
  • Capacitive moisture sensor: 용량성 습도 센서

(Note: There was a typographical error in "Rapacitive" which seems meant to be "Capacitive.")

두 센서 모두 토양 수분 값 출력합니다. 그러나, 그들의 작동 원리는 다릅니다. 다음과 같은 이유로 용량성 수분 센서 사용을 강력히 추천합니다:

  • 저항성 토양 수분 센서는 시간이 지남에 따라 부식됩니다. 센서의 프로브 사이를 흐르는 전기 전류가 전기화학적 부식을 일으킵니다.
  • 전기용량식 토양 수분 센서는 시간이 지나도 부식되지 않습니다. 센서의 전극이 노출되어 있지 않고 전극 사이에 전기 전류가 흐르지 않습니다.

아래 이미지는 저항성 토양 수분 센서의 부식을 보여줍니다.

resistive soil moisture sensor corrosion

이 튜토리얼의 나머지 부분에서는 전기용량식 토양 수분 센서를 사용합니다.

정전 용량식 토양 수분 센서 핀배열

전기 용량식 토양 수분 센서는 세 개의 핀을 가지고 있습니다:

  • GND 핀: 이 핀을 GND(0V)에 연결하세요.
  • VCC 핀: 이 핀을 VCC(5V 또는 3.3V)에 연결하세요.
  • AOUT 핀: 아날로그 신호 출력 핀은 토양 수분 레벨에 반비례하여 전압을 출력합니다. 이 핀을 ESP32의 아날로그 입력 핀에 연결하세요.
capacitive soil moisture sensor pinout

작동 원리

토양에 물이 많을수록 AOUT 핀의 전압이 낮아집니다.

선연결

ESP32 soil moisture sensor wiring diagram

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32 코드

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 핀 GPIO36 (ADC0)이 수분 센서의 AOUT 핀에 연결됩니다. void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // 센서에서 아날로그 값을 읽습니다. Serial.print("Moisture value: "); Serial.println(value); delay(500); }

사용 방법

  • 위의 코드를 복사하여 아두이노 IDE에 붙여넣으세요
  • 아두이노 IDE에서 Upload 버튼을 클릭해 코드를 ESP32 보드에 업로드하세요
  • 센서를 흙에 묻고 그 위에 물을 부으세요. 혹은 그것을 천천히 소금물이 담긴 컵 안에 잠기도록 하세요.
  • 시리얼 모니터에서 결과를 확인하세요. 결과는 아래와 같습니다:
COM6
Send
Moisture value: 3126 Moisture value: 3031 Moisture value: 2937 Moisture value: 2880 Moisture value: 2790 Moisture value: 2719 Moisture value: 2655 Moisture value: 2606 Moisture value: 2640 Moisture value: 2631 Moisture value: 2640 Moisture value: 2624
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

  • 순수한 물을 사용하여 테스트하는 것은 피하십시오. 순수한 물은 전기를 전도하지 않으므로 센서 읽기에 영향을 주지 않습니다.
  • 센서 읽기는 절대로 0에 도달하지 않습니다. 값이 3100과 2600 사이에서 범위를 가지는 것이 정상이며, 이는 센서의 매립 깊이, 토양이나 수질의 구성, 전원 공급 장치의 전압 등 몇 가지 요인에 따라 다를 수 있습니다.
  • 회로 부분(센서의 상단에 위치)을 토양이나 물에 묻지 마십시오. 이로 인해 센서가 손상될 수 있습니다.

정전용량식 토양 수분 센서 보정

습도 센서에서 측정한 값은 상대적입니다. 그것은 토양의 구성과 물에 따라 달라집니다. 실제로, 우리는 젖음과 마름 사이의 경계가 되는 기준선을 결정하기 위해 교정을 해야 합니다.

캘리브레이션을 하는 방법:

  • 위의 코드를 ESP32에서 실행하세요
  • 이슬 센서를 흙에 심으세요
  • 이슬 센서를 흙에 심으세요
  • 흙을 천천히 관개하세요
  • 시리얼 모니터를 확인하세요.
  • 흙의 수분이 건조에서 축축하게 변하는 것을 느낄 때의 값을 기록하세요. 이 값은 임계값이라고 합니다.

토양이 젖었는지 건조한지 확인하세요.

보정 후에는 아래 코드에 적어둔 THRESHOLD 값을 업데이트하세요. 아래 코드는 토양이 젖었는지 건조한지를 결정합니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-soil-moisture-sensor */ #define AOUT_PIN 36 // ESP32 pin GPIO36 (ADC0) 가습도 센서의 AOUT 핀에 연결됩니다 #define THRESHOLD 2800 // 여기서 임계값을 변경하세요 void setup() { Serial.begin(9600); } void loop() { int value = analogRead(AOUT_PIN); // 센서에서 아날로그 값을 읽습니다 if (value > THRESHOLD) Serial.print("The soil is DRY ("); else Serial.print("The soil is WET ("); Serial.print(value); Serial.println(")"); delay(500); }

시리얼 모니터에서의 결과.

COM6
Send
The soil is DRY (3126) The soil is DRY (3041) The soil is DRY (2967) The soil is DRY (2840) The soil is WET (2791) The soil is WET (2719) The soil is WET (2657) The soil is WET (2643) The soil is WET (2624)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

함수 참조

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!