팀이 한 일
- 밴드·허브·앱 세 부분의 구조 설계
- 밴드 심박 센서 연동과 신호 안정화
- 허브의 온습도·소음 측정과 위험 판정, 허브 음성·밴드 진동 경고 흐름
- 밴드–허브, 허브–앱 BLE 통신 구현
- 역할별 앱 화면과 이력 저장 구조
- 3D 프린트 하우징 제작과 상용 스마트워치와의 심박 비교 시험
문제
공모전 과제로 잡은 작업자 온열·소음 위험
이 시제품은 학생 팀이 창의혁신 공모전에 낸 작품입니다. 여름철 건설·제조 현장에서는 더위 속에 일하다 온열질환을 겪는 일이 해마다 나옵니다. 팀은 이 위험을 작업자 몸에 찬 장치로 먼저 알리는 방법을 찾았습니다.
작업자는 더위와 소음 속에서 자기 몸 상태를 스스로 알아채기 어렵습니다. 몸이 이상하다고 느낄 때는 이미 쉬어야 할 때가 지난 경우가 많습니다.
관리자는 여러 작업자의 상태를 동시에 봐야 합니다. 현장을 돌며 한 명씩 살피면 누가 위험한지 늦게 알게 됩니다.
작업자와 관리자에게 필요한 것이 달랐습니다. 팀은 앱을 보지 않아도 알아채는 경고와 작업자별 기록 조회를 함께 만들기로 했습니다.
해결
밴드가 잰 값을 허브가 판정해 앱으로 모으는 구조
팀은 역할이 다른 장치 셋을 BLE로 이었습니다. 측정과 판정, 조회를 서로 다른 장치에 맡겼습니다.
- 밴드: 손목에 차는 밴드가 심박과 체온을 잽니다. 심박 신호의 흔들림은 필터링과 피크 검출로 줄였습니다.
- 허브: 주변 온습도와 소음을 직접 재서 밴드 값과 합칩니다. WBGT가 폭염 작업 기준을 넘거나 심박이 높게 이어지면 위험으로 봅니다.
- 현장 경고: 위험하면 허브가 미리 녹음한 음성을 틉니다. 밴드도 진동으로 알립니다.
- 두 구간 BLE: 밴드는 허브로 광고 패킷(Advertisement)을 보냅니다. 앱은 허브에 GATT로 붙어 값을 읽습니다.
- 역할별 앱: 관리자는 작업자를 골라 여섯 가지 값과 과거 기록을 봅니다. 작업자는 자기 상태와 이력을, 비회원은 제한된 정보만 봅니다.
- 이력 저장: 측정값은 Firebase Realtime Database에 쌓이고 항목별 그래프로 다시 봅니다.
- 담당자 확인: 경고가 울리면 현장 관리자가 앱에서 그 작업자의 값과 이력을 보고 휴식 여부를 정합니다.
BLE 연결은 두 구간으로
처음에는 밴드·허브·앱을 한꺼번에 붙이다 자주 끊겼습니다. 팀은 밴드–허브와 허브–앱을 따로 떼어 구조를 단순하게 했습니다. 작은 BLE 칩은 여러 기기를 동시에 붙잡고 있으면 흔들리기 쉽습니다. 밴드는 연결 없이 광고 패킷만 보내 전력도 아낍니다.
위험 판정은 허브에서
경고는 몇 초만 늦어도 쓸모가 줄어듭니다. 현장에서는 휴대폰 연결이 끊기거나 관리자가 앱을 닫아 둘 때가 많습니다. 그래서 판정과 경고를 작업자 가까이 있는 허브에서 끝내게 했습니다.
심박에 체온·소음·WBGT를 더한 판정
심박만 보면 움직이기만 해도 경고가 날 수 있습니다. 팀은 체온, 소음, 온습도로 계산한 WBGT를 함께 보게 했습니다. 온열 위험은 몸의 열과 주변 더위가 겹칠 때 커지기 때문입니다.
결과
시제품 시험에서 확인한 작업자별 경고와 기록 조회
팀은 시제품 시험에서 밴드와 허브가 잰 여섯 가지 값이 관리자 앱에 작업자별로 나오는 것을 확인했습니다. 같은 운동에서 밴드와 상용 스마트워치의 심박 기록도 나란히 비교했습니다. 시험은 실내에서 팀원이 밴드를 차고 진행했습니다.