제안

공고를 검토하며 확인이 필요하다고 판단한 항목입니다. 미확정으로 남기신 두 가지에 대한 의견도 함께 적었습니다.

측정 주기

측정 주기미확정 2번

실시간과 1시간 단위 중 미정이라고 하셨습니다. 실시간을 1초마다 읽어 그때그때 보내는 것으로 잡으면 장치 1대가 하루 86,400건, 1년이면 31,536,000건입니다. 10초마다 읽어 읽는 대로 보내면 하루 8,640건입니다. 장치가 늘수록 조회가 느려지고 저장 비용이 계속 늡니다. 반대로 1시간 단위면 하루 24건이라 포집 성능이 오르내리는 것을 놓칩니다.

센서는 10초마다 읽고 1분 평균을 전송하는 쪽을 권합니다. 하루 1,440건이라 3년에 장치 10대여도 약 1,500만 건으로 조회에 무리가 없고, 미세먼지처럼 순간적으로 튀는 값은 평균이 실제 상태에 가깝습니다. 원본 읽기값이 필요하면 장치에 며칠치를 따로 보관합니다. 읽기와 전송 주기는 설정에서 각각 바꿀 수 있게 만듭니다.

저장 건수 비교해 보기

웹 대시보드 화면

구축 방식미확정 1번

있으면 좋다는 단계라고 하셨습니다. 다만 없으면 CSV를 받아 엑셀에서 매번 그려야 하고, 포집 성능 확인이 목적이라면 그 작업이 계속 반복됩니다.

목록 조회와 CSV는 필수 범위에 넣고, 항목별 추이 그래프는 최소한으로 함께 넣는 것을 권합니다. 그리는 데 드는 비용이 크지 않고 값의 움직임을 바로 볼 수 있습니다. 조건별로 걸러 보는 본격적인 대시보드는 실제 데이터가 몇 주 쌓인 뒤에 무엇을 자주 보시는지 확인하고 붙이는 편이 낫습니다. 지금 정하면 안 쓰는 화면을 만들게 됩니다.

추이 그래프 보기

센서 이상값 처리

데이터 품질

센서가 고장 나면 0이나 최댓값이 한 번이 아니라 이어서 들어옵니다. 그대로 쌓으면 성능 데이터가 오염되고, 버리면 언제부터 고장이었는지 알 수 없습니다.

저장하되 이상값으로 표시하고 평균과 통계에서만 뺍니다. 세 항목이 모두 최댓값이면 센서 오류, 다섯 항목이 모두 0이면 연결 끊김, 같은 값이 이어지면 센서 멈춤으로 나눠 사유를 함께 남깁니다.

이상값 만들어 보기

통신이 끊긴 구간 처리

데이터 품질

도로에 세우는 장치라 통신이 끊기는 일이 생깁니다. 끊긴 동안의 측정값을 버리면 그 구간이 비고, 복구 시각으로 올리면 값이 한 시각에 몰려 성능 비교에 쓸 수 없습니다.

끊긴 동안 장치에 보관했다가 복구되면 측정 시각을 그대로 유지한 채 순서대로 올립니다. 보관 한도는 약 7일치로 잡고, 보관 후 올라온 값은 목록에서 구분해 표시합니다.

끊었다 복구해 보기

시각 동기화

데이터 품질

라즈베리파이는 시계를 스스로 유지하지 못해 전원이 끊기면 초기화됩니다. 통신도 끊긴 상태로 재부팅되면 시계가 틀어진 채 측정해 2000년 데이터가 쌓입니다.

기동할 때 서버 시각으로 맞추고, 통신이 없어 맞출 수 없으면 전송하지 않고 보관합니다. 동기화된 뒤 보관분에 보정 시각을 적용해 올리고, 보정한 값은 목록에서 구분해 표시합니다. 부품에 실시간 시계 모듈을 다는 방법도 있어 착수 시 함께 보시면 좋겠습니다.

동기화 없이 재부팅해 보기

장치 중단 알림

장치 운영

요구사항에는 최근 수신 시각 확인까지 있는데, 화면을 열어봐야 안다면 며칠 뒤에 발견하게 됩니다. 그 기간 데이터는 비어 있습니다.

일정 시간 수신이 없으면 이메일로 알립니다. 기준 시간과 받는 사람, 재알림 간격은 설정에서 바꿉니다. 문자는 발송 서비스 계약이 필요해 별도 항목으로 두었습니다.

알림 설정 보기

장치 인증

장치 운영

키 없이 아무 데서나 값을 보낼 수 있으면 어느 장치에서 온 값인지 확인할 수 없고 데이터를 신뢰할 수 없습니다.

장치마다 인증 키를 발급하고 서버가 그 키로 보낸 값만 받습니다. 장치를 등록할 때 키가 함께 발급되며, 라즈베리파이 설정 파일에 넣어 둡니다.

장치 등록 보기

포집 성능 비교

성능 검증

이 시스템을 만드시는 목적입니다. 측정값만 쌓이면 성능을 볼 때마다 CSV를 받아 엑셀에서 구간을 나눠 계산하게 됩니다.

포집 장치를 켜고 끈 구간을 기록하고 구간별 평균을 나란히 비교합니다. 온습도 평균도 함께 보여 조건이 비슷한 구간끼리 비교하셨는지 확인할 수 있게 합니다. 필수 범위에 넣을지는 예산과 함께 정하시면 되고, 나중에 붙이더라도 가동 구간 기록만 처음부터 쌓아 두시면 소급해서 계산할 수 있습니다.

가동 전후 비교 보기

대조군 장치

성능 검증

시간대에 따라 도로 미세먼지 자체가 오르내립니다. 가동 전후만 비교하면 그 차이가 포집 때문인지 시간대 때문인지 구분할 수 없습니다.

포집 장치가 없는 지점에도 측정 장치를 한 대 두고 같은 시간대를 함께 봅니다. 장치를 등록할 때 포집 장치 유무를 표시해 두면 비교 화면에서 자동으로 대조군으로 씁니다.

대조군 비교 보기

데이터 보관 기간

측정 주기

기간 제한 없이 누적한다고 하셨습니다. 지금 정하지 않으면 3년 뒤 용량과 조회 속도를 그때 가서 손봐야 합니다.

1분 평균 기준이면 장치 10대에 3년이 약 1,500만 건으로 문제없습니다. 1초마다 읽어 그대로 보내면 같은 조건이 9억 건을 넘어 달라집니다. 오래된 값을 1시간 평균으로 줄여 보관하는 방법도 있으니 주기를 정한 뒤 함께 보시면 됩니다.

저장 건수 보기

센서 모델 확정 시점

구축 방식

PMS5003과 PMS7003, DHT22와 BME280은 연결 방식과 값을 읽는 방법이 다릅니다. 늦게 정해지면 수집 프로그램을 다시 손봐야 합니다.

착수 전 확정을 권합니다. 확정 전에는 한쪽 기준으로 만들되 센서를 읽는 부분을 따로 떼어 두어, 다른 모델로 바뀌어도 그 부분만 갈아 끼우면 되게 만듭니다. BME280은 기압도 함께 재므로 나중에 항목을 늘리실 여지가 있습니다.

측정 항목 보기

장치가 늘어날 때

구축 방식

지금은 3대지만 도로마다 세우면 수가 늡니다. 장치를 늘릴 때마다 개발사를 부르는 구조면 운영이 막힙니다.

장치 등록은 화면에서 담당자가 직접 하고 인증 키가 그 자리에서 발급되게 합니다. 라즈베리파이 쪽은 설정 파일에 장치 ID와 키만 넣으면 되도록 만들고, 설치·구동 매뉴얼에 그 절차를 적어 드립니다.

장치 등록 보기
위 항목은 착수 회의에서 함께 확정합니다. 지금 화면에 넣어 둔 값은 저희가 권하는 기본값이며, 대부분 설정에서 바꿀 수 있게 두어 운영하며 조정하실 수 있습니다. 지금 장치는 3대이고 측정값은 5,623건 쌓여 있습니다.