본문 바로가기

ESP32 Project

와이파이를 동작 감지 센서로 바꾸는 방법

반응형

 

제 공유기에서 방출되는 전파와 약간의 수학만 사용해서요.

 

참고 자료 Github 링크 


제 집 "실험실"은 외장 안테나가 장착된 ESP32-S3입니다.
 

조바심의 순간

2025년 9월 26일, IEEE 802.11bf 표준이 발표되어 Wi-Fi에서 기본적으로 움직임을 감지할 수 있게 되었습니다. 하지만 저는 기다리고 싶지 않았습니다.

호환되는 첫 번째 기기들은 몇 달 안에 (아마도) 출시될 예정이지만, 홈 자동화 마니아로서 저는 기다리는 게 너무 힘들어요 😅.

그래서 저는 Wi-Fi 스펙트럼 분석을 기반으로 하는 소형 동작 감지 시스템을 개발했습니다.

  • 10달러 미만의 마이크로컨트롤러(ESP32-S3)를 검출기로 사용합니다.
  • Home Assistant와 기본적으로 통합됩니다.
  • 벽 너머의 움직임까지 감지합니다 (개인 정보 보호가 "거의" 보장됨)
  • 수학 및 신호 처리 기술만 사용합니다 (인공지능은 사용하지 않습니다).

그날 제가 쓴 링크드인 게시물은 순식간 에 입소문을 타며 4,000개가 넘는 좋아요를 받았고 , 깃허브 프로젝트( ESPectre )는 2주 만에 거의 2,000개의 스타를 달성했습니다 . 아마 저만 조급했던 건 아니었나 봅니다!

 

나는 누구이며 왜 그랬는가?

제 이름은 프란체스코 페이스입니다. 수학 학위를 가지고 있으며 20년 넘게 IT 업계에 종사해 왔습니다. 홈 자동화는 제가 열정을 갖고 있는 분야 중 하나이며, 최근 Wi-Fi 센싱 의 세계를 접하게 되었습니다 .

802.11bf 표준 이 최근에 발표되었지만, 그 기반 기술은 사실 새로운 것이 아니며 1990년대 후반으로 거슬러 올라갑니다. 이 기술은 채널 상태 정보 (CSI)라고 불리며, Wi-Fi 신호의 다양한 서브캐리어에서 얻은 방대한 양의 물리적 정보를 처리하는 것을 포함합니다.

문제는 무엇일까요? 신호가 극도로 잡음이 많다는 것 입니다 . 가전제품, TV, 휴대폰, 그리고 사람 자체가 끊임없이 간섭을 일으킵니다. 이러한 이유로 대부분의 기존 솔루션은 머신러닝 기술을 사용하여 데이터를 정제하고 사람의 움직임 패턴을 인식합니다.

인공지능과 머신러닝이 지배하는 이 세상에서, 저는 저렴한 하드웨어와 수학적, 신호 처리만을 사용하여 탁월한 결과를 얻을 수 있다는 것을 보여주고 싶었습니다 . 신경망도, 모델 학습도, 기가바이트 단위의 데이터셋도 필요 없습니다. 오직 수학적 알고리즘, 디지털 필터, 그리고 고전적인 신호 분석만이 있을 뿐입니다.

 

작동 원리: 보이지 않는 것을 보이게 만들기

손전등 비유

어두운 방에서 켜진 손전등을 들고 있다고 상상해 보세요. 손전등 앞에서 손을 움직이면 그림자의 모양이 바뀝니다. 누군가 방에 들어오면 그림자의 움직임도 달라집니다.

와이파이도 같은 방식으로 작동하지만, 빛 대신 눈에 보이지 않는 전자기파를 사용합니다. 누군가 방에서 움직이면 라우터와 센서 사이를 이동하는 와이파이 파동을 "방해"하게 됩니다. 센서는 이러한 변화를 "감지"하여 움직임이 있는지 여부를 판단합니다.

CSI 데이터란 무엇인가

엄밀히 말하면, 우리가 분석하는 것은 CSI(채널 상태 정보) 라고 하는데 , 이는 무선 채널의 상태에 대한 정보입니다.

최신 Wi-Fi 시스템(OFDM, 직교 주파수 분할 다중화)에서는 신호가 수십 개의 서브캐리어 , 즉 병렬로 전송되는 서로 다른 주파수를 통해 전송됩니다. 수신기는 각 서브캐리어에 대해 다음을 계산합니다.

  • 진폭 : 신호의 강도
  • 위상 : 원래 신호에 비해 얼마나 "변동"되었는지

사람이 움직이면 변화가 일어납니다.

  • 다중경로 전파 (신호가 벽, 가구, 인체 등에 반사됨)
  • 도플러 효과 (움직임으로 인해 주파수에 미세한 변화가 발생함)
  • 공간에서 의 전자기장 분포

이러한 변화는 카메라나 마이크 없이도 벽 너머에서 수학적으로 감지할 수 있습니다 . 그렇다면 정확히 어떻게 작동하는 걸까요? 자세히 살펴보겠습니다.

 

기초 수학

여기서부터 흥미로워집니다. 전파를 통해 어떻게 "누군가 집에 있다"는 것을 알 수 있을까요?

1. PCA를 이용한 서브캐리어 선택

ESP32-S3는 64개의 서브캐리어(총 128바이트)를 제공합니다. 각 서브캐리어는 두 개의 구성 요소로 이루어진 복소수 로 표현됩니다 .

  • I (동위상) : 기준파와 정렬된 신호의 "실수" ​​성분
  • Q(직교) : 첫 번째 성분과 90° 위상차가 나는 "허수" 성분

이 I/Q 표현 방식은 신호의 진폭  위상을 모두 나타냅니다.

  • 진폭 = √(I² + Q²) → 신호의 강도
  • 위상 = arctan(Q/I) → 원래 신호에 비해 얼마나 "변동"되었는지

왜 이것이 중요할까요? 사람이 움직이면 신호의 진폭(신호가 감쇠되거나 강해짐) 과 위상(반사로 인해 신호가 도달하는 데 걸리는 시간 지연) 이 모두 변하기 때문입니다. 복소수는 이 두 가지 정보를 하나의 값으로 표현할 수 있게 해줍니다.

하지만 64개의 서브캐리어가 모두 똑같이 유용한 것은 아닙니다. 어떤 서브캐리어는 잡음이 더 심하고, 어떤 서브캐리어는 움직임에 더 민감합니다.

여기서는 주성분 분석(PCA) 이라는 기법을 사용하여 가장 유용한 정보를 담고 있는 서브캐리어를 식별합니다. 제 경우에는 서브캐리어 47~58이 해당합니다.

이러한 선택은 임의적인 것이 아니라 신호 대 잡음비를 최대화하는 수학적 분석의 결과입니다. 과학 문헌에 따르면 서브캐리어 선택은 ESP32-S3와 같은 저가형 하드웨어에서 우수한 성능을 달성하는 데 매우 중요합니다.

2. 이동 분산 세분화(MVS)

이 시스템의 핵심은 '이동 분산 분할(Moving Variance Segmentation)' 이라고 부르는 알고리즘입니다 . 작동 방식은 다음과 같습니다.

1단계: 공간 난류 계산

각 CSI 패킷에 대해 선택된 서브캐리어 진폭의 표준 편차를 계산합니다 .

난류 = std(amplitudes [ 47:58 ] )

이 지표는 주파수 공간에서 신호가 얼마나 "교란"되었는지를 나타냅니다.

2단계: 분산 이동

최근 20개의 난류 측정값을 원형 버퍼에 저장하고 이동 분산을 계산합니다 .

moving_variance = var(turbulence_buffer[t- 20 :t])

평균이 아닌 분산을 사용하는 이유는 무엇일까요? 움직임은 단순히 수준 변화뿐만 아니라 변동을 일으키기 때문입니다. 분산은 이러한 변동을 정확하게 포착합니다 .

3단계: 적응형 임계값

초기 보정 단계(조용한 환경에서 2~3분) 동안 이동 분산을 수집하고 다음을 계산합니다.

임계값 = 평균(분산) + K * 표준편차(분산)

여기서 K=2.5는 경험적 계수입니다. 이는 특정 환경(방 크기, 재료, 간섭)에 자동으로 조정되는 적응형 임계값 입니다.

4단계: 상태 머신

이 시스템은 간단한 2단계 상태 머신으로 작동합니다.

  • 유휴 상태 : moving_variance < threshold→ 움직임 없음
  • 동작 : moving_variance ≥ threshold→ 움직임 감지됨
Enter 키를 누르거나 클릭하여 이미지를 전체 크기로 보세요.
이미지에서 위쪽 두 그래프는 정지 상태(기준선)를 나타내고, 아래쪽 두 그래프는 움직임 감지 상태를 나타냅니다. 파란색 그래프는 신호의 공간적 "혼잡"을 나타냅니다.

3. 디지털 필터 파이프라인

현재 우리는 움직임 감지 방법 (움직임 분산 분할 덕분)을 알고 있지만, 걷기, 달리기, 넘어지기, 제스처 등을 구분하는 것과 같은 고급 분류 작업을 위해서는  나아가야 합니다.

움직임 유형을 분류하려면 신호에서 특징점 이라고 하는 더 자세한 정보를 추출해야 합니다 . 하지만 그 전에 배경 소음 (노이즈 제거)을 제거하는 것이 필수적입니다. 가전제품, Wi-Fi 간섭, 환경 진동 등이 사람의 움직임 패턴을 가리는 "노이즈"를 발생시키기 때문입니다.

이를 위해 특정 유형의 노이즈 제거에 특화된 디지털 필터 파이프라인을 순차적으로 적용합니다.

버터워스 저역 통과 필터(8Hz)

환경 간섭으로 인한 고주파 노이즈(>8Hz)를 제거합니다.

H ( s )  =  1  /  ( 1  +  ( s / ωc ) ^ ( 2n ) )​​

여기서 ωc = 8Hz이고 n=4(필터 차수)입니다.

웨이블릿 다우베치스 db4

이 필터가 가장 흥미롭습니다. 2022년 연구( 위치 정보 시스템 )를 바탕으로, ESP32에서 CSI 노이즈 제거에 있어 웨이블릿 db4가 기존 필터(버터워스, 가우시안)보다 우수한 성능을 보인다는 것을 발견했습니다 .

db4 웨이블릿은 신호를 다음과 같이 분해합니다.

  • 근사 계수 (저역 통과): 깨끗한 신호
  • 상세 계수 (고역 통과): 노이즈

지속적인 저주파 노이즈를 제거하고 근사 계수만 유지합니다.

함펠 필터

중앙값 절대편차(MAD)를 사용하여 이상치를 제거합니다 .

MAD = 중앙값(|x_i - 중앙값(x)|) 
이상치(|x_i - 중앙값(x)| > k * MAD인 경우)

k=3일 때, 이 필터는 견고하고 비모수적입니다.

사비츠키-골레이

신호의 피크를 보존하는 다항식 평활화 기법 (빠른 움직임 감지에 중요).

4. 수학적 특징 추출

움직임을 감지하고 깨끗한 신호를 얻은 후, 이제 필터링된 신호에서 특징을 추출할 수 있습니다.

통계적 특징 (5)

  1. 분산 : var(signal)- 신호 변동성
  2. 왜도 : E[(X-μ)³]/σ³분포의 비대칭성
  3. 첨도 : E[(X-μ)⁴]/σ⁴ - 3분포의 "두꺼운 꼬리"
  4. 섀넌 엔트로피 : H(X) = -Σ p(x) log₂ p(x)- 신호 무질서
  5. IQR(사분위 범위) : Q3 - Q1- 안정적인 분포

공간적 특징 (3)

  1. 공간적 분산 : 인접한 서브캐리어 간의 변동성
  2. 공간적 상관관계 :corr(subcarrier[i], subcarrier[i+1])
  3. 공간적 기울기 :mean(|subcarrier[i+1] - subcarrier[i]|)

시간적 특징 (2)

  1. 델타 평균 : mean(|CSI[t] - CSI[t-1]|)- 평균 변화량
  2. 델타 분산 : var(|CSI[t] - CSI[t-1]|)변화의 변동성

이러한 기능은 고급 작업(인원 계수, 활동 인식)에 사용할 수 있지만 간단한 동작 감지에는 필요하지 않습니다 .

 

결과

시스템 성능

수주간의 테스트와 수십 편의 논문 검토 끝에, 결과는 매우 훌륭합니다.

  • 존재 감지 : 정확도 약 95% (정지 상태 vs. 움직임)
  • 지연 시간 : 패킷당 50ms 미만 (시스템은 실시간으로 초당 약 20~100개의 패킷을 처리합니다)

실제 활용 사례

가능성은 무궁무진하지만, 몇 가지 현실적인 시나리오를 소개합니다.

  1. 가정 보안 : 움직임 감지 시 알림 기능
  2. 스마트 자동화 : 필요할 때만 켜지는 조명
  3. 에너지 절약 : 빈방에서는 난방이 자동으로 꺼집니다.
  4. 노인 모니터링 : 장시간 움직임이 없으면 알림이 울립니다.
  5. 사무실 환경 최적화 : 업무 공간 최적화
 

왜 인공지능이 아닌 수학인가?

  1. 별도의 교육이 필요 없습니다 . 2분간의 보정 후 바로 사용 가능합니다.
  2. 경량형 : 10달러 미만의 마이크로컨트롤러에서 실시간으로 작동합니다.
  3. 결정론적 : 동일한 입력 → 동일한 출력 (블랙박스가 아님)

수학적 접근 방식의 한계

수학적 접근 방식에는 한계가 있습니다.

  • 사람과 애완동물을 구분하지 않는다
  • 몇 명이 있는지 세지 않습니다.
  • 걷기, 달리기, 넘어지기 등 특정 활동을 인식하지 못합니다.

이러한 더 복잡한 작업에는 머신러닝 모델이 필요합니다. 하지만 ESPectre 의 장점은 추출된 수학적 특징이 신경망 의 입력으로 완벽하다는 점입니다 .

MQTT를 통한 ML 지원 통합

각 ESP32 장치는 세분화 데이터와 추출된 특징을 모두 포함하는 JSON 메시지를 MQTT에 게시합니다. 다음은 예시입니다.

{ 
  "movement" :  2.45 , 
  "threshold" :  2.20 , 
  "state" :  "motion" , 
  "segments_total" :  6 , 
  "features" :  { 
    "variance" :  315.5 , 
    "skewness" :  0.85 , 
    "kurtosis" :  1.23 , 
    "entropy" :  4.56 , 
    "iqr" :  89.2 , 
    "spatial_variance" :  234.1 , 
    "spatial_correlation" :  0.67 , 
    "spatial_gradient" :  12.3 , 
    "temporal_delta_mean" :  45.6 , 
    "temporal_delta_variance" :  78.9 
  } , 
  "timestamp" :  1730066405 
}
 

개인정보 보호 및 윤리적 고려 사항

CSI 데이터는 기술적으로는 익명화되어 있지만(이미지나 음성이 포함되지 않음), 시스템은 사람의 존재와 움직임을 감지할 수 있습니다. 이는 중요한 윤리적, 법적 문제를 제기합니다.

잠재적 위험

이 시스템은 다음과 같은 용도로 사용할 수 있습니다:

  • 비동의적 모니터링
  • 행동 프로파일링
  • 가정 내 사생활 침해

법률 준수

중요: 개인정보 보호법은 관할 지역에 따라 다르지만, 행동 패턴 데이터는 적절한 처리가 필요한 개인 데이터로 간주되는 경우가 많습니다.

  • 유럽 ​​연합 : GDPR 적용
  • 미국 : 주마다 법률이 다릅니다(캘리포니아는 CCPA, 버지니아는 CDPA 등).
  • 캐나다 : PIPEDA가 적용될 수 있습니다.
  • 영국 : 영국 GDPR 및 데이터 보호법이 적용됩니다.
  • 기타 지역 : 해당 지역의 개인정보 보호 규정을 참조하십시오.

사용자는 다음 사항에 대해 개인적으로 책임을 져야 합니다.

  1. 감시 대상자 모두로부터 명시적이고 충분한 정보에 입각한 동의를 얻어야 합니다.
  2. 해당 관할 지역의 적용 가능한 개인정보 보호법을 준수합니다.
  3. 시스템의 존재를 명확하게 알리는 것(예: 눈에 잘 띄는 표지판)
  4. 합법적인 목적(개인 보안, 허용된 홈 자동화)으로 사용을 제한합니다.
  5. 수집된 데이터를 보호하기 위한 적절한 보안 조치 시행
  6. 법률에서 요구하는 경우 데이터 접근 및 삭제 권한 제공

모든 도구와 마찬가지로 이 기술도 윤리적으로 또는 비윤리적으로 사용될 수 있습니다. 법적 책임은 전적으로 최종 사용자에게 있으며 , 오픈소스 프로젝트에는 없습니다.

실질적인 권장 사항

  • 이 시스템은 본인이 통제할 수 있는 환경 (예: 집) 에서만 사용하십시오.
  • 공용 공간에 기기를 설치할 때는 모든 거주자의 명시적인 동의를 받아야 합니다.
  • 시스템 사용 내역과 목적을 문서화하십시오.
  • 가끔 방문하는 사람들의 개인정보에 미치는 영향을 고려하십시오.
  • 상업 또는 공공 장소에 배포할 경우 법률 자문을 구하십시오.

개인정보 보호는 법적 요구 사항일 뿐만 아니라 기본권입니다. 이 기술을 책임감 있게 사용하십시오.

 

자원

프로젝트 및 연락처

과학적 참고자료

본 프로젝트는 Wi-Fi 감지 및 CSI 분석 분야에 대한 심층 연구를 기반으로 합니다.

[1] 볼로냐 대학교. CSI를 통한 인간 식별을 위한 Wi-Fi 감지 . 대학교 학위 논문, 2021. 이용 가능: https://amslaurea.unibo.it/id/eprint/29166/1/tesi.pdf

[2] 밀라노 공과대학교. Wi-Fi에서의 채널 상태 정보(CSI) 특징 수집 . 석사 학위 논문, 2022. 이용 가능: https://www.politesi.polimi.it/handle/10589/196727

[3] Wang, W., Liu, AX, Shahzad, M., Ling, K., & Lu, S. 평면 페이딩 환경에서 Wi-Fi 채널 상태 정보를 이용한 실내 동작 감지 . Sensors, 18(7), 2018. 이용 가능: https://pmc.ncbi.nlm.nih.gov/articles/PMC6068568/

[4] Hernandez, SM, & Bulut, E. WiFi 모션 감지: 효율성 및 분류에 대한 연구 . arXiv 사전 인쇄본 arXiv:1908.08476, 2019. 이용 가능: https://arxiv.org/abs/1908.08476

[5] Zou, H., Zhou, Y., Yang, J., Gu, W., Xie, L., & Spanos, C. CSI-HC: WiFi 기반 실내 복합 인간 동작 인식 방법 . 모바일 정보 시스템, 2020. 이용 가능: https://onlinelibrary.wiley.com/doi/10.1155/2020/3185416

[6] Hernandez, SM, Seker, R., & Bulut, E. WiFi 채널 상태 정보를 이용한 비상시 사람 위치 추정을 위한 위치 정보 시스템 . 제55회 하와이 국제 시스템 과학 학술대회(HICSS) 논문집, 2022. 이용 가능: https://scholarspace.manoa.hawaii.edu/server/api/core/bitstreams/a2d2de7c-7697-485b-97c5-62f4bf1260d0/content

 

결론

ESPectre는 저렴한 하드웨어와 고전적인 수학적 접근 방식을 사용하여 첨단 센싱 시스템을 구축하는 것이 가능하다는 것을 보여줍니다.

와이파이 센싱 의 미래는 유망하며, 이와 같은 프로젝트를 통해 누구나 미래의 표준이 될 기술을 지금 실험해 볼 수 있습니다.

이 코드는 완전한 오픈 소스 (GPLv3)입니다. 자유롭게 실험하고, 수정하고, 개선해 보세요. 마음에 드셨다면 GitHub 에서 별표(⭐)를 남겨주세요 !

 

 

기사 원문 출처 링크 

 

반응형

캐어랩 고객 지원

취업, 창업의 막막함, 외주 관리, 제품 부재!

당신의 고민은 무엇입니까? 현실과 동떨어진 교육, 실패만 반복하는 외주 계약, 아이디어는 있지만 구현할 기술이 없는 막막함.

우리는 알고 있습니다. 문제의 원인은 '명확한 학습, 실전 경험과 신뢰할 수 있는 기술력의 부재'에서 시작됩니다.

이제 고민을 멈추고, 캐어랩을 만나세요!

코딩(펌웨어), 전자부품과 디지털 회로설계, PCB 설계 제작, 고객(시장/수출) 발굴과 마케팅 전략으로 당신을 지원합니다.

제품 설계의 고수는 성공이 만든 게 아니라 실패가 만듭니다. 아이디어를 양산 가능한 제품으로!

귀사의 제품을 만드세요. 교육과 개발 실적으로 신뢰할 수 있는 파트너를 확보하세요.

지난 30년 여정, 캐어랩이 얻은 모든 것을 함께 나누고 싶습니다.

카카오 채널 추가하기

카톡 채팅방에서 무엇이든 물어보세요

당신의 성공을 위해 캐어랩과 함께 하세요.

캐어랩 온라인 채널 바로가기

캐어랩