[47호]독거노인을 위한 안전 경보 시스템
2017 ICT 융합 프로젝트 공모전 참가상
독거노인을 위한 안전 경보 시스템
글 | 동아대학교 허수종, 유창희
1. 심사평
칩센 작품의 개발 의도는 대략 이해할 수 있습니다만, 구체적으로 어떤 시나리오에 따라 동작하는지에 대해 명확히 파악이 되지 않습니다. 제품의 개발 의도와 같은 서비스를 각 지자체 등에서 충분히 고려하고 있어 아이템의 의도나 사용성은 충분한 분위기가 만들어져 있으나, 이를 실제로 적용할 때 완성도를 떠나 구체적인 시나리오가 필요한 작품입니다. PIR 센서의 동작 감지 범위등과 같은 특성과 감지 주파수(감도)등에 대한 기술적 부분을 먼저 이해하여, 이를 효율적으로 사용할수 있는 것에 대한 내용이 없고, 또한 시스템 전체 동작 시나리오가 부족합니다. 이러한 부분이 보고서를 통해 이해하기에는 쉽지 않습니다.
뉴티씨 요즘 고독사도 증가하고 있고, 이웃나라에서는 벌써 사회적 문제가 된 지 오래다. 우리나라도 조만간 독거노인이 매우 늘어나게 되는 데, 노인들의 안전은 우리 자신의 문제가 되가고 있다. 따라서 이 아이템은 매우 중요한 아이템으로 보인다. 다만, 센서의 단순화로 감지할 수 있는 내용이 제한되므로, 좀 더 많은 종류의 여러 가지 센서를 사용하여 접근하였으면 좋았을 것이다. 앞으로 관심을 가지고 좀 더 다양하고 실질적인 내용으로 거듭나기를 기대해 본다.
위드로봇 고령화 시대에 걸맞는 주제입니다. 실용성이나 작품의 완성도는 높습니다만, PIR 센서 이외에 추가 센서를 활용하여 이상 징후를 좀 더 명확하게 알 수 있는 부분이 아쉽습니다.
2. 작품요약
독거노인의 수가 증가하는 추세인 요즘 독거사와 같은 문제가 사회 문제로 대두되고 있습니다. 독거노인의 안전을 위한 시스템으로 인체 감지센서(PIR Sensor)를 이용해 독거노인의 생활 패턴을 파악하고 파악한 데이터를 통해 평소와 다른 이상 부분이 감지 및 발생될 경우 부저와 LED를 이용해 장거리 무선 통신을 통해 주위 이웃에게 알리고 미리 지정해 놓은 가족의 휴대폰 애플리케이션을 이용해 진동과 토스트 메시지를 사용함으로써 신속한 경보를 알리는 시스템입니다.
3. 작품 개요
3.1. 선정 배경 및 목적
노인 고독사가 사회적으로 큰 문제가 되고 있다. 보건복지부에 따르면 2015년 기준 독거노인은 138만명을 넘어섰다. 이 가운데 고독사 위험군의 노인이 30만명 정도 된다고 알려졌다. 2015년 기준 통계이므로, 2017년 3월인 지금은 그 수가 더 늘어났으리라 예상된다.
홀로 쓸쓸히 죽음을 맞이하는 노인 수도 한 해 1,000명을 넘어선다고 밝혀졌다. 갈수록 1인 가구가 늘고 고령화 속도가 빨라지면서 고령자 1인 가구도 더욱 많아지고 있다. 그만큼 노인 고독사도 더욱 증가할 것으로 보인다.
정부에서 고독사 통계를 낼 때, 고독사 대신 무연고 사망자 수로 통계를 파악하고 있고, 2013년의 명백한 고독사는 1717건이다. 고독사 가운데 일부는 유족에게 시신이 인계되므로 고독사는 무연고 사망자수보다 훨씬 많을 것으로 예상된다. 명백한 수치로만 통계를 내도 5시간마다 한명씩 아무도 모르게 죽고 있는 것이다. 그런데 고독사에 대한 대책은 자발적 참여자를 받아 독거노인 5~10명을 한 집에 모여 살게 하는 노인 공동생활가정을 운영하는 것, 주기적으로 봉사 활동자가 방문하는 것, 상담을 늘리는 것 정도로 문제의 규모에 비해 작은 편이다.
우리나라는 현재 고령화가 급속히 진행 중이다. 전문가들에 따르면, 10년 후 65세 이상 1인 가구가 현재보다 2배로 늘고 고령자 1인 가구도 전체 3분의 1수준에 육박할 것으로 전망하고 있다. 노인 고독사는 누구든지 처할 수 있는 문제이다. 그전까지는 생각하지 못했던 부분이지만, 작품을 계획하는 과정에서 조사를 하면서 문제의 심각성이 예상보다 크다는 점을 깨달았다. 고독사는 인간의 존엄성을 훼손하는 비극적인 사건이다. 독거노인 비중의 증가에 따른 고독사 문제를 해결하는데 도움이 되고자 해당 아이디어를 구상하였다.
3.2. 아이디어 대상
1. 독거노인
2. 출장이나 여행이 잦은 집
아이디어를 통해 집안에 외부 침입자의 유무를 파악할 수 있다.
4. 작품 설명
4.1. 주요 동작 및 특징
4.1.1. PIR 센서
PIR 센서는 인간의 몸에서 나오는 적외선을 감지했을 때 작동한다. 주로 3V-12V에서 작동하고 적외선을 전압의 형태로 변환시켜서 출력 전압은 High일 경우 3.3V의 출력을 Low 일 경우 0V의 출력을 발생한다.
감지 거리는 최대 7m, 140˚의 거리를 감지 할 수 있다.
4.1.2.블루투스
블루투스의 무선 시스템은 ISM 주파수 대역인 2400 ~ 2483.5MHz를 사용한다. 블루투스는 저렴한 가격에 저전력(100mW)으로 사용할 수 있다는 점이 장점이다. 블루투스는 주파수 대역을 나누기 때문에 데이터 전송을 여러 주파수에 걸쳐서 분할해 보낼 수 있다. 그렇기 때문에 무선 전송에 따른 보안 위협에서도 상대적으로 안전하다. 블루투스 신호는 벽이나 가방 등을 통과해서 전송될 수 있으므로 배선이나 연결 상황을 육안으로 확인할 필요가 없고 장애물이 있어도 신호를 주고받을 수 있다. 주파수 특성도 전 방향으로 신호가 전송되므로 각 장치를 연결하기 위해 일정한 각도를 유지할 필요가 없어 사용하기에 편리하다. 마지막으로 무엇보다 전 세계 수많은 국가가 블루투스 표준 규격을 준수하기 때문에 세계 어느 곳에서나 같은 기술을 이용할 수 있다.
4.2. 전체 시스템 구성
전원을 공급한 후 안드로이드 스튜디오를 통해 제작된 애플리케이션과 블루투스 페어링(블루투스 외 비콘(Beacon)이나 와이파이를 이용한 통신방법도 가능) 과정을 거친 후 PIR 센서가 사람을 인식하고 있을 때는 동작하지 않는다. 그러나 사람이 일정 시간동안 감지되지 않을 경우에 작동 하게 되는데 부저와 LED를 이용해 주위에 알리고 블루투스를 이용하여 독거노인의 가족들에게 관련 메시지와 진동 기능을 통해 보다 신속 정확한 대처를 할 수 있도록 한다. 작동을 멈추기 위해서는 미리 설정되어있는 비밀번호를 입력하여 동작을 해제해야 한다. 추가적으로 애플리케이션에 긴급 전화 버튼을 추가하여 알림을 받는 동시에 바로 전화하여 조치를 취하게 할 수 있다.
4.3. 개발 환경
ATmega128를 이용한 하드웨어 설계 및 제작
안드로이드 스튜디오를 이용한 애플리케이션 제작
4.4. 기대효과
독거노인의 비중이 증가하고 따라서 연간 독거사 사망자의 수가 늘어나고 있는 현재 사회에서 보다 체계적인 안전 시스템을 통해 위급 상황 시 빠른 응급조치를 통해 생명을 구할 수 있다. 또한 노인들로 하여금 안전 시스템을 통한 심리적 안정감을 줄 수 있다.
5. 단계별 제작 과정
애플리케이션과 연동을 위해 ATmega128을 이용해 블루투스 개발 및 주위에 알릴 수 있는 수단으로 부저와 LED 추가
· 애플리케이션에 블루투스 기능 추가 및 페어링 환경 구축
· 블루투스 페어링 동작 유무 확인 및 메시지 송수신 여부 확인
· 외부 하드웨어 설계
6. 기타
6.1. 회로도
ATmega128, PIR Sensor, Bluetooth 모듈과 관련된 회로 라이브러리를 제공하지 않기 때문에 OrCAD를 이용해서 추가로 제작하여 회로를 구성.
6.2. OrCAD를 이용한 기판 배치도(PCB)
6.3. 애플리케이션
PIR 센서가 인식이 되면 LED와 부저가 켜지고 안드로이드 스튜디오를 통해 제작한 애플리케이션과의 블루투스 통신을 통해 AVR에서 문자를 전송하고 애플리케이션에서 문자를 수신하면 토스트 메시지와 진동이 울린다. 센서가 인식을 안 할 때 까지 계속해서 동작 하는 시스템이다.
6.4.소스 코드
AVR 소스
/*
* Reference about PIN Setting
* BlueTooth : PE1(RXD0/PDI), PE0(TXD0/PDO)
* PIR Sensor : PD0(SCL/INT0)
* LED : PB4-7
* Buzzer : PG3
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <string.h>
#include “ATmega128_v20.H”
#include “sub32.h”
ISR(TIMER3_OVF_vect) // 타이머 카운터 오버플로우 인터럽트
{
OCR3A =360; // 0~360까지 비교일치 후 오버플로우 발생, Port : PE3
}
int main()
{
MCU_initialize(); // MCU 초기화
Delay_ms(50);
LCD_initialize(); // LCD 초기화
Beep();
LCD_string(0×80,”16 Fall Semester”);
LCD_string(0xC0,”PROJECT “);
/* The first setting for state initialize */
UCSR0B |=(1<<TXEN0); // 송신 허용
UCSR0C |=(1<<UCSZ01)|(1<<UCSZ00); // Data rate 8bit
UBRR0H=0; UBRR0L=103; // Communication(signal) speed 9600bps
sei(); // 전역 인터럽트 허용
/* Setting for USART(about BlueTooth) */
Delay_ms(1000);
LCD_string(0×80,”SENSOR “);
LCD_string(0xC0,”COUNTER “);
while (1) password_input();
}
/*
* 사용된 함수들만 따로 헤더파일 정리
*/
#include “sub32.h”
int detect_counter=-1; // 센서 횟수 카운터 변수
unsigned char str[100];
int pw[5]={1,2,3,4};
int pw_check=0;
int num;
int str_num[20];
int enter=0;
//char *str=”abc123″;
unsigned int sum, ad_result;
unsigned int i =0;
unsigned int ADC6=0, ADC7=0;
int ADConvertor(char ch)
{
ADMUX = (ch&0x1F) | 0×40; // AVCC 사용
ADCSRA = (1<<ADEN)|(1<<ADSC)|(7<<ADPS0);
// ADC 허용, 프리스케일러 128
while((ADCSRA & 0×10)!= 0×10); //AD변환 과정이 끝났는지 확인
sum = ADCL+ADCH*256; // ADCW*256
return(ADC); // ADC의 값을 반환
}
void main_while()
{
ad_result = ADConvertor(6);
ADConvertor(6);
ADC6 = (sum/102.3*10);
LCD_command(0×80+12);
LCD_3d(ADC6); // LCD에 ADC6의 값을 출력
ADConvertor(7);
ADC7 = (sum/102.3*10); //in board ADC6 Position setting
LCD_command(0×80+8);
LCD_3d(ADC7); // LCD에 ADC7의 값을 출력
if(ADC6==100&ADC7==100) // 가변저항 2개의 값이 100 100 인지 확인
{
Delay_ms(70);
if(ADC7==100)
{
Delay_ms(1000);
state_on();
tx_char(’1′); // 문자 전송
}
}
else state_off();
}
void password_check(int input) // 비밀번호 확인 함수
{
num=input;
//LCD_command(0xC0+2);
//LCD_3d(num);
if(num==pw[pw_check]) // 미리 지정해둔 비밀번호와 일치 여부 확인
{
Beep();
pw_check++;
Delay_ms(100);
if(pw_check==4)
{
Beep();
Delay_ms(100);
Beep();
enter=1;
}
}
return enter;
}
void password_input() // 각각의 스위치에 숫자 지정
{
if(enter==0)
{
main_while();
switch(Key_input())
{
case 0x0E : password_check(1); // 1입력
break;
case 0x0D : password_check(2);// 2입력
break;
case 0x0B : password_check(3); // 3입력
break;
case 0×07 : password_check(4); // 4입력
break;
default : break;
}
}
else if(enter==1)
{
LCD_string(0×80,”LOGIN OK “);
LCD_string(0xC0,” “);
}
}
int counter(void)
{
++detect_counter; // 센서 감지 횟수 카운터
return detect_counter; // 카운터 값을 출력
}
void state_off(void) // PIR detect off
{
PORTB=0×00;
//PORTG=0×00;
//LCD_string(0×80,”SENSOR “);
}
void state_on(void) // PIR detect on
{
PORTB=0xf0; // LED 0000
//PORTG=0×08; // Buzzer
Beep();
//LCD_string(0×80,”SENSOR “);
LCD_command(0xC0+11);
counter();
LCD_3d(detect_counter);
}
void tx_char(unsigned char tx_data) // 한 문자 전송 함수
{
while((UCSR0A&0×20) == 0); // UDR0 레지스터가 빌 때까지 대기
UDR0 = tx_data; // UDR0 레지스터에 전송할 문자 입력
}
void tx_string(char *str) // 문자열 전송 함수
{
int i,j;
i=strlen(str); // 입력 받은 문자열의 길이를 변수 i로 지정
for(j=0;j<i;j++)
{
tx_char(*(str++));
/* 한 문자 전송 함수에 문자열의 길이를 파악 후 그 수치만큼 전송 */
}
}
6.5. 참고문헌
· 인체감지센서 참고 :http://blog.naver.com/yjhzzing4699?Redirect=Log&logNo=20161140929
· 블루투스 참고 : http://tip.daum.net/question/83517583
· 통계청 : http://kostat.go.kr/portal/korea/index.action
· 특허정보검색서비스 : www.kipris.or.kr
· 독거노인의 증가 추이와 독거노인 현황 : 한겨레 신문