스마트 복약 관리 시스템 (Swallow)
복약 알림부터 알약 배출, 보관 환경 확인, 컵 소독 보조까지 연결한 아두이노 기반 복약 관리 프로토타입
프로젝트 개요
Swallow는 사용자가 약 먹는 시간을 놓치지 않고 정해진 횟수에 맞춰 복용할 수 있도록 설계한 스마트 복약 관리 시스템입니다. 스마트폰 알림만 제공하는 데 그치지 않고, 알약 배출과 보관 환경 확인, 복용 컵 감지 기능을 하나의 아두이노 시제품으로 연결했습니다.
2022년 부산대학교 어드벤처 디자인 수업에서 3인 팀으로 진행했습니다. 센서 입력, 모터와 LED 제어, 시리얼 통신, 모바일 UI를 결합해 실제 하드웨어와 애플리케이션이 함께 동작하는 시스템을 구현하는 것이 목표였습니다.
주요 기능
- 복약 시간 알림: MIT App Inventor에서 복약 시간을 설정하고, 스마트폰의 현재 시각과 일치하면 알림을 표시합니다.
- 알약 한 알씩 배출: 버튼을 한 번 누를 때마다 스텝모터가 정해진 각도만큼 회전해 알약을 한 번 분량씩 떨어뜨리도록 설계했습니다.
- 보관 환경 모니터링: DHT11 센서로 측정한 기기 내부 온도와 습도를 HC-06 블루투스 모듈을 통해 앱으로 전송하고 화면에 표시합니다.
- 현재 시각 표시: DS1302 RTC 모듈에서 읽은 시간을 Text LCD에 출력해 기기에서도 현재 시각을 확인할 수 있습니다.
- 복용 컵 감지: 초음파 센서가 10cm 이내의 컵을 감지하면 UV-A LED가 켜지도록 센서와 출력 장치를 연동했습니다.
시스템 구성과 동작 흐름
MIT App Inventor ↔ HC-06 Bluetooth ↔ Arduino ↔ DHT11 온습도 센서
앱에서는 Time Picker로 복약 시간을 입력받고 주기적으로 현재 시각과 비교합니다. 블루투스 연결 후에는 Arduino가 전송한 온·습도 문자열을 수신해 화면에 갱신합니다. 하드웨어에서는 버튼 입력에 따라 스텝모터를 제어하고, 초음파 센서의 거리값에 따라 UV-A LED를 켜는 방식으로 각 기능을 분리해 구현했습니다. RTC 모듈과 LCD는 스마트폰과 별개로 현재 시각을 계속 표시합니다.
이 구조를 통해 모바일 알림, 무선 센서 데이터 전송, 물리적인 알약 배출이 순서대로 이어지는 복약 보조 흐름을 완성했습니다.
구현 결과와 배운 점
프로젝트를 통해 Arduino의 디지털·아날로그 입출력뿐 아니라 모터 구동, 센서 기반 조건 제어, RTC 시간 처리, 블루투스 직렬 통신을 하나의 시제품에 통합했습니다. 또한 App Inventor의 블록 프로그래밍으로 알림 설정과 센서 데이터 표시 화면을 구현하며 하드웨어와 모바일 애플리케이션 사이의 데이터 흐름을 설계했습니다.
향후에는 실제 복약 여부를 기록하는 기능과 보호자 알림, 헬스케어 플랫폼 연동을 추가해 복약 이력을 관리하는 서비스로 확장할 수 있습니다. UV-A LED 기능은 수업용 시제품에서 센서와 조명 제어를 검증한 것으로, 의료용 살균 성능을 검증한 장치는 아닙니다.
기술 스택
Arduino Mega 2560 / Uno · C/C++ · MIT App Inventor · HC-06 Bluetooth · DHT11 · DS1302 RTC · Text LCD · Stepper Motor · Ultrasonic Sensor · UV-A LED