[ESP32] 감압 센서 디바이스
완료
프로젝트 설명
[ESP32] 감압 센서 기반 HTTPS 통신 디바이스 및 복싱선수 체력검증 펌웨어 개발 의뢰
목표는 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. 검증 프로토콜(요약)
- 정적 하중 캘리브레이션(표준 추/로드셀 기준)·온도 드리프트 보정.
- 타격 더미·샌드백·미트 조건별 반복 측정(속도/각도 통제).
- 셔틀러닝/스텝·로프 세션에서 지속 10–15분 피로 누적 패턴 검증.
- 검증 리포트: 센서 오차, 지표 신뢰구간, 피로 지수 상관.
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