[ESP32] 감압 센서 디바이스

[ESP32] 감압 센서 디바이스

씨엠스토리

카테고리: 임베디드

진행 방식: 외주 의뢰

완료

프로젝트 설명

[ESP32] 감압 센서 기반 HTTPS 통신 디바이스 및 복싱선수 체력검증 펌웨어 개발 의뢰

키워드: ESP32 감압(압력) 센서 HTTPS 통신 Wi-Fi 절전 TLS/인증서 고정 스포츠 과학 복싱 체력 검증 임베디드 펌웨어

목표는 ESP32 기반 감압(압력) 센서 디바이스를 설계·제작하여 데이터를 HTTPS(TLS)로 안전하게 업로드하고, 평시에는 Wi-Fi를 완전 오프로 절전하며, 복싱선수의 타격·스텝·로프·셔틀러닝 등 체력지표를 정량화하는 펌웨어/알고리즘을 구현하는 것입니다. 공공 조달/실증을 고려해 보안·품질·시험 절차를 정부 과제 기준에 맞춰 제시합니다.

1. 개발 범위(Scope)

  • 하드웨어: ESP32-WROOM/-S3 계열, 감압(압력) 센서(필름형/로드셀/FSR 중 용도 적합형), 저잡음 프런트엔드(INA/ADC), 전원부(배터리·충전·보호), 외함/방진.
  • 펌웨어: 센서 드라이버, 저전력 상태머신, Wi-Fi OFF 기본·주기/이벤트 시 ON→HTTPS 업로드→OFF, 로컬 버퍼링·재전송, OTA.
  • 보안/통신: TLS 1.2+ (mbedTLS), 서버 인증서 핀닝, HMAC 서명, 최소 권한 토큰, 시간동기(SNTP).
  • 클라우드: HTTPS Ingest API, 서명 검증, 원시/집계 저장, 대시보드(선택), 데이터 거버넌스(암호화·보존정책).
  • 스포츠 과학: 복싱 종목 맞춤 지표 설계(타격 압력·접촉시간·반복수·피로 누적지수 등) 및 검증 프로토콜.

2. 시스템 아키텍처(요약)

디바이스(Edge)

  • 센서 샘플링: 200–1000 Hz(종목별 가변)
  • 피크/적분/접촉시간·휴지시간 추출
  • 로컬 링버퍼(플래시/PSRAM)·결손 복구
  • 전송 트리거: N회 이벤트 또는 T분 경과
  • 전송 시퀀스: Wi-Fi ON → TLS Handshake → POST /ingest → 확인 → Wi-Fi OFF

서버/클라우드

  • HTTPS Ingest(API Gateway/Nginx)
  • 인증서 핀닝용 SPKI 제공
  • 서명 검증·리플레이 방지(Nonce·만료)
  • 시계열 저장(InfluxDB/Timescale) + 장비별 파티션
  • 분석 파이프라인: 전처리→지표 산출→리포트

3. 전력·무선 정책: “평시 Wi-Fi OFF” 설계

  • 기본 상태: Modem Sleep/Deep Sleep, Wi-Fi 전원 차단.
  • 전송 주기: 이벤트 누적(예: 타격 30회) 또는 T=5분 타이머 만료 시에만 ON.
  • 타임아웃: 연결/업로드 실패 시 최대 N=3회 재시도 후 즉시 OFF.
  • 펌웨어 훅: wifi_on()/wifi_off() API로 상태머신 일원화.
// 의사코드: Wi-Fi OFF 기반 HTTPS 업로드
void try_upload_and_sleep() {
  if (!should_upload()) return;
  wifi_on();
  if (tls_connect_pinned(&ctx, HOST, PORT, SPKI)) {
    http_post_json(&ctx, "/ingest", payload(), hmac());
  }
  wifi_off();
  enter_deep_sleep(MIN_UPLOAD_INTERVAL_MS);
}

4. 보안/개인정보 보호

  • TLS 1.2+, 서버 인증서 SPKI 핀닝, 강제 SNI/ALPN.
  • 장비 고유키(예: ED25519)로 HMAC/서명 부가, 리플레이 방지(Nonce·타임스탬프).
  • 개인정보 최소화: 선수 식별은 익명화 토큰(예: athlete_id 해시) 사용.
  • OTA 암호화·서명 검증, 디버그 포트 록, 출하키 관리(KMS/사내 HSM).

5. 데이터 모델(예시)

{
  "device_id": "ESP32-AB12CD34",
  "fw": "1.0.0",
  "ts": 1730060400,
  "session": "2025-10-28T10:00:00Z",
  "sport": "boxing",
  "metrics": {
    "strike_count": 120,
    "peak_force_N": [482.1, 515.3, 501.9],
    "contact_ms": [34, 31, 29],
    "rsi": 1.82,               // Reactive Strength Index(예시)
    "fatigue_index": 0.37      // 우리 알고리즘 지표
  },
  "raw": [
    {"t": 0, "p": 12}, {"t": 1, "p": 18} /* downsampled */
  ],
  "sign": "base64(hmac_sha256(payload, device_secret))"
}

6. Ingest API (HTTPS) 규격(요약)

Method Path 요구 헤더 설명
POST /ingest/v1/boxing X-Device-ID, X-Nonce, X-Signature, Content-Type: application/json 데이터 업로드
GET /cfg/v1 X-Device-ID 업로드 주기·샘플링률 등 원격 파라미터 조회

7. 체력검증 지표 및 알고리즘(복싱 특화)

  • 타격력: 압력→힘(N) 환산(센서 캘리브레이션 곡선), 피크·평균·적분(임펄스) 산출.
  • 접촉/회복: Contact Time/Inter-Strike Interval·변동계수(CV).
  • 피로 지수: 세트 내 피크 감소율·주파수 대역 에너지 이동(로우시프트)·휴지시간 증가율.
  • 세션 스코어: Score = w1·정확도 + w2·파워 + w3·지구력 + w4·회복(가중치는 지도학습/현장 튜닝).

8. 검증 프로토콜(요약)

  1. 정적 하중 캘리브레이션(표준 추/로드셀 기준)·온도 드리프트 보정.
  2. 타격 더미·샌드백·미트 조건별 반복 측정(속도/각도 통제).
  3. 셔틀러닝/스텝·로프 세션에서 지속 10–15분 피로 누적 패턴 검증.
  4. 검증 리포트: 센서 오차, 지표 신뢰구간, 피로 지수 상관.

9. 하드웨어 제안(초안)

  • ESP32-S3(PSRAM 옵션) + 저잡음 증폭(INA333 등) + 16비트 이상 ADC.
  • 전원: 3.7V Li-ion + 보호·충전, 저유실 스위칭/혹은 LDO 하이브리드.
  • 감압 센서: 용도별 선택(FSR 필름형: 글러브/미트, 로드셀: 스탠드형).
  • 확장: BLE 브로드캐스트(선택), 진동 모터/부저(피드백, 선택).

10. 납품물

  • 回 수량의 시제품(엔클로저 포함) 및 회로/기구 도면
  • 펌웨어 소스·빌드 스크립트·OTA 패키지
  • 서버 Ingest 모듈·스키마·운영 가이드
  • 검증 보고서(측정 재현성·정확도·보안 점검 결과)

11. 일정(예시)

단계 주요 작업 기간
요구정의 지표/프로토콜 확정, 부품 픽 2주
시제품 회로·펌웨어 v0.1, 업로드 시퀀스 4주
검증 캘리브레이션·현장 테스트 3주
파일럿 소규모 선수단 적용·피드백 3주

12. 자주 묻는 질문(FAQ)

Q1. Wi-Fi를 항상 끈 상태로 운영해도 되나요?

네. 평시 OFF, 업로드 시에만 ON으로 전환하는 상태머신을 기본 설계로 적용합니다. 실패 시 즉시 OFF하여 배터리를 보호합니다.

Q2. HTTPS 보안은 어떻게 보장하나요?

서버 인증서의 SPKI 핀닝과 장비 고유키 기반 HMAC/서명을 병행하여 MITM·리플레이를 방지합니다.

Q3. 피로 지수의 신뢰성은?

표준화된 프로토콜(반복·세트·휴지패턴)을 통해 검증하며, 선수별 기준선을 학습해 개인화 신뢰구간을 제공합니다.

13. 문의/의뢰

(주)제이는 임베디드·서버·모바일을 통합 수행하는 턴키 개발사로, 공공 실증/조달 프로젝트 경험을 바탕으로 보안·품질 기준에 맞춘 납품이 가능합니다. 상세 요구사항을 전달해주시면 기술 검토서와 일정·견적(초안)을 드립니다.

프로젝트 정보

진행 방식
외주 의뢰
예상 예산
100-500만원
예상 개발 기간
1-3개월
2025-04-02
시작일

필요한 기술 스택

지정된 기술 스택이 없습니다.

담당자 정보

담당자
신일섭
이메일
cmstory7@naver.com
연락처
01045069323

처리 중입니다...

잠시만 기다려주세요.