산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

스마트 알츠하이머 동반자: 아두이노 기반 알림·모니터링 시스템

부품 및 소모품

부품 수량 비고
아두이노 MKR1000 1 WiFi 내장, 소형 폼팩터
인피니언 센서 허브 나노 (Infineon Sensor Hub Nano) 1 DPS310 기압/온도/고도 센서 탑재, BLE
노키아 5110 LCD (84x48) 1 저렴하고 구하기 쉬움, 추후 OLED로 교체 권장
HC-05 블루투스 모듈 1 마스터 모드로 센서 허브와 페어링
브레드보드 1
점퍼 와이어 1세트
택트 스위치 12mm 1 응급 호출 버튼용
부저 1 알림음 재생용
FT1235 5W 무선 송신기 1 무선 충전용 (옵션)
FT1236 5W 무선 수신기 1 무선 충전용 (옵션)

필요 도구

앱 및 온라인 서비스

프로젝트 배경

알츠하이머 협회 통계(2017년 기준)에 따르면 환자와 보호자가 겪는 어려움이 엄청납니다. 메이커로서 환자와 보호자 모두를 돕는 착용형 기기를 만들기로 했습니다.

필수 기능

핵심 아이디어: 인피니언 센서 허브 나노

초소형에 BLE 탑재, 고정밀 기압 센서(DPS310)로 낙상 시 급격한 고도 변화 감지 및 실내 층별 위치 추정 가능. 하지만 안드로이드 폰 없이 독립 동작해야 하므로, 아두이노 MKR1000 + HC-05(마스터 모드)로 센서 허브와 직결하는 구조로 설계했습니다.

작동 원리

센서 허브 나노 ↔ HC-05 블루투스 통신

  1. 센서 허브 나노의 MAC 주소 확인 (안드로이드 앱 'IFX_NANOHUB'로 확인)
  2. HC-05를 AT 모드로 진입해 설정:
    • AT+RMAAD (기존 페어링 삭제)
    • AT+CMODE=0 (지정 MAC만 연결)
    • AT+ROLE=1 (마스터 모드)
    • AT+BIND=<MAC> (센서 허브 MAC 바인딩)
    • AT+UART=115200,0,0 (보드레이트 115200, 스톱비트 1, 패리티 없음)
  3. 전원 재인가 → 자동 페어링 확인 (LED 점멸 패턴 변화로 확인)

센서 데이터 수신 및 파싱

센서 허브 명령어 예시:

$hello id=          // 인사/연결 확인
$info id=           // 장치 정보
$sinfo id=1         // 센서 정보
$set_mode sid=1;md=mode;val=bg   // 저전력 모드
$set_mode sid=1;md=prs_osr;val=16 // 표준 모드
$set_mode sid=1;md=prs_mr;val=32  // 고정밀 모드
$start_sensor id=1  // 데이터 스트림 시작
$stop id=           // 정지

수신 데이터 포맷 (연속 스트림):

$1,t,36.9299,1154206  // 온도 (°C)
$1,p,997.6813,1154206  // 기압 (mBar)
$1,a,130.4305,1154206  // 고도 (m)

아두이노에서 Serial1.readStringUntil()와 parseFloat()로 효율적 파싱:

void getSensorValues() {
  String junkVal;
  if (Serial1.available()) {
    junkVal = Serial1.readStringUntil('\n');
    junkVal = Serial1.readStringUntil('t');
    t = Serial1.parseFloat();
    junkVal = Serial1.readStringUntil('p');
    p = Serial1.parseFloat();
    junkVal = Serial1.readStringUntil('a');
    a = Serial1.parseFloat();
    junkVal = Serial1.readStringUntil('\n');
  }
}

데이터 전송: 블링크(Blynk) 연동

MKR1000 WiFi로 블링크 서버에 가상 핀(V0:온도, V1:기압, V2:고도) 전송. 블링크 앱에서 실시간 그래프 확인 가능. 카옌(Cayenne)도 시도했으나 MKR1000 핀 선택 버그로 블링크 채택.

기능별 커스터마이징 가이드

낙상 감지 (Fall Detection)

연속 고도 측정값 차이(Δ고도)가 임계값 근접 시 낙상 판정.

void checkIfFalling() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    float diff = previousA - a; // 고도 감소량
    if (diff >= (FALL - CLEARANCE) && diff <= (FALL + CLEARANCE)) {
      fallState = true;
      // 블링크 알림, IFTTT 웹훅으로 SMS/전화 발송 등
      Blynk.virtualWrite(vFALL_PIN, 255);
      showFallMessage(); // LCD 표시
    }
    previousA = a;
    previousMillis = currentMillis;
    fallState = false;
    Blynk.virtualWrite(vFALL_PIN, 0);
  }
}

⚠️ 기압만으로는 오탐/미탐 가능성 있음 → 향후 가속도계 추가 권장.

실내 위치 추정 (층/방 감지)

온도 알림 (화재 등)

DPS310 온도값이 임계치(예: 45°C) 초과 시 보호자 알림. 센서가 피부 직접 접촉이 아니므로 주변 온도 측정임을 유의.

부저 및 비상 버튼

void emailOnButtonPress() {
  int isButtonPressed = !digitalRead(2); // 액티브 로우
  if (isButtonPressed) {
    Blynk.email("보호자@메일.com", "비상 버튼", "환자가 비상 버튼을 눌렀습니다.");
    // IFTTT 웹훅으로 SMS/전화 연동 가능
  }
}

디스플레이 (노키아 5110 / u8g2 라이브러리)

블링크 이벤터(Eventor) 위젯으로 스케줄 알림

코드 수정 없이 앱에서 요일/시간 설정 → 가상 핀 값 변경 → 아두이노에서 BLYNK_WRITE(vEVENTOR_PIN)로 감지해 알림 표시/부저 울림.

IFTTT 웹훅 연동으로 SMS/전화/이메일 발송

  1. 블링크 웹훅 위젯: URL에 IFTTT 웹훅 키/이벤트명 설정, 메서드 GET/POST
  2. IFTTT: 웹훅 트리거 → SMS/전화/G메일/슬랙 등 액션 연결
  3. 테스트: IFTTT 웹훅 설정 페이지에서 'Test it'으로 동작 확인

마무리 및 향후 과제

전원 및 충전

스마트 알츠하이머 동반자: 아두이노 기반 알림·모니터링 시스템

인클로저 (케이스)

시계형 웨어러블 디자인 구상 중. 레이저 커터/3D 프린터 접근 시 STL 공개 예정.

스마트 알츠하이머 동반자: 아두이노 기반 알림·모니터링 시스템

향후 개선 사항

소스 코드

1. AT 명령어 설정용 스케치 (AT_Commands.ino)

char c = ' ';
void setup() {
  Serial.begin(9600);
  Serial.println("Arduino with HC-05 is ready");
  Serial1.begin(38400); // HC-05 AT 모드 기본 보드레이트
  Serial.println("Serial1 started at 38400");
}
void loop() {
  if (Serial1.available()) { c = Serial1.read(); Serial.write(c); }
  if (Serial.available()) { c = Serial.read(); Serial.write(c); Serial1.write(c); }
}

2. 메인 스케치 (Alzheimer's_Assistant.ino)

전체 코드는 원문 참조. 주요 구성:

회로도

커스텀 파트/인클로저

디자인 컨셉용 STL (비율 미조정, 참고용)

제조공정

  1. 아두이노 나노 33 BLE 센스에서 Edge Impulse로 구현하는 TinyML 언어 감지기
  2. 아두이노 나노와 MPU-6050으로 실시간 자이로스코프 게임 만들기
  3. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  4. 아두이노 나노로 37개 LED 룰렛 게임 만들기
  5. ATtiny85 미니 아케이드: 스네이크 게임 - 휴대용 OLED 게임기 만들기
  6. 휴대용 거리 감지기: HC-SR04, 18650 배터리, 3D 프린트 케이스의 아두이노 나노 DIY 키트
  7. 아두이노 나노로 만드는 오디오 반응형 책상 무드등 (주소 지정 LED)
  8. 아두이노 나노 & OpenCV로 만드는 자율 주행 안면 추적 로봇 카
  9. 개인 건강 관리 어시스턴트(PHA): 커뮤니티 건강을 위한 스마트 IoT 솔루션
  10. 구리 도금 프로젝트: 아두이노 우노로 만드는 스마트 전기분해 시스템