매미 파인더 개발 과정
매미는 시끄지만 여름을 상징하는 것이라고 할 수 있다.
통상적으로 아이들은 매미를 긴 곤충채집용 잠자리채 등을 이용해서 잡는데 매미는 소리는 나지만 찾기 어려운 경우가 있는데 나무 색깔과 비슷한 경우에는 안보이기 때문이다.
그리고 가까이가면 소리를 멈추기 때문에 어디있는지 찾기도 힘들다
그래서 조금은 멀리 떨어진 곳에서 소리가 나는 곳의 위치를 확인하면 매미를 포획하기가 더 쉽지않을까 하는 생각이 들었다.
소리를 기준으로 원점을 탐색하는 장비를 찾아보면 미군의 경우 음향을 기반으로 저격수의 위치를 탐지하는 장치를 운용하고 있다.
SODA-V(Sniper Observation & Detection Apparatus for Vehicle) 시스템으로 탄환의 충격파와 총성을 감지하여 방향과 거리를 계산할 수 있다.
이 장비는 멀리에서 저격하는 저격수를 탐지하는 것이라서 탐지 범위가 꽤 긴데 최대 1,500m, 유효 탐지 거리 약 1,034m라고 하며 탐지 속도 역시 총성 발생 후 0.5초 이내 탐지하고 1초 이내 정보를 표시해주는 장비이다.
저격을 하게 되면 저격수는 발사 후 즉시 자리를 이탈하기 때문에 잡기가 어려운데 이렇게 순식간에 위치를 파악하게 되면 효과적으로 대응이 가능하다.
7개의 마이크로폰(음향 센서)를 통해 총알이 만들어내는 충격파의 시간차를 분석하고, 이후 총성의 도달 시간을 계산하여 저격수의 위치를 파악하고 360도 전방위 탐지가 가능하다.
보통 매미의 경우 빠르게 도망가지 않으므로 개략적인 위치만 확인해도 쉽게 잡을 수 있으므로 매미 파인더는 음원에서 50cm ~ 1m 내외의 정확도 정도면 충분히 효과적이라고 생각했다.
하지만, 빠르게 움직이는 모기라면 훨씬 더 정확하고 빠른 추적이 필요할 것 같긴하다.
모기의 비행속도는 0.66~1.5m/sec 정도라서 1~2초안에 찾으면 대략적인 위치를 잡을 수 있지만 그걸 잡는건 또 다른 부분인 것 같다.
매미 파인더
작업 계획
음향 삼각측량(TDOA)을 이용한 매미 위치 추적 시스템에서 ESP32 보드에 여러 마이크로폰을 장착할 경우 마이크 간 거리는 최소 10~20cm 이상이 권장되므로 30cm 플라스틱 자를 이용하기로 결정하였다.
- 시간 해상도와 거리 계산
- 소리 속도: 343m/s (20°C 기준)
- ESP32 ADC 샘플링: 최대 16kHz → 시간 해상도 62.5μs
- 거리 변환:
$$ 343\text{m/s} \times 0.0000625\text{s} \approx 0.0214\text{m} $$ (2.14cm)
소리의 속도는 초당 343m를 가기 때문에 esp32보드를 이용하는 경우 ADC 샘플링 속도에 따라서 측정 가능한 거리가 달라진다.
여기에서는 최대 속도로 adc측정을 했을 때 2.14cm거리 차이까지 구분이 가능하다는 의미지만 하나의 esp32 보드를 사용한다면 당연히 순차적으로 읽어내므로 그보다는 정밀도가 떨어지게 된다.
매미 울음소리 주파수: ~4kHz
파장(λ)
$$ \lambda = \frac{343}{4000} \approx 8.57\text{cm} $$
권장 마이크 간격
$$ \frac{\lambda}{2} \approx 4.28\text{cm} $$ (위상차 측정 시)
|-----------------------|-----------|-------------------------------|
| 이론적 최소값 | 2.14cm | ADC 샘플링 한계 |
| 실용적 안전값 | 10~20cm | 노이즈 감쇄 및 신호 차분 효과 |
| 고주파(4kHz) 최적화 | 4.28cm | 반파장 거리 |
실제 사용은 30cm자를 활용해서 30cm자를 십자가 형태로 배치하여 설치
마이크
// 크로스 코릴레이션을 이용한 시간 지연 측정 예시
void calculateTDOA() {
float max_corr = 0;
int best_lag = 0;
for(int lag=-MAX_LAG; lag=0 && i+lag max_corr) {
max_corr = corr;
best_lag = lag;
}
}
float tdoa = best_lag * (1.0/SAMPLE_RATE); // [초]
}
실용적인 매미 추적에서 기대할 수 있는 오차 범위는 시스템 구성(마이크 간 거리, 샘플링 속도, 환경 소음, 신호 처리 방식 등)에 따라 달라지지만, 보통 수십 센티미터에서 1미터 이내가 일반적인 수준
매미 추적기(x-z 평면 십자 배치) 기기 및 센서 설계
- ESP32 개발보드 1개에 4개의 디지털 마이크(I2S MEMS 마이크)를 x-z 평면(세운 십자 모양, 30cm 자 활용)으로 부착
- 매미 소리의 도달 시간 차이를 측정해 3차원 위치(특히 x, z축 중심) 추정
- 결과는 Wi-Fi/BLE를 통해 스마트폰, PC 등으로 전송
센서 배치
30cm 자 2개를 십자(+)로 교차, 중심에 ESP32 보드 고정
각 끝점(총 4지점)에 I2S MEMS 마이크 부착 (x+, x-, z+, z-)
ESP32의 I2S 포트에 4개 마이크 연결(2개씩 멀티플렉싱 또는 I2S 확장)
각 마이크는 별도 전원 및 GND 필요
Wi-Fi/BLE 통신용 안테나 확보
I2S 마이크 신호 동시 샘플링
도달 시간 차(TDOA) 계산 및 3D 위치 추정 알고리즘 구현
결과 실시간 전송(웹서버, BLE, ESP-NOW 등 활용[2])
데이터 시각화(웹 브라우저, 모바일 앱 등)
| 부품명 | 수량 | 추천 모델/비고 |
|---|---|---|
| ESP32 개발보드 | 1 | ESP32 DevKitC, WROOM 등[2] |
| I2S MEMS 마이크 모듈 | 4 | INMP441, SPH0645LM4H 등 |
| 30cm 자(플라스틱/목재) | 2 | 십자 구조 프레임 제작용 |
| 점퍼선/브레드보드 | 1세트 | 마이크-ESP32 연결용 |
| USB 케이블/5V 전원 어댑터 | 1 | ESP32 전원 |
| 소형 나사/글루건/양면테이프 | 1세트 | 마이크·보드 고정용 |
마이크는 반드시 I2S(디지털) 타입을 권장, 아날로그 마이크는 동시 샘플링/노이즈 문제로 부적합
ESP32는 Wi-Fi/BLE/ESP-NOW 등 다양한 통신 방식 지원[2]
실외 설치 시 방수 케이스, 배터리팩 추가 고려
구성: ESP32 1개 + I2S MEMS 마이크 4개 + 30cm 자 2개(십자 프레임)
오차: 30cm~1m 내외(실용적 매미 추적)
확장: 실시간 데이터 전송, 시각화, 야외 설치 가능
화면 예시
- 중앙: 나침반 또는 3D 좌표계에 매미 위치 아이콘 표시
- 하단: 거리(m), 방향(도), 높이(m) 숫자로 표기
- 옵션: 현재 위치와 매미 위치를 지도에 표시
필요한 준비물 및 구매 목록
| 품목 | 수량 | 비고 |
|---|---|---|
| ESP32 개발보드 | 1 | Wi-Fi/BLE 지원 모델 |
| I2S MEMS 마이크 | 4 | INMP441 등 |
| 30cm 자(플라스틱/목재) | 2 | 십자 프레임 제작용 |
| 점퍼선/브레드보드 | 1세트 | 마이크-ESP32 연결용 |
| USB 케이블/5V 전원 어댑터 | 1 | ESP32 전원 |
| 스마트폰(Android/iOS) | 1 | 앱 설치 및 사용 |
| (옵션) 휴대용 배터리팩 | 1 | 야외 사용시 |
앱 개발 방향
- 플랫폼: Android (Kotlin/Java), iOS (Swift) 또는 크로스플랫폼(Flutter/React Native)
- 통신 방식:
- Wi-Fi: ESP32가 웹서버/소켓 서버로 동작, 스마트폰에서 접속
- BLE: ESP32가 BLE Peripheral, 스마트폰에서 스캔 및 데이터 수신
- UI 구현:
- 2D/3D 그래픽(예: 나침반, 3D 좌표계)
- 거리, 방향, 높이 실시간 표시
- 참고 앱: 기존 곤충 식별 앱[1][2][3][7][8]은 이미지 인식이 주 기능이지만, 위치·거리·방향 등 실시간 물리적 위치 정보를 보여주는 앱은 별도 개발 필요
실제 개발 예시 플로우
ESP32
- 4마이크로 매미 위치(거리, 각도, 높이) 산출
- Wi-Fi/BLE로 데이터 패킷 송출
스마트폰 앱
- ESP32로부터 데이터 수신
- UI에 거리, 방향, 높이 표시
- 그래픽(나침반, 3D 좌표계, 지도 등)으로 시각화
요약
- 필수 하드웨어: ESP32, I2S MEMS 마이크 4개, 30cm 자 2개, 스마트폰
- 앱 기능: 거리/방향/높이 실시간 표시, 직관적 UI(나침반/3D 좌표계/지도 등)
- 개발 방식: Wi-Fi 또는 BLE 통신, Android/iOS 앱 커스텀 개발 필요
이렇게 구성하면 스마트폰 화면에서 매미의 위치 정보를 직관적으로 확인할 수 있는 실용적인 추적 시스템을 구축할 수 있습니다.