인피니언 7월21일부터
Show me the 띵s : 헬스케어 (Healthcare)
콘테스트 프로젝트완료

독거인을 위한 비상연락 장치

Show me the 띵s : 헬스케어 (Healthcare)
촌가이버 프로필 보기
2022.05.11에 시작
7
좋아요
2.1K
조회
0
댓글
독거인을 위한 비상연락 장치

사용 기술

ArduinoEnvironmental SensingHealth & Medical DevicesHome Automation
Show me the 띵s : 헬스케어 (Healthcare)완료
콘테스트 프로젝트 진행 상황

각 Quest를 단계적으로 완성하는 프로젝트입니다.

Quest 1
Quest 2
Quest 3
Quest 4
4 / 4 완료
Quest 1: 독거인을 위한 비상 연락장비
2022.05.17
완료

현 시대에는 자의반 타의반 홀로 지내게 되는 경우가 많다.

그런데 어떤 연유에서든 비상상황이 되었을 때에 

급하게 연락을 취하고자 할 때, 또는 그 이상으로 움직이지도 못 할때를 대비하는 것으로

"독거인을 위한 비상 연락장비"를 구상해 본다. 

Quest 2: 독거인을 위한 비상연락 장비
2022.06.09
완료
  1. 주요 부품표.
    1. 1아두이노메가2560 https://www.icbanq.com/P008559840?gclid=EAIaIQobChMI9IjKu5agAIVTENgCh1MgwhjEAQYBCABEgIgmfD_BwE
      1. 2 RCWL0516 https://www.ic114.com/WebSite/SITE/SC2/00L0.aspx?sv=RCWL-05
        3 I2c LCD https://www.ic114.com/WebSite/SITE/SC2/00L0.aspx?sv=i2c%20lcd
        4 aPR33A3/E2.1  유테크놀러지, 유혁준사장님, 010-6345-1815 ?
        5 UM95089 -> 대치제품 HT920014sop https://kr.element14.com/holtek/ht9200b-14soplf/icdtmf-generator-smdsop14/dp/1420881gclid=EAIaIQobChMIv5GEkJmgAIVgq6WCh1L4gXgEAQYASABEgLgLvD_BwE&mckv=_dc|pcrid||pkw||pmt||slid||product|1420881|pgrid||ptaid||&CMP=KNC-GKR-GEN-SHOPPING-PMAX
        6 Transformer 600옴:600옴 매칭트랜스, 구로동 상가. ??
        7 5볼트릴레이 DS1E-M-DC5V https://eleparts.co.kr/goods/view?no=32293 
    2. ???????
      1. 아두이노 보드: 본 장비의 전체적인 동작을 관장하면서, 외부 센서로부터 입력을 받고, 그에 해당하는 동작을 한다. 또한 내부 연산에 의한 결정이 되면 출력을 내 보낸다. 여기서 최종 목적은 외부 전화라인을 통해 미리 예약된 전화번호에 다라 전화를 걸고, 미리 녹음된 정보를 송출한다. 송출이 완료되면 전화를 끊는다.
      2. 라이다 감지센서: 사람의 움직임을 감지한다.
      3. 인체감지센서: 사람의 움직임을 감지한다.
      4. I2C LCD: 간단한 내부 정보를 표시한다.
      5. 사운드보드: 전화를 통하여 송출할 내용을 미리 녹음을 하며, 필요한 동작에 의해 녹음된 내용을 재생한다.
      6. DTMF보드: 전화를 걸기 위한 2중음을 발생하여 전화를 걸 수 있도록 하는 회로다.
      7. DC5V Relay: 전화를 걸기 위하여 “On Hook” 하기 위한 신호 절체용이다.
  2. 제작 일정
    1. ~6/15 부품 정리
    2. ~6/20 회로 조립
    3. ~6/30 소프트 제작 및 디버그
    4. ~7/3 제출
Quest 3: 독거인을 위한 비상연락 장비 - 퀘스트3
2022.06.26
완료

1. 독거인을 위한 비상연락 장비

1-1. 행정안전부에서 202006월 발표한 자료에 따르면, 1인세대가 인구전체 주민등록세대의 38.5%나 된다고 한다.

1-2. 좀 더 구체적으로 1인 세대를 살펴본다.

 

1-3. 1인세대의 증가와 함께 고독사로 추정되는 무연고사 발생빈도도 증가하고 있다. 

1-4.

1. 이와 같은 상황에서 “ “나홀로족 고독사를 방지하고,  

    보다 빠른 연락을 할 수 있다면 좋을 것이다.” 라는

    취지에서 본 장비를 구상하게 되었다.

 

2. 인터넷, 무선 와이파이보다 저렴하고, 집에 전기가 

    단전이 되어도 전화는 가능한 점을 이용한다.

 

3. 프로젝트의 목표: 사물센서와 인체감지센서를

    이용하여 인체감지를 하여, 일정 시간이 되도록 움

    직임이 감지되지 않으면, 미리 기억시킨 전화번호로

    전화를 걸어 현재 상황을 알려준다.

 

2. 개발 툴

1.아두이노 통합 IDE.
1. 아두이노 IDE 1.8.13사용.
2. 아두이노 메가2560 사용.
1.I2C LCD 사용
2.MPR121 터치 키 사용

3. 소프트웨어 구성 

1.비상연락을 위한 전화번호 입력하기.
2.비상연락을 위한 내 목소리 녹음하기.
3.인체감지 센서 확인.
4.사물인지 센서 확인.
5.일정시간 감지센서에 변동이 없을 때 전화를 걸어 도움을 요청한다.
6.보조적으로 시계용 시각 정보입력.

4. 소프트웨어 흐름도

5. 오픈소스 활용

1.참조한 라이브러리

6. 프로그램 소스(미완성)

#include
#include
#include

LiquidCrystal_I2C lcd(0x27, 16, 2);

const int sens1   = A0;
const int hook    = 31;
const int snd2    = 32;
const int snd1    = 33;
const int snd_end = 35;

const int ce      = 30;
const int C1      = 22;
const int C2      = 23;
const int C3      = 24;
const int C4      = 25;
const int R1      = 29;
const int R2      = 28;
const int R3      = 27;
const int R4      = 26;

int       Tel_num[]={0,1,0,1,2,3,4,5,6,7,8};

void setup() 
{
  lcd.begin();
  lcd.backlight();
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Telephone sign");  
  
  Serial.begin(38400);
  Serial.println("Telephone numbering Test");

  pinMode(sens1, INPUT_PULLUP);
  pinMode(hook, OUTPUT);  digitalWrite(hook, LOW);
  pinMode(snd1, OUTPUT);  digitalWrite(snd1, HIGH); 
  pinMode(snd2, OUTPUT);  digitalWrite(snd2, HIGH); 
  pinMode(snd_end, INPUT);   
  pinMode(ce, OUTPUT);    digitalWrite(ce, LOW);
  pinMode(C1, OUTPUT);    digitalWrite(C1, HIGH);
  pinMode(C2, OUTPUT);    digitalWrite(C2, HIGH);
  pinMode(C3, OUTPUT);    digitalWrite(C3, HIGH);
  pinMode(C4, OUTPUT);    digitalWrite(C4, HIGH);
  pinMode(R1, OUTPUT);    digitalWrite(R1, HIGH);
  pinMode(R2, OUTPUT);    digitalWrite(R2, HIGH);
  pinMode(R3, OUTPUT);    digitalWrite(R3, HIGH);
  pinMode(R4, OUTPUT);    digitalWrite(R4, HIGH);
}

void loop() 
{
int i, j; 

  lcd.clear(); 
  lcd.setCursor(0,0);
  lcd.print("Tel No Ready");
  Serial.println("Tel No Ready");
  while(digitalRead(sens1));
  if(!digitalRead(sens1)){ while(!digitalRead(sens1)); } 
  //lcd.setCursor(0,1);

  digitalWrite(hook, HIGH);
  lcd.setCursor(0,1);
  lcd.print("Tel Hook On     ");
  Serial.println("Tel Hook On");
  delay(1600);
  lcd.setCursor(0,1);
  lcd.print("Tel:");
  Serial.print("Tel:");
  for(i=0; i<11; i++){ 
    j = Tel_num[i];
    tel_out(j);
    lcd.print(j);
    delay(150);
    digitalWrite(ce, LOW); 
    delay(1);
    digitalWrite(R1, HIGH); digitalWrite(R2, HIGH); digitalWrite(R3, HIGH); digitalWrite(R4, HIGH);
    digitalWrite(C1, HIGH); digitalWrite(C2, HIGH); digitalWrite(C3, HIGH); digitalWrite(C4, HIGH);
    delay(200);
  }
  Serial.println("");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.setCursor(0,1);
  lcd.print("Tel No Out End");
  Serial.println("Tel No Out End");
  for(i=0; i<7; i++){ delay(1000); Serial.print("Ring delay:"); Serial.println(i); }

  Serial.println("Help Me sound out");
  sound_out();
  Serial.println("Help Me sound End");
  digitalWrite(hook, LOW); 
  lcd.setCursor(0,1); 
  lcd.print("                ");
  lcd.setCursor(0,1);
  lcd.print("Tel Hook Off");
  Serial.println("Tel Hook Off");
  delay(1000);
}

void tel_out(int i)
{
  Serial.print(i);
  switch (i) {
    case 0:
      digitalWrite(C2, LOW);  digitalWrite(R4, LOW);  digitalWrite(ce, HIGH); 
      break;
    case 1:
      digitalWrite(C1, LOW);  digitalWrite(R1, LOW);  digitalWrite(ce, HIGH);
      break;
    case 2:
      digitalWrite(C2, LOW);  digitalWrite(R1, LOW);  digitalWrite(ce, HIGH);
      break;
    case 3:
      digitalWrite(C3, LOW);  digitalWrite(R1, LOW);  digitalWrite(ce, HIGH);
      break;
    case 4:
      digitalWrite(C1, LOW);  digitalWrite(R2, LOW);  digitalWrite(ce, HIGH);
      break;
    case 5:
      digitalWrite(C2, LOW);  digitalWrite(R2, LOW);  digitalWrite(ce, HIGH);
      break;
    case 6:
      digitalWrite(C3, LOW);  digitalWrite(R2, LOW);  digitalWrite(ce, HIGH);
      break;
    case 7:
      digitalWrite(C1, LOW);  digitalWrite(R3, LOW);  digitalWrite(ce, HIGH);
      break;
    case 8:
      digitalWrite(C2, LOW);  digitalWrite(R3, LOW);  digitalWrite(ce, HIGH);
      break;
    case 9:
      digitalWrite(C3, LOW);  digitalWrite(R3, LOW);  digitalWrite(ce, HIGH);
      break; 
    case '#':
      digitalWrite(C3, LOW);  digitalWrite(R4, LOW);  digitalWrite(ce, HIGH);
      break;
    case '*':
      digitalWrite(C1, LOW);  digitalWrite(R4, LOW);  digitalWrite(ce, HIGH);
      break;                 
    default:
      delay(50);
      digitalWrite(ce, LOW);
      break;  
  }
}

void sound_out()
{
  digitalWrite(snd2, LOW);
  delay(150);
  digitalWrite(snd2, HIGH);
  delay(50);
  while(!digitalRead(snd_end)); 
  delay(500);
  digitalWrite(snd1, LOW);
  delay(150);
  digitalWrite(snd1, HIGH);
  delay(50);
  while(!digitalRead(snd_end));
  delay(200);
}

7. 참조사항
1.뉴스:
   1.아시아경제 2020.07.08 인터넷 기사 인용 ( https://www.asiae.co.kr/article/2020070811424899264 )
   2.노컷뉴스 2021.05.14 인터넷기사 인용 ( https://news.nate.com/view/20210514n16723?mid=n1101 )
2.참조한 라이브러리
 
Quest 4: 독거인을 위한 비상연락장비-퀘스트4
2022.07.01
완료

독거인을 위한 비상연락 장비-4

--- 1인 가구의 증가에 따른 고독사가 증가하고 있다.

1.표지
2.개발과정-부품준비
3.개발과정-조립
4.개발과정-조립
5.개발완료-후기
개발과정 - 부품준비
1.처음 개발 시도를 할 때에는 아두이노 우노를 가지고 진행을 하고자 하였다. 그러나, 검토를 하는 과정에서 입출력의 한계를 느껴 아두이노 메가 2560으로 변경을 하게 되었다.
2.시대가 바뀌어 와이파이 또는 휴대전화의 보급이 아주 넓은 보편성을 가져서인지, 유선 전화에 관련된 칩이 생각보다 많지 않았다. 다행이 폐기직전의 팩스에서, 다이얼링 칩과 전화회선용  모듈러 잭을 재활용 할 수 있었다.
3.음성녹음 칩의 경우는, 예전 취미생활 중 하나로 만들었던 자동Cqer”에 사용되었던 녹음/재생이 편리한 칩을 그대로 재사용하였다.
4.전화번호 입력을 하기 위한 I2C LCD와 키 패드는, 아두이노 호환제품이 정크박스에 있어 재사용 하였다.
5.또한 인체감지센서는 주변 공장에서 폐기 처분하는 물건 중에 골라 놓았던 것을 실험을 해보니 아주 잘 작동을 하였다. 본 프로젝트에 사용하기에 아주 적당하였다.
6.라이다 센서는 미리 한번 사용해 본 경험이 있고, 마침 인터넷 국내 판매점에서 아주 저렴하게 구매를 할 수 있었다.

개발과정 -조립

1.처음 구상은 아두이노 우노로 시작하였으나 여러 가지 입출력을 고려하다 보니 아두이노 메가 2560으로 변경을 하게 되었다.
2.입출력 배선은 전부 브레드보드 점퍼로 처리하기에는 너무 복잡하여, 만능기판조립을 하기로 결정했다.
3.입출력을 간단히 정리하기 위해 처음 배선도에서 지정을 했던, 입출력 배선을 25602줄로 되어 있는 “Digital pins D22-D53”을 대부분 사용하기로 변경했다.
4.기타 배선명은 다음 장에 표기를 한다.

개발과정 - 조립

 

 개발과정 - 조립

 

개발 과정 - 시험.

 개발과정 - 시험

 

개발과정 - 시험

 

개발 후기

1.앞선 보고서에서 1인세대의 증가와 더불어 고독사 또는 무연고 사망이 급증하는 슬픈 현실이 보다 빠르게 다가왔다.
2.이에 혼자 있는 상황에서 위급함이 생겼을 때, 보다 빠르게 연락을 할 수 있으면 좋겠다는 취지 하에 본 프로젝트를 진행했다.
3.본 프로젝트를 진행 하면서 정리를 하다 보니, 여러 가지 생각 할 것이 많이 도출이 되었으나, 몇 가지로 단순화하는데 초점을 맞추었다.
4.본 프로젝트를 마무리 후에 자료를 더욱 보강하고, 검토를 하여 인체에 대한 센싱 기술을 많이 검토 되어야 하겠다는 숙제가 남았다.(반려 동물이 있는 경우 대비)
5.전화회선 제어에서도 통화 중, 미수신 등에 대한 미비점이 도출되어 보다 심화과정이 필요해 보인다.

프로젝트 자료실

프로젝트를 재현하거나 학습하는데 필요한 모든 자료를 제공합니다.

등록된 자료가 없습니다.

프로젝트 소개

사용 기술
ArduinoEnvironmental SensingHealth & Medical DevicesHome Automation

코드 & 회로도

등록된 코드/회로 자료가 없습니다.

댓글 0

아직 댓글이 없습니다. 첫 댓글을 남겨보세요!