겨울이 되어 강추위가 몰아닥치니 집의 베란다쪽 수도가 얼어버렸다. 낮에는 기온이 올라가서 녹을 것도 같은데 아직은 감감 무소식이다. 언제 녹을지 모르지만 혹시나 하는 마음에 수도꼭지를 틀어놓았다. 수도꼭지를 틀어 놓으니 또 언제 수도관이 녹아서 물이 흐를지 모른다. 드디어 아두이노를 실생활에 써먹을 수 있는 날이 온 것이다. 계획은 아두이노, 워터센서, 피에조부저, 배터리를 연결하여 센서부를 수도꼭지 밑에 놓아두고 물이 흐르면 시끄러운 소리로 삑삑 경고음을 내도록 만들면 방안에서도 수도관이 녹은 것을 감지할 수 있도록 하는 것이다. 사실 워터센서와 피에조부저에 대해서는 이미 예전에 블로그에서 다뤘기 때문에 별로 어려운 것은 없다. 둘을 조합하면 되는 것이다.
워터센서 포스팅: 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 |
결과: 휴지에 물을 뭍혀 테스트 해 보았다. 단절 되었던 워터센서에 전류가 흐르면 아날로그 단자에서 전류를 감지해서 피에조 부저를 울리는 모습을 볼 수 있다.
'아두이노' 카테고리의 다른 글
[아두이노] 아두이노로 SD카드 다루기 (SD카드 정보, SD 카드 읽기/쓰기) (12) | 2016.02.24 |
---|---|
[아두이노] 새로운 아두이노 부품들 구입 (0) | 2016.02.23 |
[아두이노] 크리스마스 캐롤 연주 (피에조부저 사용) (0) | 2015.12.11 |
[아두이노] 아날로그 조이스틱 모듈의 사용 (0) | 2015.10.14 |
[아두이노] 온습도 센서와 LCD를 이용한 온습도계 (8) | 2015.10.06 |