파일럿 테스트 설계
파일럿 테스트는 센서의 활용 가능성을 확인하기 위한 테스트이다.
파일럿 시스템은 다음의 기능을 갖추어야 한다.
- 라즈베리파이에서 적외선 센서를 통한 주기적인 온도 데이터 수집
- 수집한 센서값을 WiFi를 통해 DB로 전송
- 제네카페 로스팅으로부터 실제 데이터를 수집하여 데이터 분석
– 데이터 필터링 방안 연구 (평활화, threashold 기반 필터링, 밴드패스 필터링, 보간)
– 데이터 필터링을 위한 적정 윈도우 크기 연구
파일럿 시스템 설계

이 설계에는 분명한 단점이 있다.
바로 1Hz 이상의 샘플링레이트로 데이터를 실시간으로 수집하는 시스템의 데이터 수집과정에서 DB를 사용한다는 것이다.
하지만 파일럿 시스템은 센서값을 실시간으로 활용하지 않기 때문에 DB I/O로 인한 속도 저하는 문제되지 않는다.
두 번째 문제는 라즈베리파이의 시간 정확도가 낮다는 점이다.

* 하드웨어 타이머로는 DS3231을 사용
라즈베리파이는 단가 문제로 인해 태생적으로 시간 정확도가 떨어진다.
Rasbian OS에서의 경험상 소프트웨어 타이머에서 매초 1ms수준, 심한 경우 10~100ms수준의 딜레이를 확인한 적이 있다.
RTC를 달아준 후 커널 타이머로 측정하는 경우 매초 10us수준의 딜레이밖에 발생하지 않는다.
하지만 파일럿 시스템의 타겟은 센서값축(Y축)이기에 현 시점에서 시간축(X축)에서의 변동성은 고려할 필요가 없다.
프로토타입 시스템 설계
파일럿 테스트를 돌려보지 않아도 변동사항은 거의 없을 것으로 생각한다.
파일럿 시스템을 설계하는 겸 프로토타입 시스템도 함께 설계하였다.
시스템 버전은 귀찮음의 수준에 맞춰 두 가지로 만들었다.
물론 큰 귀찮음은 큰 성과를 야기한다.
ver. 작은 귀찮음

가장 일반적으로 생각해볼 수 있는 시스템 구조이다.
이 경우 앞서 말했듯 시간축(X축)에서 심각한 변동이 생긴다.
이를 해결하려면 반드시 별도의 하드웨어 타이머가 필요하다.
그것이 바로 아래의 큰 귀찮음 버전이다.
ver. 큰 귀찮음

하드웨어 타이머가 붙게 되면 여기서부턴 장난으로 끝나지 않고 상용 수준의 물건이 나오게 된다.
예전에 만들었던 코드들을 조각조각 이어 붙이면 직접 개발할 내용은 많진 않을 것 같은데
이 정도의 귀찮음을 올해의 내가 감당할 수 있을 거라 보진 않는다.
아티산의 오픈소스 프로젝트 취지를 고려하여 이 솔루션도 오픈소스로 풀 생각이다.
다만 제3자의 참여 독려와 일반 사용자의 편의를 위해서는 메인 배포자인 내가 어느 정도의 길을 닦아 놔야 할 것인데
둘 중 무엇이 되었든 올해 중엔 불가능할 것으로 생각한다.