아두이노2016. 1. 20. 13:44

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


워터센서 포스팅: 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


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



반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 승민

    안녕하세요 고3 수험생입니다. 해당 글을 보고 대학 진학에 도움을 받고싶어서 아두이노 코딩 작업을 포트폴리오로 만들어보고 싶은데 혹시 아두이노 워터센서는 어디서 구할 수 있는지 알려주실 수 있나요..?? 해당 모델은 어디서 구하는지 못찾겠습니다 ㅠㅠ

    2020.09.09 04:19 [ ADDR : EDIT/ DEL : REPLY ]
  2. 지훈

    저기 혹시 회로 어디어디에 연결하는 지를 몰라서 그러는데 혹시 회로도나 회로 연결 사진쫌 메일로 보내주시면 감사하겠습니다.
    jihun080430@gmail.com

    2021.08.02 17:42 [ ADDR : EDIT/ DEL : REPLY ]
  3. 지훈

    아 이제 했습니다.
    안주셔도 될것 같아요
    감사합니다

    2021.08.03 12:05 [ ADDR : EDIT/ DEL : REPLY ]