스마트폰 알리미 만들기

Download Report

Transcript 스마트폰 알리미 만들기

스마트폰 알리미 만들기
본 내용은 돌발성 난청으로 한쪽 귀가 잘 안 들리셔서 전화를 제때 받지 못하시는 어머니를 위해 만들었습니다. 특히 사람
이 나이가 들면 소리나 진동을 잘 감지하기 어렵기 때문에 조명과 연동하여 시각적으로 알려주면 어떨까라는 생각에서 출
발하여 만들었습니다.
그럼 부족하지만 스마트폰 알리미를 만든 과정을 올리겠습니다. ^^
Step 1. 센서 테스트
① 준비물 리스트
- 조도센서 → CdS Cell (GL5537) 1 EA
- 진동센서 → 세라믹 진동 센서 (DFR0052) 1 EA
- 아두이노 우노 1 EA
② 회로도
③ Code
int Sensor=0;
void setup()
{
Serial.begin(115200);
}
void loop()
{
Sensor = analogRead(A3);
Serial.println (Sensor);
delay (100);
}
④ 테스트 결과
- 조도센서는 어두울 때에는 A3포트를 통해 읽힌 값이 950정도였으며, 밝을 때는 870정도의 값을 나타내었다. 따라서
마스터 부분을 작성할 때에는 900정도의 값을 임계값으로 설정하여 전화나 문자 수신여부를 확인할 수 있도록 코딩할 예정
임
- 진동센서는 초기에는 진동을 감지하여 A3포트를 통해 읽힌 값이 변하는 것을 확인하였으나 테스트 시 진동센서가 망
가져서 이번 프로젝트에서는 진동센서는 제외하고 조도센서만을 이용하여 마스터 부분을 제작할 예정임
Step 2. 마스터 만들기
① 준비물 리스트
- 조도센서 → CdS Cell (GL5537) 1 EA
- 갈릴레오2 → 1 EA
- Arduino Wireless proto shied → 1 EA
- Xbee → 1 EA
② 하드웨어 구성
- 갈릴레오2 보드에 아두이노 무선쉴드를 올리고 무선쉴드에 지그비 모듈을 결합
- 보드 위에 핸드폰을 거치할 수 있도록 아크릴판을 제작하여 갈릴레오2 보드와 결합
- 조도센서를 갈릴레오2 보드 박스 위쪽에 부착하고 센서 테스트 시 구성한 방법대로 갈릴레오2 보드에 연결함
③ Code
int Sensor = 0;
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200); // for PC Serial monitor
Serial1.begin(115200); // for Zigbee Communication
}
void loop()
{
Sensor = analogRead(A3);
Serial.println(Sensor, DEC);
if (Sensor < 900) {
digitalWrite(LED_BUILTIN, HIGH);
Serial1.write('a');
} else digitalWrite(LED_BUILTIN, LOW);
delay(200);
}
④ 테스트 결과
- 센서 테스트 시의 결과와 마찬가지로 마스터 보드에 스마트폰을 올려 놓고 전화 수신 시와 미수신 시의 테스트 결과 전
화 미수신 시 950정도였으며, 수신시 870정도의 값을 나타내었음
Step 3. 슬레이브 만들기
① 준비물 리스트
- LED조명모듈 → 1 EA
- 아두이노 우노 → 1 EA
- Xbee → 1 EA
② 하드웨어 구성
- LED 조명모듈은 ㈜가인테크에서 만든 모듈로 12V 전압에 650mA의 정전류 드라이버이며, 0 to 5V PWM 디밍이 가능
- LED 모듈을 아크릴로 제작한 거치대 위에 붙이고 뒤에 수납함에 아두이노 보드와 지그비 모듈을 설치함
- 지그비 모듈을 통해 전화수신 여부를 확인확인하며, 전화 수신 시 LED가 점점 밝아졌다가 점점 어두워지는 시스템임
③ Code
#define LED 11
int Sensor = 0;
int i;
void setup()
{ pinMode(LED_BUILTIN, OUTPUT);
analogWrite(LED, 0);
}
void loop()
{ Serial.begin(115200);
if(Serial.available() > 0) {
Sensor = Serial.read();
Serial.end();
if(Sensor = 'a') {
for(i=0 ; i<255; i++){
analogWrite(LED, i);
delay(5);}
for(i=255; i>=0; i--){
analogWrite(LED, i);
delay(5);}
}else analogWrite(LED, 0);
}
}
Step 4. 최종테스트
- 최종 테스트 관련 동영상은 별도의 파일로 제출
- 전화 수신 시 마스터에서 조도선세가 빛 밝기의 변화를 감지하여 지그비 모듈로 데이터를 송신하고 슬레이브가 이를
수신하여 LED 모듈을 정상적으로 동작시키는 것을 확인하였다.
- 추후 시스템은 진동까지 감지하여 빛 밝기 변화나 진동 여부를 확인하여 LED 모듈을 동작시키도록 진행할 예정임