BeeMonitor: 스마트 양봉 관리 앱 - IoT와 머신러닝으로 벌통 상태 원격 모니터링
프로젝트 개요
BeeMonitor는 아두이노 나노 33 BLE 센스(Arduino Nano 33 BLE Sense)의 내장 마이크와 온습도 센서, 블루투스 저에너지(BLE) 기능을 활용하여 벌통 내부의 벌 윙윙 소리(버징)를 실시간 분석, 여왕벌 유무 판별과 분봉(Swarming) 조기 감지를 수행하고, 안드로이드 앱으로 결과를 확인할 수 있는 스마트 양봉 관리 시스템입니다. 양봉가의 노동력을 절감하고 꿀 생산 효율을 높이는 것을 목표로 합니다.
핵심 기능
- 머신러닝 기반 음성 분석: Edge Impulse로 학습된 신경망 모델이 마이크 신호에서 '여왕벌 있음(MATICA)', '여왕벌 없음(NIMATICE)', '분봉 발생(ROJENJE)' 3가지 클래스 분류
- 환경 모니터링: 내장 HTS221 센서로 온도/습도 주기적 측정 (벌통 건강 상태 판단 지표)
- 저전력 설계: 분봉 확률 높은 오전 10시~오후 1시에만 측정 수행, 나머지 시간 딥슬립으로 배터리 수명 연장
- BLE 무선 통신: 벌통 내 장치와 양봉가 스마트폰 간 페어링, 쏘임 위험 없이 안전 거리에서 데이터 확인
- 안드로이드 앱: 실시간 온도/습도/이벤트 표시, 알림 수신, 다중 벌통 관리 지원
하드웨어 구성
| 구성 요소 | 상세 |
| 메인 보드 | Arduino Nano 33 BLE Sense (마이크, 온습도, 가속도, BLE 내장) |
| 전원 | 리튬이온/리튬폴리머 배터리 (3.7V, 500mAh 이상 권장) + 전압 레귤레이터 또는 부스트 컨버터 |
| 하우징 | 방수/방습 케이스, 벌통 내부에 고정 가능한 마운트 |
| 모바일 단말 | 안드로이드 스마트폰 (BLE 지원, BeeMonitor 앱 설치) |
머신러닝 모델 개발 과정 (Edge Impulse)
- 데이터 수집: 벌통 내부에서 마이크로 버징 소리 녹음 (여왕벌 있음/없음, 분봉 상황 등 라벨링)
- 스펙트로그램 변환: 시계열 오디오 → 주파수-시간 영역 특징 추출 (MFCC 등)
- 신경망 학습: 1D CNN 등 경량 모델로 3개 클래스 분류 학습, 혼동 행렬로 성능 검증
- 아두이노 라이브러리 배포: 학습된 모델을 C++ 라이브러리(
ei-smartbees-arduino-1.0.6.zip)로 내보내기, 아두이노 IDE에서 포함
소프트웨어 아키텍처
아두이노 펌웨어 (주요 흐름)
void loop() {
central = BLE.central();
if (central) {
while (central.connected()) {
// 1. 오디오 추론 (PDM 마이크 → 추론 엔진)
microphone_inference_record();
ei_impulse_result_t result = run_classifier(&signal);
// 2. 온습도 읽기
float temp = HTS.readTemperature();
float hum = HTS.readHumidity();
// 3. 결과 해석 → 이벤트 라벨 결정
// result.classification[0..2] 중 최댓값 인덱스 → "MATICA"/"NIMATICE"/"ROJENJE"
// 4. JSON 패킷 생성 → BLE Characteristic으로 전송
StaticJsonDocument<600> doc;
doc["temperature"] = round(temp*10)/10.0;
doc["humidity"] = round(hum*10)/10.0;
doc["event"] = eventLabel;
serializeJson(doc, json);
serviceOutput.writeValue(json);
delay(2000); // 측정 주기
}
}
}
안드로이드 앱 (Kotlin/Android Studio)
- BLE 스캔 → "BeeHive" 장치 연결
- 알림(Notify) 구독으로 실시간 JSON 수신
- 메인 화면: 온도/습도 카드, 이벤트 배지(정상/주의/분봉 알림)
- 이력 그래프, 벌통별 관리, 설정 화면 구성
- 소스 코드: GitHub 저장소
- APK 다운로드: debug 빌드
직접 구현하기 (DIY 가이드)
- 아두이노 환경 설정: Arduino IDE 설치,
Arduino_Nano_33_BLE_Sense 보드 패키지 추가
- 라이브러리 설치:
ArduinoBLE, Arduino_HTS221, ArduinoJson, PDM 및 Edge Impulse 생성 라이브러리(ei-smartbees-arduino-1.0.6.zip)를 ZIP 라이브러리로 추가
- 펌웨어 업로드: 제공된
Arduino Nano ble 33 sense 스케치 컴파일·업로드
- 앱 설치: 안드로이드 폰에 APK 설치 (알 수 없는 출처 허용 필요)
- 벌통 설치: 장치를 벌통 상단/내부 프레임에 고정, 안테나 방향 고려, 방수 처리
- 페어링: 앱 실행 → 스캔 → "BeeHive" 선택 → 연결 → 데이터 수신 확인
향후 개선 로드맵
- 데이터셋 확대: 다양한 품종, 계절, 지역 벌통 소리 수집으로 모델 강건성 향상
- LoRaWAN 게이트웨이 연동: 블루투스 범위 한계 극복, 원격 서버(클라우드)로 데이터 적재·대시보드 구축
- 앱 기능 강화: 다중 벌통 지도 뷰, 알림 히스토리, 기상 데이터 연계, 양봉 일지 기능
- 엣지 추론 최적화: 양자화(QAT), 모델 경량화로 추론 속도/전력 개선
기대 효과 및 의의
- 양봉가의 주기적 벌통 개방 검사 횟수 대폭 감소 → 노동력 절감, 벌 스트레스 최소화
- 분봉 조기 감지로 꿀 손실 방지, 여왕벌 부재 신속 인지로 재여왕 작업 적기 수행
- 온습도 장기 데이터 축적으로 최적 양봉 환경 연구 기반 마련
- 오픈소스 하드웨어/소프트웨어로 커뮤니티 주도 개선·확산 가능
BeeMonitor는 임베디드 머신러닝(TinyML)과 IoT를 농업(양봉) 현장에 적용한 대표적인 사례입니다. 제공된 펌웨어, 모델 라이브러리, 안드로이드 앱 소스를 바탕으로 직접 구현해 보시고, 더 많은 벌 소리 데이터를 공유하여 모델 정확도를 함께 높여 나가시길 바랍니다.