독거노인 모니터링 시스템

독거노인 모니터링 시스템


RaspberryPi Socket

Demo

기간

  • 2022.10 ~ 2022.12

요약

  • 네 대의 라즈베리 파이를 사용하여 임베디드 시스템을 구축
  • 두 대의 라즈베리 파이는 위험 감지(화재, 낙상 / 고독사)를 위한 센서 측정을 담당하고, 한 대의 라즈베리 파이는 AI 비서 서비스를 담당
  • 나머지 한 대의 라즈베리 파이는 각 센서의 값을 모아 위험 상태로 판단되면 알림을 출력
  • 각 라즈베리 파이는 소켓 통신으로 측정값과 메세지를 전달

기획 의도

  • 대한민국 사회의 급격한 고령화와 독거노인 인구수 증가에 따른 생활상의 어려움을 해결하고자 본 프로젝트를 기획$^{1)}$
  • 구체적인 생활상의 어려움으로 간호의 부재, 심리적 불안감, 외로움과 일상생활 문제 처리 등을 꼽을 수 있음$^{2)}$
  • 본 프로젝트에서는 사용자, 즉 독거노인의 자택 실시간 모니터링을 통해 위험을 감지하거나 사고를 예방할 수 있도록 하여 사용자의 생활 안전 보장과 심리적 불안감 또는 우울감을 해소할 수 있는 방법을 제고
  • 이를 통해 복지와 같은 사회적 비용 절감 효과를 기대하고 궁극적으로는 독거 노인의 사망률 감소와 행복 증진이라는 효과를 기대

개발 환경

  • 운영체제: Raspbian OS
  • 에디터: Geany
  • 프로그래밍 언어: C, Python
  • 형상관리: Git Ajou
  • 컴파일
    • 관리자: gcc -o server server.c -lpthread -lwiringPi
    • 화재 감지: gcc -o fire_detector fire_detector.c -lpthread
    • 낙상 및 고독사 감지: gcc -o fall_motion_detector fall_motion_detector.c -lpthread
    • AI 비서: google-assistant-demo —project-id PROJECT_ID —device-model-id DEVICE_MODEL

역할

  • 프로젝트 전체 인원: 4명
  • 나의 역할
    • 관리자(Server) 라즈베리파이 구현
      • 위험 판단 알고리즘 구현
      • 소켓 통신 구현
      • Buzzer, LED 알림 출력 구현

회고

  • 사실 한 대의 파이를 가지고도 구현할 수 있는 프로젝트 규모였지만 각 파이의 소켓 통신을 구현하고 기능을 분리하기 위해 총 네 대의 라즈베리 파이로 시스템을 구성하였습니다.
  • 관리자, 즉 서버의 역할을 하는 라즈베리 파이의 기능을 구현하였으며, 이 파이에서는 LED와 Buzzer를 이용하여 알림 기능을 수행하고, 클라이언트(위험 감지 파이)에서 위험 임계값이 넘은 값이 들어오면 작동하도록 설계하였습니다. LED의 경우 PWM 통신을 사용해 프로그래밍만을 통해 쉽게 제어를 가능케 하였고, Buzzer는 화재 위험과 낙상 / 고독사 위험을 구별하여 다른 멜로디를 출력하도록 했습니다. 수동 Buzzer는 입력 주파수에 따라 다양한 음색을 생성하여 출력할 수 있으나 제공 받은 Buzzer는 Active buzzer였기 때문에 고정된 주파수의 소리만을 생성하는 한계가 있어 WiringPi 라이브러리를 활용하여 음을 다르게 출력했습니다.
  • 시스템은 멀티 프로세스 기반의 다중 접속 서버로 구현했습니다. 연결이 하나 생성될 때마다 하나의 프로세스를 생성하여 해당 클라이언트에 대한 서비스를 제공합니다. 멀티 스레드에 비해 메모리를 많이 차지해 자원 낭비 이슈에 대한 논의가 있었으나, 서비스 특성 상 안정적인 서비스를 제공하는 것이 우선이라고 판단하여 이와 같은 서버를 구축했습니다.
  • 기획 당시 낙상 판단을 위해 카메라를 사용하려고 했으나, 판단에 불필요하다고 생각하여 사용하지 않았습니다.

  1. 통계청, 「장래가구추계」, 「장래인구추계」, 2022
  2. 한국보건사회연구원, 「보건복지 ISSUE & FOCUS」, 「노년기 독거 현황과 정책적 대응 전략」, 2015
© 2024 Seungwon Bae 🇰🇷