늦여름 베란다에 아두이노 I2C 센서를 한 달 달아봤더니
낮에는 뜨겁고 새벽에는 축축한 늦여름 베란다에 센서 노드를 설치하자 첫 주부터 예상 밖의 일이 생겼습니다. 온습도 값은 정상인데 가끔 I2C 통신이 멈췄고, 비가 오지 않은 날에도 센서 기판 가장자리에 미세한 물방울이 맺혔습니다. 책상 위에서 멀쩡했던 회로가 실외에 가까운 환경에서는 왜 불안정해지는지 확인하려고, 아두이노와 온습도·조도 센서를 한 달 동안 운용하며 배선과 케이스를 차례로 바꿔봤습니다.
이번 실험의 목표는 최고 정밀도를 얻는 것이 아니라 늦여름의 고온다습한 환경에서 센서 연결을 얼마나 안정적으로 유지할 수 있는지 알아보는 것이었습니다. 처음 프로젝트를 구성한다면 아두이노의 기본 개념과 활용 범위를 먼저 살펴보면 보드, 쉴드, 센서 모듈의 관계를 이해하는 데 도움이 됩니다.
첫 주에는 비보다 새벽 결로가 더 큰 문제였습니다
측정값은 정상이어도 회로 표면은 젖을 수 있습니다
구성은 아두이노 호환 보드, I2C 방식 온습도 센서, 조도 센서, 5V USB 전원으로 단순하게 잡았습니다. 센서는 비를 직접 맞지 않는 베란다 안쪽에 두고 1분마다 값을 읽었습니다. 낮 동안 케이스 내부 온도가 올라갔다가 새벽에 외부 공기가 빠르게 식으면서, 상대습도가 90% 부근에 머무는 시간대에 투명 덮개 안쪽부터 흐려졌습니다.
문제는 센서 수치만 보고서는 결로 직전 상태를 놓치기 쉽다는 점입니다. 상대습도 100%가 아니더라도 기판이나 금속 단자의 표면 온도가 이슬점보다 낮아지면 물방울이 생길 수 있습니다. 특히 벽 가까이, 알루미늄 창틀 근처, 에어컨 실외기 바람이 닿는 위치는 공기 온도와 기판 온도의 차이가 커졌습니다. 여러분의 센서도 새벽에만 오류가 난다면 코드보다 먼저 설치 위치를 의심해볼 만합니다.
- 새벽 4~7시: 온도 하강과 습도 상승이 겹쳐 결로 가능성이 가장 높았습니다.
- 창틀 바로 옆: 금속을 통해 냉기가 전달되어 같은 케이스라도 내부가 더 빨리 흐려졌습니다.
- 밀폐 용기: 빗물은 막았지만 낮에 들어온 습기가 빠져나가지 못해 오히려 물방울이 오래 남았습니다.
- 센서 노출구: 너무 작으면 응답이 느리고, 위를 향해 뚫으면 먼지와 낙수가 직접 들어왔습니다.
현장 팁: 방수와 밀폐는 같은 말이 아닙니다. 온습도 센서는 공기와 접촉해야 하므로, 아래쪽을 향한 통풍구와 소수성 멤브레인을 조합하는 편이 무조건 밀봉하는 것보다 현실적입니다.
설치 위치를 20cm 옮긴 것만으로도 달라졌습니다
센서함을 창틀에서 약 20cm 떼고 벽과 직접 맞닿지 않게 스페이서를 넣자 새벽 오류 횟수가 눈에 띄게 줄었습니다. 케이스는 밝은 색을 사용하고 직사광선을 피했습니다. 검은색 케이스는 오후에 내부 온도가 실제 공기보다 크게 올라가 온도 기록을 왜곡했고, 그 열이 밤에 빠르게 식으면서 내부 공기의 온도 변화 폭까지 키웠습니다.
- 설치 전날 같은 장소에 빈 케이스를 두어 내부에 물방울이 생기는지 확인합니다.
- 센서 소자는 기판 바닥이나 벽에서 띄워 공기가 사방으로 흐르게 합니다.
- 케이블 인입구는 아래로 향하게 하고 케이블에 물끊기 고리를 만듭니다.
- 첫 일주일은 오전과 새벽 로그를 나누어 온도, 습도, 오류 시각을 함께 기록합니다.
둘째 주부터는 I2C 배선과 복구 코드를 함께 손봤습니다
긴 점퍼선과 중복 풀업이 습한 날 더 민감했습니다
처음에는 센서함을 보기 좋은 위치에 두려고 SDA와 SCL 점퍼선을 약 80cm까지 늘렸습니다. 건조한 낮에는 잘 작동했지만 습도가 높아진 새벽에는 간헐적으로 응답이 늦거나 읽기 함수가 실패했습니다. I2C는 보드 내부가 아니라 외부 배선에서도 동작하지만, 본질적으로 짧은 기판 간 통신에 잘 맞습니다. 선이 길어지면 배선의 정전용량과 주변 잡음이 커져 신호 상승 시간이 느려집니다.
시판 센서 모듈에는 보통 풀업 저항이 이미 달려 있습니다. 모듈을 여러 개 연결하면 저항이 병렬로 붙어 전체 풀업 저항값이 지나치게 낮아질 수 있고, 반대로 풀업이 없거나 값이 너무 크면 상승 에지가 둔해집니다. 저는 모듈의 회로와 저항 표기를 확인한 뒤 중복 풀업을 줄이고, 배선을 약 25cm로 짧게 만들었습니다. 아두이노의 하드웨어와 소프트웨어 구성을 더 확인하고 싶다면 아두이노 용어 설명도 기초 개념을 보완하는 자료로 활용할 수 있습니다.
| 변경 항목 | 초기 구성 | 수정 구성 | 관찰한 차이 |
|---|---|---|---|
| SDA·SCL 길이 | 약 80cm 점퍼선 | 약 25cm 연선 | 간헐적 읽기 실패 감소 |
| 배선 경로 | USB 전원선과 나란히 | 전원선과 간격 확보 | 부하 작동 순간의 오류 감소 |
| 통신 속도 | 400kHz | 100kHz | 파형 여유 증가 |
| 커넥터 | 브레드보드 점퍼선 | 잠금형 커넥터 | 진동과 접촉 불량 억제 |
센서가 멎어도 기록 장치 전체가 멈추지 않게 했습니다
배선을 고쳐도 실외에 가까운 장치는 완벽하게 안전하지 않습니다. 그래서 센서 읽기가 실패했을 때 같은 요청을 무한 반복하지 않고, 실패 횟수를 기록한 뒤 버스를 복구하도록 코드를 바꿨습니다. 연속 오류가 일정 횟수를 넘으면 센서 전원을 껐다 켤 수 있도록 별도의 전원 제어 회로를 두는 방법도 있지만, 사용하는 센서의 소비전류와 기동 시간을 먼저 확인해야 합니다.
로그에는 측정값만 저장하지 말고 오류 코드, 재시도 횟수, 부팅 횟수, 마지막 정상 측정 시각을 함께 남기는 편이 좋습니다. 값이 없는 상황과 값이 0인 상황도 구분해야 합니다. 예를 들어 JSON이나 CSV로 전송할 때 실패값을 임의의 0으로 채우면, 나중에 실제 저온 기록과 통신 오류를 구별하기 어렵습니다.
- I2C 장치 주소가 응답하는지 먼저 검사합니다.
- 측정 명령 후 데이터시트에 명시된 변환 시간을 기다립니다.
- 읽기 실패 시 짧은 간격으로 1~2회만 재시도합니다.
- 연속 실패가 누적되면 버스를 다시 초기화하고 사건을 로그에 남깁니다.
- 그래도 복구되지 않으면 센서 전원 재인가 또는 시스템 재부팅을 선택합니다.
통신 복구 코드는 불량 배선을 가리는 장치가 아닙니다. 배선·전원·풀업을 먼저 검증하고, 복구 로직은 계절 변화나 순간 잡음에 대비한 마지막 안전망으로 두는 것이 좋습니다.
한 달 뒤에도 남은 한계는 센서 수치 밖에 있었습니다
방수 코팅과 필터는 편리하지만 측정 응답을 바꿉니다
기판 보호를 위해 컨포멀 코팅을 사용할 수 있지만 온습도 센서의 감지부, 압력 센서의 포트, 커넥터 접점까지 덮으면 안 됩니다. 코팅제의 용제나 경화 과정이 센서 정확도에 영향을 줄 가능성도 있으므로 제조사 권장 영역을 확인해야 합니다. 감지부를 마스킹한 뒤 주변 회로만 얇게 보호하는 방식이 일반적이며, 처음부터 값비싼 센서에 적용하기보다 여분 기판으로 시험하는 편이 안전합니다.
통풍구에 붙이는 멤브레인도 물방울과 먼지를 줄여주지만 응답 속도를 늦출 수 있습니다. 제가 사용한 구성에서는 케이스 밖 습도가 급격히 변할 때 내부 센서가 이를 따라가는 데 더 오래 걸렸습니다. 화분 자동 급수처럼 수십 분 단위 변화가 중요한 프로젝트에는 큰 문제가 아닐 수 있지만, 욕실 환기 제어나 짧은 실험에서는 지연이 제어 품질을 떨어뜨릴 수 있습니다.
- 식물 관리: 순간값보다 이동평균과 토양 상태를 함께 보고 급수 여부를 판단합니다.
- 환기 제어: 센서 필터의 응답 지연을 고려해 켜짐·꺼짐 기준에 히스테리시스를 둡니다.
- 장기 기록: 한 달마다 기준 센서와 나란히 놓아 값의 편차가 커지는지 확인합니다.
- 배터리 운용: 대기전류뿐 아니라 통신 오류로 재시도가 반복될 때의 소비전력도 측정합니다.
- 외부 전송: 라즈베리파이나 게이트웨이로 보낼 때 로컬 저장 공간을 남겨 네트워크 장애에 대비합니다.
베란다 실험 결과를 옥외 장치에 그대로 적용할 수는 없습니다
이번 구성은 비를 직접 맞지 않는 베란다에서 진행했으므로 노지, 옥상, 차량 외부처럼 강한 자외선과 빗물, 염분, 낙뢰 유도 잡음이 있는 환경까지 보장하지 않습니다. 케이블이 수 미터로 늘어나거나 모터·펌프가 함께 작동한다면 I2C를 그대로 연장하기보다 센서 근처에 마이크로컨트롤러를 두고, 장거리 구간에는 RS-485나 CAN 같은 차동 통신을 검토하는 편이 적절합니다.
또한 안전이나 재산 피해와 연결되는 경보 장치라면 취미용 모듈 하나의 측정값에 의존해서는 안 됩니다. 이중 센서, 독립 경보, 전원 감시, 고장 상태를 드러내는 설계가 필요합니다. 반도체와 절연 부품은 사용 온도와 환경 등급에 따라 선택 기준이 달라지며, 소형 패키지와 자동차용 부품의 사례는 자동차용 옵토커플러 관련 기사처럼 실제 제품 발표 자료를 통해 적용 환경을 확인할 수 있습니다.
한 달 동안 안정적으로 기록됐다는 사실도 겨울의 저온, 봄철 꽃가루, 장마철 직접 유입수를 통과했다는 뜻은 아닙니다. 따라서 계절이 바뀔 때마다 케이스 변색, 패킹 경화, 커넥터 부식, 센서 드리프트를 다시 확인해야 합니다. 베란다 수준의 생활형 사물인터넷 프로젝트와 안전 등급이 필요한 옥외 설비 사이에는 분명한 경계가 있다는 점이 이번 실험에서 끝까지 남은 예외였습니다.

- 다음글아두이노 I2C 온습도 센서, 어떤 제품을 골라야 할까? 26.08.22
등록된 댓글이 없습니다.
