나만의 스마트팜시스템을 만들고 싶어요. 그럴려면 토양의 수분 상태를 알아내는게 필수랍니다. 아두이노와 HS-Soil Moisture Sensor를 활용하면 간단하게 토양의 수분 상태를 확인할 수 있습니다. 이 글에서는 토양수분센서(HS-Soil Moisture Sensor)의 작동 원리와 아두이노로 값을 얻는 방법을 자세히 알아보겠습니다.
1. 토양수분센서 HS-Soil Moisture Sensor의 특징
- 이 센서는 두 개의 뾰족한 부분으로 구성되어 있으며, 이를 통해 토양의 수분을 감지합니다.
- 센서의 수분 측정 높이는 약 4cm입니다.
2. 센서 연결 방법
- 센서에는 +와 - 핀이 구분되어 있지 않아, 아두이노에 직접 연결할 수 있습니다.
- VCC(5v), Gnd, D0(Digital), A0(Analog) 핀을 사용하여 아두이노와 연결합니다.
- 아날로그 값은 0~1023 범위로 출력되며, 디지털 값은 HIGH와 LOW로 출력됩니다.
3. 코드 구현
- 아두이노의 A0 핀을 통해 아날로그 값을 읽어옵니다.
- map 함수를 사용하여 값을 백분율로 변환합니다.
- 토양의 수분이 특정 수준 이하로 떨어지면 피에조 부저를 통해 알림을 줍니다.
수분센서에서 나오는 핀은 +와 -가 없기 때문에 그냥 꽂아주면 되구요.
아두이노쪽으로 가는 핀은 VCC(5v), Gnd, D0(Digital), A0(Analog) 핀을 사용하면 됩니다.
디지털은 HIGH와 LOW값만 나오며 Analog는 0~1023까지의 값이 나오는데 이센서는 아날로그만 지원함으로 아날로그핀인 A0를 연결하였습니다. 그리고 값에 따라 알림을 울릴 수 있도록 피에조부조도 연결해주었지요.
4. 센서의 성능
센서를 물에 담가 값을 측정한 결과, 상당히 정확한 값을 얻을 수 있었습니다.
하지만 물을 많이 담궈도 0이라는 숫자는 안나오더라구요. 150이 어쩌다 나오길래 어차피 170 이상이면 100이 넘는 숫자가 나오니, 물이 차있는거다라고 판단하는걸로 하기로 했습니다.
const int nPin_soil = A0; // A0 : 토양습도센서
void setup() {
Serial.begin(9600); //시리얼포트 설정
}
void loop() {
int nsoil = analogRead(nPin_soil);
int nsoilper = map(nsoil, 170, 1023, 100, 0); // 센서 값을 %로 변경
if (nsoilper < 30) // 토양습도 값에 따른 경고음
{
tone(13, 5000, 100); // 피에조 ON (13핀, 주파수 5000, 0.1초간)
}
Serial.print("sensor : ");
Serial.println(nsoil); // 토양습도센서값 시리얼 출력
Serial.print("map : ");
Serial.println(nsoilper); // 토양습도센서값 시리얼 출력
delay(1000);
}
그래서 아두이노 map 함수를 이용하여 170~1023의 값을 100~0의 값으로 나타냄으로써 100%의 값으로 변환했답니다.
결과값은 잘 나오고 있습니다.
위쪽으론 좀 애매하지만 아래로 내려갈수록 확실히 나오는 듯 합니다.
수분이 완전 바닥에 있고 없고를 측정 하기에는 충분할거 같아요.
5. 센서의 단점
화분에 넣고 사용하다보니 녹슬고 전류를 측정하는부분이 지워져버렸답니다.
토양수분을 측정하는 센서인데 녹이 쓸쓰는 경우가 있네요.
센서 사용 시 녹이 발생할 수 있으므로 주의가 필요할 것 같습니다.
소스파일
위에서 사용한 코드는 아래의 파일을 다운받으면 됩니다.
결론
아두이노와 토양수분센서 HS-Soil Moisture Sensor를 활용하면 직관적으로 토양의 수분 상태를 파악할 수 있습니다. 이를 통해 식물의 건강 상태를 쉽게 모니터링할 수 있게 되었습니다. 다만, 센서 사용 시 녹 발생 등의 문제에 주의해야 합니다. 이러한 센서를 활용하여 다양한 농업 및 홈 가드닝 프로젝트에 응용해보시길 바랍니다.
토양수분센서 HS-Soil Moisture Sensor를 구입하려면?
'Language > Arduino' 카테고리의 다른 글
[아두이노] 블루투스(HC-06) 와 AT 명령어 사용하기 (0) | 2019.01.29 |
---|---|
아두이노 회로설계 툴 프릿징 Fritzing 사용해보기 (0) | 2019.01.28 |
[아두이노] 조도센서 디지털 HS-CDSM 으로 빛 테스트 하기 (0) | 2019.01.23 |
[아두이노] 아두이노 비주얼 스튜디오에서 사용하기 (Arduino and Visual Studio) (0) | 2019.01.21 |
[아두이노] 아두이노 활용한 스마트팜 제작해보기 계획 (0) | 2019.01.21 |