아두이노 우노 R4 - 토양 습도 센서

이 튜토리얼에서는 Arduino UNO R4와 함께 수분 센서를 사용하는 방법을 배웁니다. 특히, 우리는 다룰 내용은 다음과 같습니다:

아두이노 UNO R4 토양 수분 센서

Hardware Preparation

1×Arduino UNO R4 WiFi Amazon
1×Arduino UNO R4 Minima (Alternatively) Amazon
1×USB Cable Type-C 쿠팡 | Amazon
1×Capacitive Soil Moisture Sensor Amazon
1×Jumper Wires Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino UNO R4 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino UNO R4 Amazon
1×(Recommended) Power Splitter For Arduino UNO R4 Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

토양 수분 센서에 관하여

정전식 수분 센서 vs 저항식 수분 센서

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

  • 정전식 수분 센서
  • 저항식 수분 센서

두 센서는 토양 수분에 대한 정보를 제공하지만 작동 방식이 다릅니다. 이러한 이유로 우리는 용량성 수분 센서를 사용하는 것을 강력히 권장합니다.

  • 저항형 토양 수분 센서는 점차적으로 손상됩니다. 이 손상은 프로브 사이에 전류가 흐르기 때문에 발생하며, 이는 전기화학적 부식이라는 유형의 손상을 초래합니다.
  • 용량형 토양 수분 센서는 시간이 지나도 손상되지 않습니다. 그 이유는 전극이 덮여 있어 쉽게 부식되지 않기 때문입니다.

아래 이미지에는 시간이 지남에 따라 부식된 저항성 재료로 만들어진 토양 수분 센서가 표시됩니다.

저항성 토양 수분 센서 부식됨

이 튜토리얼의 남은 부분은 정전식 토양 습도 센서 사용에 중점을 둘 것입니다.

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

커패시티브 토양 수분 센서는 세 개의 핀이 함께 제공됩니다:

  • GND 핀: GND (0V)에 연결
  • VCC 핀: VCC (5V 또는 3.3V)에 연결
  • AOUT 핀: 토양 수분에 따라 변하는 아날로그 신호를 전송합니다. Arduino UNO R4의 아날로그 입력 핀에 연결.
정전용량 토양 수분 센서 핀 배치

작동 원리

토양의 수분 함량이 높을수록 AOUT 핀의 전압이 낮아집니다.

Wiring Diagram

Arduino UNO R4 토양 수분 센서 배선도

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

아두이노 UNO R4 코드

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-soil-moisture-sensor */ #define AOUT_PIN A0 // 습도 센서에서 읽기 위한 핀 A0를 정의합니다. void setup() { Serial.begin(9600); // 9600 bps에서 직렬 통신을 초기화합니다. } void loop() { int value = analogRead(AOUT_PIN); // 센서에서 습도 수준을 읽습니다. Serial.print("Moisture: "); // 시리얼 모니터에 'Moisture: ' 텍스트를 전송합니다. Serial.println(value); // 습도 수준을 시리얼 모니터에 출력합니다. delay(500); // 루프를 500 밀리초 동안 멈춥니다. }

Detailed Instructions

다음 지침을 단계별로 따르세요:

  • Arduino Uno R4 WiFi/Minima를 처음 사용하는 경우, Arduino IDE에서 Arduino Uno R4 WiFi/Minima 환경 설정에 대한 튜토리얼을 참조하세요.
  • 제공된 다이어그램에 따라 토양 수분 센서를 Arduino Uno R4에 연결합니다.
  • USB 케이블을 사용하여 Arduino Uno R4 보드를 컴퓨터에 연결합니다.
  • 컴퓨터에서 Arduino IDE를 실행합니다.
  • 적절한 Arduino Uno R4 보드(예: Arduino Uno R4 WiFi) 및 COM 포트를 선택합니다.
  • 위의 코드를 복사하여 Arduino IDE에서 엽니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino UNO R4에 업로드합니다.
  • 센서를 흙에 놓고, 흙에 물을 추가합니다. 또는 부드럽게 소금물 컵에 넣을 수 있습니다.
  • 시리얼 모니터에서 결과를 확인하세요. 다음과 같이 표시됩니다:
COM6
Send
Moisture: 581 Moisture: 581 Moisture: 575 Moisture: 566 Moisture: 556 Moisture: 547 Moisture: 539 Moisture: 530 Moisture: 521 Moisture: 513 Moisture: 506 Moisture: 500 Moisture: 495 Moisture: 492 Moisture: 490 Moisture: 489 Moisture: 488
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

  • 순수한 물은 전기를 전도하지 않기 때문에 테스트에 사용하지 마세요. 그렇지 않으면 센서 판독에 영향을 미치지 않습니다.
  • 일반적으로 센서 판독 값은 0으로 떨어지지 않습니다. 보통 500에서 600 사이에 머무릅니다. 그러나 이는 센서가 토양 또는 물에 얼마나 깊이 있는지, 토양 또는 물의 종류, 전원 공급 전압에 따라 달라질 수 있습니다.
  • 센서의 회로 부분(위쪽에 위치한)을 토양이나 물에 넣지 마세요. 센서가 손상될 수 있습니다.

정전식 토양 수분 센서의 보정

습도 센서의 측정값은 고정된 것이 아니며, 토양의 종류와 수분 함량에 따라 다릅니다. 올바르게 사용하려면, 토양이 젖었는지 건조한지를 알 수 있는 기준점을 찾기 위해 센서를 보정해야 합니다.

보정을 수행하는 방법:

  • 제공된 코드를 실행하기 위해 아두이노 UNO R4를 사용하세요.
  • 토양에 수분 센서를 꽂으세요.
  • 서서히 물을 토양에 추가하세요.
  • 시리얼 모니터를 관찰하세요.
  • 토양이 마른 상태에서 젖은 상태로 변했다고 생각될 때의 값을 기록하세요. 이 값은 THRESHOLD로 알려져 있습니다.

토양이 젖어 있는지, 건조한지 확인하세요.

보정한 후, 다음 코드로 주목한 THRESHOLD 값을 변경하십시오. 이 코드는 토양이 젖었는지 건조한지를 확인합니다.

/* * 이 Arduino UNO R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino UNO R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-soil-moisture-sensor */ #define AOUT_PIN A0 // 아두이노 핀을 습도 센서 출력에 사용 #define THRESHOLD 530 // 습도 수준을 위한 임계값 설정 void setup() { Serial.begin(9600); // 직렬 통신을 9600 bps로 초기화 } void loop() { int value = analog_read(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 (581) The soil is DRY (575) The soil is DRY (566) The soil is DRY (547) The soil is DRY (539) The soil is WET (521) The soil is WET (513) The soil is WET (492) The soil is WET (488)
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, 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!