적옥토를 화분에 담고 저울에 올려놓은 뒤 물을 화분에 주면서 물의 양을 기록하고, 센서의 습도 값을 읽어보았습니다. 센서는 아마존에서 판매하는 아래의 제품을 사용하였습니다. 이 제품은 용량(capacitace)형 센서로 센서 주위의 흙의 수분함량에 따라서 유전율(dielectric property)이 달라짐을 이용하여 측정하는 방식입니다.
이 습도센서를 아두이노의 아날로그 입력핀에 연결하고, 아날로그 측정의 해상도(resolution)을 12비트로 놓을 경우, 센서의 값은 0에서 4095(2의 12승)까지 출력됩니다. 흙의 수분이 높을 수록 낮은 값이 나오는데, 직관적으로 습도가 높을 수록 큰 값이 나오도록 센서의 값을 4095에서 빼서, 수분이 증가할 수록 높을 값이 나오도록 아두이노의 코드를 변경하였습니다.
이제 이 제품을 아두이노에 연결하고, 센서의 값을 ADC를 이용하여 측정하였습니다.
아마존 판매 토양습도 센서
센서의 값과 습도 연관성을 재기 전, 화분에 물을 준 후 몇 분후 센서의 값이 안정해지는지 그것을 먼저 확인해보았습니다. 그래서 화분에 물을 준 후 센서의 값의 변화를 시간에 따라 기록해 보았습니다. 흙에 물을 주기 위해서 컵에 담긴 물을 조금씩 센서주위로 뿌려주었습니다.
(참고로 센서의 값은 흙이 건조할 때 높은 값을 나타내며, 흙이 젖어 있을때 낮은 값을 나타냅니다. 습도가 높을 수록 높은 값을 출력하기 위해서, 4095에서 센서의 값을 뺐습니다. 4095는 ADC의 12bit 분해능에 따른 최대값입니다.)
물을 준 시점은 약 50분 정도이고, 이후 약 110분까지 센서의 값이 계속 증가하는 것을 볼 수 있습니다. 아마도 흙에 들어간 물이 흙입자들을 젖게 만들면서 물이 퍼지는데 시간이 걸리는 것 같습니다. 그 이후에는 수분의 증발로 센서 값이 천천히 줄어드는 것을 볼 수 있습니다. 따라서 센서의 값이 안정해 질때까지 약 60분 정도 걸리는 것을 알 수 있습니다.
그 다음으로 습도센서의 값을 토양 수분으로 환산하는 실험을 하였습니다. 트레이 무게는 95g, 화분의 무게는 43g, 물을 주기 전 흙(물에 젖지 않은 새 흙)의 무게는 약 222g입니다. 매번 물의 양을 측정하기 위해서 저울을 켠 후, 위 사진의 상태를 0g으로 놓고 순수하게 물의 양만 측정하였고, 물이 화분 밑으로 흘러내린 경우에는 흘러내린 물의 양을 따로 측정했습니다. 매번 물을 준 후 안정화 시간인 1시간을 기다렸다가 센서의 값을 읽었습니다. 그 결과 아래의 표와 같습니다.
추가 물의 양(g), 흘러나온 물의 양 제외
누적 물의 양(g) (흙무게 대비 %)
흘러나온 물 (g)
센서 값
0
0
0
730
17
17 (7%)
0
750
18
35 (15%)
0
802
18
53 (23%)
0
830
15
68 (30%)
0
1160
18
86 (38%)
0
1385
23(-10) = 13
99 (44%)
10
1600
22(-17) = 17
104 (46%)
17
1704
습도는 아래의 식처럼 계산했습니다. 여기서 습도란 흙의 무게 대비 투입된 물의 양을 의미합니다. 물론 화분 밑으로 흘러내린 물의 양은 빼주었습니다.
습도 = (준 물의 양 - 흘러나온 물의 양) / (흙의 양)
그 결과 물의 양 대비 센서 값의 변화는 아래와 같습니다.
생각과 달리 습도의 양 변화에 대해서 센서의 값이 비례하지 않음을 발견했습니다. 아마도 물의 양이 적은 경우, 흙에 골고루 묻지 않아서 센서에 제대로 반영이 되지 않은 것 같습니다. 그러나 30%부터는 제대로 증가함을 알수 있습니다.
아직 1번만 측정을 해서 위의 결과가 얼마나 반복적으로 그리고 정확히 나오는지 알 수 없습니다. 그래서 향후 좀 더 반복해서 측정할 생각입니다.