본문 바로가기

프로젝트/Noise Detector (BLE)

[BLE 프로젝트] Noise Detector 목적 / 요구사항 / 시스템 흐름

제 블로그의 프로젝트 관련 포스트들은 모두 이용하는 제품이나 서비스에 대한 기본적인 이해를 가정하고 실제 구현을 목표로 하므로 기초적인 부분은 직접 공부해야 합니다.

Noise Detector 목적

외부 소음을 탐지하여 지정한 값보다 크면 경고색 또는 진동을 사용하여 사용자에게 알려준다. 외부 소음을 녹음하기 위한 목적은 아니다.

Noise Detector 요구사항

  1. 외부 소리에 대한 정보를 마이크를 통해 입력받아 BLE 통신을 사용하여 스마트폰으로 전송한다.
  2. 배터리 분리 없이 마이크로 USB 연결만으로 배터리를 충전시킬 수 있어야 한다.
  3. 저전력을 위해 연산 증폭기의 전원이 nRF51822에 의해 제어되어야 한다.
  4. 저전력을 위해 피어로부터 Noise Detector ON/OFF 명령을 받으면, 명령받은 동작을 수행할 수 있어야 한다. 
  5. 하나의 버튼으로 연결을 시작하거나 끊을 수 있고, 슬립 모드로 진입할 수 있어야 한다.
  6. 배터리 잔량을 측정할 수 있어야 한다.
  7. 현재 상태를 외부에 나타낼 수 있어야 한다.
  8. 위 작업들은 실시간으로 이루어 져야 한다.

Noise Detector 어플리케이션 요구사항

  1. 앱 화면이 활성화되어 있는 상태에서 전송받은 데이터를 그 수치만큼 오르내리는 애니메이션으로 보여준다.
  2. 앱 화면이 비활성화되어 있는 상태에서 전송받은 데이터중 최대값이 사용자가 설정한 임계값을 넘으면 진동을 발생시킨다.
  3. 사용자는 전송받은 데이터를 표시할 공간의 세로축을 최대한 원하는데로 설정할 수 있어야 한다.
  4. 사용자는 경고를 발생시킬 값(임계값)을 설정할 수 있어야 한다.
  5. 경고는 진동을 발생시킬 수도 있고 발생시키지 않을 수 있어야 한다
  6. 와이파이 간섭 현상으로 연결이 끊기면, 자동으로 재연결을 할 수 있어야 한다. 단, 사용자가 직접 연결을 끊으면 자동으로 재연결을 하지 않는다.
  7. 버튼은 BLE 기능과 연계되어야 하며 화면회전으로 버튼이 재구성될 때 이전 명령을 재수행해서는 안된다.
  8. 위 작업들은 실시간으로 이루어 져야 한다.

시스템 흐름

원 안에 있는 숫자는 제작 단계를 의미합니다.

adc ble noise detector system microphone lm358 animation