반응형

워터센서(Water Sensor)는 물에도 전기가 통하는 원리를 이용하여 세로로 길게 배치된 전극에 전류를 흘려보내서 전류의 흐름을 측정하여 물이 감지되는지의 여부 또는 물의 깊이(수위)를 측정할 수 있는 센서이다. 센서가 물에 깊이 담길수록 전류는 많이 흐를 것이고 얕을 수록 전류는 적게 흐를 것이다.


내가 가지고 있는 센서는 아래와 같이 생겼다.

물을 감지하는 센서부는 여러개의 전극이 세로로 길게 뻣어 있다.

핀은 3개이며 + 는 5V에 -는 GND, S는 아날로그 단자에 연결한다. 나의 경우는 A0에 연결.


센서의 뒷면


워터센서 매뉴얼:

water sensor.pdf


비슷한 센서인  흙속 수분측정 센서 매뉴얼:

moisture-sensor-arduino.pdf


연결은 매우 간단하다. 5V 로 구동되므로 아두이노의 5V와 GND단자 그리고 시그널을 잡기 위하여 센서의 시그널 단자는 아두이노의 아날로그 단자에 연결하면 된다. 아래의 소스에서는 A0 에 연결하였다.


##소스##

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int analogPin = 0;    // 워터센서 analog port 0 연결 선언
int led = 13;         // LED 디지털 13번 포트 연결 선언
int val = 0;          // 전류변화값 변수선언
 
void setup ()
{
  pinMode(led, OUTPUT);            // 디지털 13번 포트를 LED OUTPUT 으로 설정
  Serial.begin (9600);           // 시리얼모니터 설정
}
 
void loop()
{
  val = analogRead(analogPin);   // analogPin 의 변화값(전류값)을 읽음
 
  if (val > 100)                 // val 값이 100이 넘으면 (전류가 100이 넘으면)
  {                               
      digitalWrite(led, HIGH);   // LED ON
  }
  else                           // val 값이 100이하면 (전류가 100이하면)
  {
      digitalWrite(led, LOW);    // LED OFF
  }
  
  Serial.println(val);      // 시리얼모니터에 전류값 표시
  delay (500);
}
cs



##결과##

아래와 같이 센서를 물에 담그면 LED가 켜지고 빼면 LED가 꺼지는 것을 알 수 있다.



- 센서의 수위에 따른 전류값의 변화 (물에 담그지 않았을 경우)


- 센서의 수위에 따른 전류값의 변화 (끝 부분만 살짝 넣었을 경우)


- 센서의 수위에 따른 전류값의 변화 (반 정도 담구었을 경우)


- 센서의 수위에 따른 전류값의 변화 (물에 감지부를 완전히 담구었을 경우)


위와 같이 수위에 따라 값이 조금씩 커지는 것을 알 수 있다. 


이것을 이용해서 OUTPUT으로 피에조부저 같은 것을 달면 비가오거나, 욕조에 물을 받을때 경고음을 내도록 할 수도 있을 것 같고, 물탱크 같은 곳의 누수 탐지기로 쓴다거나 할 수도 있을 것 같다.


또 모터를 달게되면 우천시 자동으로 창문을 닫고 맑으면 창문을 여는 그런 동작도 가능할 것 같다.


반응형

+ Recent posts