Daniel's Knowledge Storage

아두이노로 온도 및 습도 서버로 전송하기 본문

Develop/Arduino(아두이노)

아두이노로 온도 및 습도 서버로 전송하기

다니엘SEO 2013. 6. 1. 19:11

별것은 아니지만 그래도 회사를 위해 만든 제품이라...제 나름의 도의상, 상세한 제작 과정이나 코드 내용을 공개할 수는 없어 아쉽습니다만, "네트워크 온/습도 모니터링" 장비를 개발한 배경과 과정을 기록에 남겨 둡니다. 혹시 도움이 필요하신 분들은 개별적으로 메일로 연락 주시면 가능한 범위내에서 조언을 드리거나 제작해 드릴 수 있습니다.(jonghun.seo@지메일쩜컴)


제가 근무하는 회사는 TV CF를 만드는 회사 입니다.


CF의 장면들에 들어가는 2D와 3D작업은 물론 전체적인 편집과 컬러그레이딩 작업을 하는 회사라서 많은 장비들이 있습니다. 이 많은 장비들이 기계실이라고 부리고 있는 2개의 방에 모아져 있습니다.


이 중 열이 특히 심하게 나는 장비는 랜더팜(Render Farm)이라는 장비입니다. 



랜더팜은 흔히 IDC센터의 수많은 서버를 모아둔 것과 같습니다. 쉽게 말해 성능 좋은 랙형 컴퓨터를 수십대를 가동하고 1~100까지의 작업을 고루 고루 분산하여 랜더링 시간을 단축할 수 있는 시스템 입니다.


보통 서버들로 구축했을 때와 다른 점은 장비의 최대 퍼포먼스를 사용한다는 점입니다. 그러다 보면 장비에서 뿜어져 나오는 열기가 상당합니다.


문제는 이 열을 어떻게 처리 할 것이냐 하는 건데요. 보통 IDC에서는 항온항습기를 사용하지만 상대적으로 규모가 작은 저희 회사는 공간과 배기/흡입구 그리고 에어컨의 배치만으로 배출되는 열을 처리하게 됩니다.


여기도 관건은 아래 그림처럼 내부 공기의 배기와 외부 공기의 흡입이 적절이 되는 것인데요. 안타깝게도 저희 회사는 이 배기/흡입이 불가능한 상황입니다.



이 그림은 사실 일반 가정집의 예를 들은 것지만 이해를 돕기 위해 첨부했습니다. 이와 같이 외부의 공기를 빨아 드리고 내부의 열은 잘 빼내주면 좋은데 그렇지 못하다 보니 에어컨 4대로 열을 식히는 방식을 취하고 있습니다.


에어컨 4대가 정상 작동을 했을 때 평균 습도는 30%, 온도는 20도입니다. 이런 상황에서 에어컨이 1대가 고장이 나는 경우 온도가 급격히 올라가기 시작합니다. 만약 2대가 고장이 나는 경우에는 걷잡을 수 없게 온도가 올라가게 되죠. 30도를 웃돌게 됩니다. 기계실의 온도가 올라가는 것으로 인해 가장 큰 우려는 수많은 데이터를 보관하고 있는 스토리지의 하드가 하나씩, 둘씩  문제가 생기기 시작하면 큰일이 나겠죠.


실제로 그러한 일이 있었는데요. 새벽에 에어컨이 고장이 났고 아무도 모르고 하룻 밤이 지나갔습니다. 그 시점 스토리지 몇대에서 하드가 연달아 나갔던겁니다. 다행히 한개씩만 나가서 큰 문제는 없었습니다만 위험한 상황이었습니다.


그 이후에 온도를 실시간으로 모니터링 할 수 없을까 고민하게 되었고 네트워크 온도계를 알아 봤는데 가격도 비싸고(보통 60~80만원) 저희가 원하는 기능은 아니었습니다.


서론이 길었네요....

아무튼 여차저차 해서....직접, 만들기로 했습니다.


플랫폼은 아두이노를 선택했습니다. 처음에는 네트워크 쉴드를 따로 얹혀야 하는 것 때문에 아두이노와 라즈베리파이를 두고 고민했습니다. 하지만 심플한 로직을 구현하려는 것이었기 때문에 아두이노가 더 맞았습니다.


30분 마다 온/습도를 체크하여 수집된 데이터를 외부에 있는 서버로 전송을 합니다. 서버에서는 이 데이터를 받아 DB에 입력을 함과 동시에 특정 온/습도가 넘어가면 관리자에게 문자로 알람을 보내 주는 프로세스를 구현하였습니다. 더불어서 인트라넷에서 온도 통계와 차트를 볼 수 잇는 기능도 함께 구현하였습니다.





오래간만에 웹을 벗어나 코딩을 하다 보니...조금 애를 먹은 부분도 있었지만 순조롭게 마무리가 되었습니다. 적당한 케이스가 없어 일단 옆에 보이는 CD통을 케이스로 삼았습니다. 서버로 데이터 전송도 잘 되고 DB에도 정확하게 쌓이는 모습을 보니 흐믓합니다.


앞으로 온도 때문에 불안하거나 수시로 기계실 온도를 체크하러 갈 일이 없어졌습니다 :)


앞으로 추가할 기능은 인트라넷에 신호를 보내 현재 온도를 바로 가져 오는 기능입니다. 지금은 30분마다 보내 주는 온도만 확인 할 수 있는데 원하는 시점에 바로 온도를 가져 오는 기능을 추가할 예정입니다.


다른 일들도 있어...조금 나중에....-_- 호호호


Comments