실내에서 잘 되던 장비를 현장에 설치했다. 설치하고 나서 여러 가지가 달라졌다.
Table of contents
Open Table of contents
실내에서 잘 되던 장비
가장 먼저 온도가 달랐다. 실내는 하루 종일 비슷한데 현장은 낮과 밤의 차이가 컸다.
전원도 달랐고 RSSI로 재 본 전파 세기도 달랐다. 실내에서 확인한 것은 그 조건에서 된다는 것이었지 어디서나 된다는 것이 아니었다.
문제가 난 장비를 가져와서 봤는데 실내에서는 멀쩡히 돌았다. 원인이 장비가 아니라 환경에 있었기 때문이다.
가져오는 순간 그 환경이 사라지므로 재현할 것이 없어진다. 그러니 이런 문제는 현장에서 자료를 모으는 수밖에 없다. 가져와서 본다는 접근 자체가 이 종류에는 안 맞았다.
상태와 환경 값을 함께 기록한다
현장에서 자료를 모으게 하면서 무엇을 남길지를 정했다. 장비 상태만 남기면 왜 그 상태가 됐는지를 알 수 없다.
그래서 I2C 센서가 읽은 온도와 ADC로 잰 전압도 함께 남기게 했다. RTC에서 받은 시각을 앞에 붙여 CSV 한 줄로 쌓으면 나중에 표로 열어 볼 수 있다.
두 가지를 겹쳐 보니 특정 온도 이상에서 문제가 몰려 있는 것이 드러났다. 상태만 있었으면 이 관계를 못 봤을 것이다.
관측에 걸리는 시간
이런 관측은 며칠에서 몇 달이 걸린다. 계절이 바뀌어야 나타나는 것도 있다.
그동안 그것만 붙잡고 있을 수는 없으므로 CSV가 쌓이게 해 놓고 다른 일을 했다. 대신 모이는 것을 가끔 훑어보게 했다. 현장에서 쓰는 사람이 이미 패턴을 아는 경우도 있어서 물어보면 아침에 자주 그렇다는 식으로 답이 나왔고 그것을 해 뜰 무렵의 온도와 RSSI 구간으로 바꿔서 확인했다.
나쁜 조건에서도 되게 설계한다
이 경험 뒤로 설계할 때 기준이 바뀌었다. 정상 조건에서 딱 맞게가 아니라 나쁜 조건에서도 되게 잡는다.
ADC로 재는 전압이 조금 낮아도 돌고 온도가 데이터시트의 동작 범위 끝에 가도 견디게 여유를 둔다. 그리고 UART를 하나 열어 현장에서 값을 조정할 수 있게 만들되 아무나 못 바꾸게 했다. 나갈 때마다 사람이 가야 하는 것과 원격으로 조정하는 것의 차이가 컸다.
정리
- 실내와 현장은 온도와 전원과 전파와 물리 조건이 다르다
- 실내에서 확인한 것은 그 조건에서 된다는 뜻이다
- 환경 문제는 가져오면 재현이 안 된다
- 현장에서 자료를 모으는 수밖에 없다
- 상태와 함께 온도·전압·
RSSI같은 환경 값을 기록해야 관계가 보인다 - 관측에 며칠에서 몇 달이 걸리므로
CSV를 쌓아 놓고 다른 일을 한다 - 쓰는 사람이 패턴을 알고 있으므로 물어서 조건으로 바꾼다
- 정상 조건이 아니라 나쁜 조건에서도 되게 설계한다