코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2016-01-20 10:30:18
1) 토양 수분센서란 무엇인가?
토양 수분센서는 토양 내 수분함량에 따른 저항의 변화를 측정하는 센서입니다.
토양 내 수분과 토양을 구성하는 입자의 크기 및 다양성에 영향을 받으며, 토양 내 수분함량이 많으면 저항값이 작아지고, 수분함량이 적으면 저항값이 커집니다.
그러나 토양 내 수분함량이 매우 많을 때는 전기저항이 둔감하여 오차가 크다는 단점도 가지고 있습니다.
2) 토양 수분센서 사용방법
토양 수분센서는 토양에 직접 꽂는 센서 단자와 센서 보드, 그리고 케이블로 구성되어 있습니다. 센서 단자의 2개 핀과 센서 보드의 2개 핀을 서로 연결합니다. (+-는 구분 안해도 됩니다.) 그 다음 케이블을 센서 보드의 DO 핀을 제외한 3개의 핀 (ACC, GND, AO)을 연결합니다.
DO핀은 디지털 출력으로 0과 1만을 출력하며, AO핀은 아날로그 출력으로 토양내 수분의 양을 보다 상세하게 출력합니다. 또한, 센서보드의 파란색 가변 저항을 돌려서 기준값을 정해놓고 사용할 수 있습니다.
이 예제에서는 AO핀을 사용합니다. 측정된 값은 수분량을 나타내는 것이 아니라, 수분량에 따른 저항의 변화를 0~1023 범위내에서 환산된 결과입니다.
NO |
부품명 |
수량 |
상세설명 |
1 |
오렌지 보드 |
1 |
|
2 |
토양 수분센서 |
1 |
YL38 |
3 |
피에조 부저 |
1 |
KPX 1203S |
4 |
브레드 보드 |
1 |
|
5 |
점퍼케이블 |
13 |
|
부품명 |
오렌지 보드 |
토양 수분센서 |
피에조 부저 |
브레드 보드 |
점퍼케이블 |
파트 |
|
1. 오렌지보드의 5V핀을 브레드보드의 +버스에 연결합니다.
2. 오렌지보드의 GND핀을 브레드보드의 -버스에 연결합니다.
3. 피에조 부저의 +단자를 오렌지보드의 3번핀에 연결합니다.
4. 피에조 부저의 - 단자를 -버스에 연결합니다.
5. 토양 수분 센서의 VCC 단자를 +버스에 연결합니다.
6. 토양 수분 센서의 GND 단자를 -버스에 연결합니다.
7. 토양 수순 센서의 AO단자를 오렌지보드의 A0번핀에 연결합니다.
토양 수분 센서를 통해 토양의 수분값을 읽어오고, 수분량에 따라 피에조부저를 제어하는 스크래치 블럭 코딩입니다.
아날로그 0번핀에 연결된 토양 수분 센서는 수분량이 많을 때 낮은 값, 수분량이 적을 때 높은 값을 갖습니다.
토양 수분 센서 값(아날로그 0번 센서 값)이 일정 수치보다 적다면, 오렌지 보드에서 피에조 부저에게 0hz의 주파수를 보내 부저에서 소리가 나지 않고,
일정 수치보다 높다면 오렌지 보드에서 피에조 부저에게 5hz의 주파수를 보내 부저에서 소리가 나게 됩니다.
즉 토양에 수분이 부족하면 피에조부저가 울리게 됩니다.
<스크래치 토양 수분 센서로 피에조 부저 소리내기 코드>
//토양 수분 센서를 아날로그 0번(A0)핀에 연결합니다.
const int soil = A0;
//피에조 부저를 3번핀에 연결합니다.
int piezo = 3;
void setup() {
//시리얼 통신 속도 9600bps로 설정합니다.
Serial.begin(9600);
pinMode(piezo,OUTPUT);
}
void loop() {
//토양 수분 센서의 센서 값을 시리얼 모니터에 출력합니다.
Serial.println(analogRead(soil));
//현재 수분량이 일정 수치보다 낮다면(토양에 수분이 많다면)
if (analogRead(soil)<300) {
//피에조 부저를 울리지 않습니다.
analogWrite(piezo,0);
}
//현재 수분량이 일정 수치보다 높다면(토양에 수분이 적다면)
else {
//피에조 부저를 울립니다.
analogWrite(piezo,5);
}
}
<오렌지보드 토양 수분 센서로 피에조 부저 소리내기 코드>
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!