티스토리 뷰


●제 3회 국립 한밭대학교 드론 작품전시회





 IT융합사업단이 출범한 이래로 벌써 3번째 열리는 드론작품전시회에 어김없이 참여하게 되었다. 내가 몸담고 있는 한밭대학교 정보통신공학과 무선통신소프트웨어 연구실 'WISOFT' 동기 두명과 팀을 꾸려서 실시간 기상정보 및 화재알림 드론 'LIVECAST DRONE' 프로젝트 진행했다.


 'WISOFT_DRONE' 팀은 한밭대학교 정보통신공학과 3학년에 재학중인 김남준(20121724), 이근혁(20121746), 이수빈(20142044)으로 구성됐고, WISOFT의 지도교수님이신 정보통신공학과 박현주교수님의 지도와 함께 프로젝트를 진행했다.


 이 작품전시회의 목적은 예전 포스팅에서 이야기 했었지만, 드론을 직접 제작하고 내가 제작한 드론에 내가 원하는 기능을 추가해서 작품화한 결과물을 만드는 것이다. 그러기 위해서 작품제작팀에 선정되어서 드론을 부품하나하나 직접조립하며 만들고 조종기와 페어링까지 하는 등 기본적인 선행작업이 이루어졌다. 또한, 이 결과물을 직접 시운전을 하면서 프로젝트 발표까지 이루어지는 경쟁방식의 전시회이다.


 진행했던 프로젝트를 요약하자면 다음과 같다. 


 

  드론의 수 많은 목표 중 하나는 사람이 할 수 없는 것을 하거나, 사람이 할 수 있는 것을 더 편리하게 하는 것 이라고 생각한다. 이 프로젝트도 그것들을 달성하기 위한 한가지 방법이다.


 드론은 사람이 쉽게 접근할 수 없는 지역의 기상정보와 화재유무를 파악한 센싱정보를 전달하고 사용자는 이 정보들을 web에서 실시간으로 확인 할 수 있도록 한다. 또한, 긴급상황의 경우 드론에 탑재된 스피커로 경보사이렌이 송출되어 주변에서 상황을 인식하도록 도움을 주는 것이 이 프로젝트의 궁극적인 목적이다.




 이 작품에서 센싱된 데이터가 어떻게 처리되어서 웹페이지에 뿌려지는지에 대한 과정을 간단히 설명하자면 다음과 같다.


 먼저 드론에 서버 역할을 할 라즈베리파이를 탑재했다. 탑재 된 라즈베리파이에는 DHT22 온습도센서가 파이의 GPIO에 직접 연결되어 디지털 통신이 이루어지고, 아두이노 미니와 라즈베리파이를 연결해서 미니에 연결된 조도센서, 화재감지센서 시리얼 값을 아날로그 통신한다. 


 각각의 센서에서 받아온 데이터들은 Node.js의 express모듈을 이용하여 구현한 서버 측에서 받고, 수신한 데이터변화에 따라 이벤트가 발생한다.


 socket.io모듈을 이용하여 발생시킨 이벤트(socket.emit())는 html파일에서 응답(socket.on())하고, 실시간으로 페이지가 변화하도록 이벤트에 따라 제어 할 수 있다. 이 과정에서 화재감지센서에 화재가 감지되면, 서버측에 저장된 사이렌 mp3파일을 재생시키고 드론에 탑재된 스피커를 통해 사이렌이 울린다.


 데이터 처리과정을 정리해본다면 첫번째로 각 센서들에서 센싱한 값을 서버(드론에 탑재된 라즈베리파이)에서 수신한다. 수신한 데이터 변화에 따라서 데이터 값을 포함한 이벤트를 발생시키면, html페이지에서 해당 이벤트에 응답하여 웹에서 실시간 변화값을 뿌려줄 수 있다.










 작품 제작과정에서는 제일먼저 각 센서별로 구동테스트를 먼저 진행했다. 개별적으로 센서의 문제유무를 파악한 후, 온습도 센서의 경우 드론에 탑재하기 위해서 센서의 간소화 작업이 필요했다. 이에 따라 브레드보드를 제거하고 동판을 이용하여 직접 제작했다. 화재감지 센서와 조도센서는 아두이노 미니에 처음부터 간소화 시켜서 연결했기 때문에, 직접 F450드론의 랜딩스키드에 고정시키는 작업을 했다. 


 운좋게도 아두이노미니와 센서들의 사이즈가 랜딩스키드에 고정시켰을 때 지저분하지 않았다. 




 웹 페이지는 간단하게 네 페이지로 구성했다. 작품의 메인페이지, 실시간 온습도 정보와 조도센서정보, 그리고 화재센서 값을 모니터링 할 수 있고, 그에 따른 오늘의 날씨를 픽토그램으로 실시간으로 확인할 수 있는 모니터링 페이지, 그리고 온습도의 실시간 변화량을 그래프로 확인 할 수 있는 페이지, 그리고 개발자들을 소개한 페이지이다. 온습도 실시간 변화량을 그래프로 확인 할 수 있는 페이지는 CanvasJS 자바스크립트 차트 라이브러리를 사용 했고, 개발자 페이지는 부트스트랩을 적용하여 반응형으로 구현했다.








 실시간으로 사용자가 모니터링 하는 동영상입니다. 화재경고 팝업이 뜨게 되면, 드론에서는 실제로 사이렌이 울립니다:) 









 축제기간인데도 다들 열심히 준비해서 대회에 참가한 결과 좋은 성과를 얻을 수 있었습니다. 이 프로젝트의 코드를 gitlab을 통해서 오픈하겠습니다. 필요하시다면 참고하셔서 공부하시는데 도움이 됐으면 좋겠습니다. 코드 참조하다가 문의사항 있으시면 댓글 남겨주세요.

초보자이기 때문에 악성댓글을 제외한 의미있는 깊은태클은 달게 받겠습니다:)


Code Repository :

http://git.wisoft.io/namjunemy/Wisoft_Drone_LivecastDrone.git




댓글