코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2015-04-23 09:49:59
공공 장소에서 잠시 자리를 비울 때면 자리에 두고 온 노트북은 잘 있는지, 태블릿은 잘 있는지
불안한 마음에 화장실도 잘 못가신 적은 누구나 있을겁니다 ㅠㅠ 특히 시험기간일때의 도서관과 까페에선
그 불안함과 분실율이 더욱 높아지는데요... 그래서!! 저렴하고 작은 아두이노 보드로 고가의 귀중 품을 지킬 수 있는
도난 방지 장치를 만들어 보았습니다.
귀중품의 무게와 움직임을 감지하여 그 변화를 블루투스 통신으로 스마트 폰에 전달하여 유저에게 도난 여부를
알리는 장치 입니다.
우선 오렌지 보드와 빵판이 전부 들어갈 수 있는 크기의 판을 만들어 줍시다~
어때요? 딱 맞죠?
휴대용 도난 방지 장치이기 때문에 장치의 부피를 줄이는 것이 중요합니다. 장치의 두께를 줄이기 위해 배선은
최대한 짧게 만들어 연결해 줍니다.
귀중품이 올라갈 뚜껑입니다. 압력센서를 뚜껑의 중심에 잘 배치해 줍니다~!
마지막으로 기둥을 만들어주시고 뚜껑과 밑면을 붙여줍니다~
완성된 도난 방지 장치 입니다 ^^
NO | PART | QTY | Etc |
1 | 오렌지 보드 | 1 | |
2 | 압력 센서 | 1 | |
3 | 자이로 or 가속도 센서 | 1 | NTC-AM-3AXIS |
4 | 블루투스 모듈 | 1 | HC-05 |
5 | LED | 2 | |
6 | 버튼 스위치 | 1 | |
7 | 브레드 보드(소형) | 2 | |
8 | 저항 | 4 | 1K |
오렌지 보드 | 압력 센서 | 자이로/가속도 센서 | 블루투스 모듈 |
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(8, 9);
int bufferPosition;
int w=0;
int psensor = A0;
int button1 = A1;
int button2 = A2;
int led1 = 2;
int led2 = 3;
int flag = 0;
int gyrox = A3;
int gyroy = A4;
int x=0;
int y=0;
char A,B;
void setup()
{
Serial.begin(9600);
BTSerial.begin(9600);
pinMode(button1,INPUT);
pinMode(button2,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
Serial.println("SLEEP MODE");
BTSerial.println("SLEEP MODE");
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
}
void loop()
{
if(analogRead(button1) == 1023 && flag == 0) // 버튼 1이 눌렸을 때 감지 시작
{
if(flag == 0)
{
Detecting_Mode();
flag = 1;
}
}
else if( BTSerial.read() == 'B') // 블루투스로 'B'문자 받았을 경우 감지 종료
{
if(flag == 1)
{
Standby_Mode();
flag = 0;
}
}
}
void Detecting_Mode() // <감지모드함수> 가속도 x,y축 변화값, 압력 센싱값 추출
// 센서 값 변화량이 일정 값 이상일 경우 블루투스로 'A'문자 전송
{
while(1)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,LOW);
w = analogRead(psensor);
x = analogRead(gyrox);
y = analogRead(gyroy);
if(w < 30){BTSerial.println("A");}
else if(x < 290){BTSerial.println("A");}
else if(x > 310){BTSerial.println("A");}
else if(y < 290){BTSerial.println("A");}
else if(y > 310){BTSerial.println("A");}
delay(1000);
if( BTSerial.read() == 'B'){flag = 1; break;} // 블루투스로 'B'문자 받을 경우 루프 탈출
}
}
void Standby_Mode()
{
BTSerial.println("SLEEP MODE");
digitalWrite(led2,HIGH);
digitalWrite(led1,LOW);
delay(1000);
}
최초 전원이 들어올 경우 대기 상태로 있게 됩니다. 이후 장치에 부착된 버튼을 누를 경우
감지를 시작하고 감지를 중단하고 귀중품을 회수할 땐 스마트 폰 어플로 아두이노에 'B' 문자를 전송하도록 합니다.
도난이 감지 될 경우 아두이노에서 스마트 폰으로 'A'를 전송하고 스마트 폰에서는 'A'를 받을 경우 진동이 울리도록 합니다.
SaBo