반응형

겨울이 되어 강추위가 몰아닥치니 집의 베란다쪽 수도가 얼어버렸다. 낮에는 기온이 올라가서 녹을 것도 같은데 아직은 감감 무소식이다. 언제 녹을지 모르지만 혹시나 하는 마음에 수도꼭지를 틀어놓았다. 수도꼭지를 틀어 놓으니 또 언제 수도관이 녹아서 물이 흐를지 모른다. 드디어 아두이노를 실생활에 써먹을 수 있는 날이 온 것이다. 계획은 아두이노, 워터센서, 피에조부저, 배터리를 연결하여 센서부를 수도꼭지 밑에 놓아두고 물이 흐르면 시끄러운 소리로 삑삑 경고음을 내도록 만들면 방안에서도 수도관이 녹은 것을 감지할 수 있도록 하는 것이다. 사실 워터센서와 피에조부저에 대해서는 이미 예전에 블로그에서 다뤘기 때문에 별로 어려운 것은 없다. 둘을 조합하면 되는 것이다.


워터센서 포스팅: http://deneb21.tistory.com/223

피에조부저 포스팅: http://deneb21.tistory.com/218


먼저 피에조부저의 소리가 커야한다. 음의 높이가 너무 낮아도 안되고 너무 높아도 안된다.

여러가지로 조절해 보다가 최고의 소리를 찾았다. 음의 높이를 2000 정도로 유지하니 아주 큰 소리가 나온다. 방안에서도 베란다의 소리를 충분히 감지할 정도의 크기이다.


tone(speakerpin,2000,1000);


그럼 이제 만들기만 하면 된다.


배터리는 처음에는 휴대폰 충전 보조배터리를 이용하려고 했으나 베란다는 영하의 기온이므로 리튬이온 배터리 보다는 망간전지가 더 적합할 것 같아서 9V 망간전지를 이용하였다. (솔직히 잘 모름.)


연결:

* 피에조부저: +극은 디지털 12번에, -극은 GND

* 워터센서: 핀은 3개이며 + 는 5V에 -는 GND, S는 아날로그 단자에 연결한다. 나의 경우는 A0에 연결하였다.


소스:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
int analogPin = 0;    // 워터센서 analog port 0 연결
int speakerPin = 12;  // 피에조부저 연결 디지털핀
int val = 0;          // 전류변화값 
 
void setup ()
{
}
 
void loop()
{
  val = analogRead(analogPin);   // analogPin 의 변화값(전류값)을 읽음
 
  if (val > 100)                 // val 값이 100이 넘으면 (전류가 100이 넘으면)
  {                               
      tone(speakerPin,2000,1000); // 피에조 ON (주파수 2000으로 1초간 울리기)
  }
  delay (2000);
}
 
cs


결과: 휴지에 물을 뭍혀 테스트 해 보았다. 단절 되었던 워터센서에 전류가 흐르면 아날로그 단자에서 전류를 감지해서 피에조 부저를 울리는 모습을 볼 수 있다.



반응형

+ Recent posts