1 / 17

Windows Programming Term Project

Sensor Network Analyzer. Windows Programming Term Project. 담당교수 : 이상정 교수님 발표자 : 김인태 학번 : 20022997 quenring@paran.com bruceKim.egloos.com. 목차. Project 개요 소개 개발환경 사용장비 참고문헌 및 웹사이트 설계 동작 순서 TCP/IP 통신으로 데이터 받기 Message 분석및 처리 Class Diagram Graph 그리기 실행화면 결론 및 문제분석.

thu
Download Presentation

Windows Programming Term Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sensor Network Analyzer Windows Programming Term Project 담당교수: 이상정 교수님 발표자 : 김인태 학번 : 20022997 quenring@paran.com bruceKim.egloos.com

  2. 목차 • Project 개요 • 소개 • 개발환경 • 사용장비 • 참고문헌 및 웹사이트 • 설계 • 동작 순서 • TCP/IP통신으로 데이터 받기 • Message 분석및 처리 • Class Diagram • Graph 그리기 • 실행화면 • 결론 및 문제분석

  3. 1. Project 개요 • 소개 Sensor Network에 대한 자료가 많이 없어서 공부하기가 쉽지 않은데보다 더 편하게 공부하도록 도움을 주는 프로그램을 개발하고자 하는 생각에 이번 Term Project의 주제를 Sensor Network Analyzer 로 정하였다. 우선은 Surge application에 집중하였고, NesC로 작성되어진 Surge에서 RF통신으로 보내어지는 Surge message에 데이터가 추가되거나 변경되어도Analyzer 프로그램에서 설정할 수 가 있어서, 제대로된 값을 받아 볼 수 있도록 하는 것이 목표이다. 또한 받은 데이터들을 그래프로 출력하여 시각적으로 분석하는데 도움을 주고자 하였다.

  4. 개발환경 • Visual Studio 2005, Visual C# 2005 Express • .Net FrameWork 2.0 • TinyOS ver1.1.15 • Surge application • 사용장비 • Programming Board : Micaz(mpr2400) • Gateway board: mib600 • Sensor mts310, mts300 • 조도, 온도, 가속x, y 자력x, y, 소리 를 센싱할수 있다. • mts300은 자기계와 가속계만 없다

  5. 참고문헌 및 웹사이트 • 강의 교재(비주얼 C#2005 익스프레스로 배우는 C#2.0프로그래밍 - 박상현) • Programming Microsoft Windows with C# - Charles Petzold • TCP/IP 소켓 프로그래밍 C#버전 – Makofske/Donahoo/Calvert • Mote-kit를 이용한 무선 센서 네트워크 활용 – 남상협 • Hmote기반 무선 센서네트워크 응용과 실습 – 하이버스㈜ • ZigbeX를 이용한 유비쿼터스 센서 네트워크 시스템 – ㈜한백전자 기술연구소 • Mpr2400, mts310, mts300 매뉴얼(MPR-MIB_Series_Users_Manual_7430-0021-07_A.pdf) • 2006년 학사학위 논문 '무선 센서 네트워크와 SECS 프로토콜을 이용한 모니터링 시스템의 구현'(노완호, 김상균, 반웅) • http://www.tinyos.or.kr 국내 TinyOS Forum • http://www.tinyos.net TinyOS Community Forum • http://cafe.naver.com/bluegio MSP430MCU임베디드 TinyOS카페 • http://www.hybus.net Micaz Kit 판매 사이트

  6. 2. 설계 • 동작 순서

  7. TCP/IP통신으로 데이터 받기 • Gateway Board인 MIB600 에 Tcp서버가 동작 하고 있으므로, Client 쪽을 설계하여 접속한다. • Client에서 받은 메시지에서 시작 Sync와 종료 Sync는 '7E’이다. 또한 수신 되는 메시지 중에서 '7D 5E’ 의 2바이트는 원래 ‘7E’인 1바이트 데이터가 변경된것이고, ‘7D 5D’는 ‘7D’의 1바이트 의 데이터가 변경되는 등 RFC1662문서에 따라 메시지가 들어오게 된다. • 그리고 Little-Endian을 사용하기 때문에, 2바이트 이상 해석해야할 경우 주의를 기울여야 한다. • Read()메쏘드로 데이터를 읽어오는데 1바이트씩 읽어서, RFC1662문서에 나온 내용을 참고하여 적절하게 변경한 후 , 버퍼에 집어넣어 사용한다.

  8. Message 분석및 처리 • Mts310센서는 온도, 조도, Accelerometer x축과 y축, Magnetometer x축과 y축의 정보를 수집할 수 가 있는데, TCP/IP에서 보내주는 데이터는 Row 데이터 이므로, 적절한 변환 공식을 통하여 변환되어야 한다. • 조도 값 같은 경우는 단순히 밝고 어두움만을 센싱하는 포토셀이이고 온도는 섭씨로 출력된다. 그리고 가속계과 자력계의 단위는 mg 이다. • 해당 하는 변환식은 TinyOS설치 폴더의 tinyos-1.x\contrib\xbow\tools\src\xlisten\xconvert.c 파일을 참고하였다.

  9. Class Diagram Project 전체 구조

  10. Class Diagram 수신한 데이터를 저장하는 Class

  11. Class Diagram TCP 통신으로 데이터를 받아오는 역할을 하는 Class

  12. Class Diagram 수신한 데이터를 적절하게 변경하는 Class

  13. Class Diagram 그 외의 Class들 Project내에서 사용되는 상수나 enum을 정의해 놓음 메시지 형식을 설정하는 역할을 하는 Class 프로그램 정보를 나타내는 Class

  14. Graph 그리기 • 7장 Report에서 사용한 C2DPushGraph.dll 을 사용하여 그래프를 추가 하였다. • 현재 수신되고 받은 node 만큼의 그래프 라인을 생성하여, 각각 그래프로 출력하여준다. • 그래프로 출력시킬 종류는 현재 수집되고 있는 센싱정보를 콤보박스로 만들어 선택할 수 있도록 한다. 또한 Grid표시의 선택이 가능하다.

  15. 3. 프로그램 실행 결과

  16. 4. 결론 및 문제 분석 • 프로젝트 진행 효과 • Sensor에서 처리 되어지는 메시지 형식에 대하여 더 자세하게 알 수 있었고, Surge 를 이용하여 다양한 알고리즘을(에너지 최적화 등) 연구하고, 적용된 모습을 쉽게 알 수 있다. • 어려웠던 점 • 서로 다른 인스턴스간에 정보를 전달하고 전달 받는 부분이 애매하여 고민을 하였는데, 이벤트를 통해서 해결하였다. • 문제분석 • 1바이트씩 읽어서 싱크비트와 종료비트를 검사하여 하나의 메시지를 만든다음에 데이터를 Tos_msg형식별로 분류하거나 변환식에 의해 가공되고 리스트뷰에 데이터를 넣는 등 많은 처리를 하게 되는데, 그렇다면 이러한 일을 처리하는 동안 다음 메시지를 못읽는 상황이 발생하지 않을까하여 더블 버퍼링을 사용하여야 하나 생각 해 보았으나, Network수업을 통해 Tcp/ip는 신뢰성 통신으로서, TCP 큐에 쌓아져 보관 되고 있으므로 그런 경우까지는 고려하지 않아도 된다는것을 배웠다.(jitter, delay of delay등의 이슈로 많은 연구가 이미 이루어져있음)

  17. Mts310 의 온도 센서 같은경우, INT2을 사용하여 센싱값을 수집하는데, INT2가 다른 것 과 충돌을 일으키는 경우가 빈번하여 온도값을 수집하려고 하면 센서node에서 데이터 자체를 RF통신으로 전달하지 못하였다. 하이버스사에 전화로 문의 하여 INT2가 충돌을 일으키므로, PW0으로 바꿔 주어야 한다는 답을 얻고 문제를 해결하였다. • Tinyos-1.x\tos\sensorboards\micasb\sensorboard.h 에서 TOSH_ALIAS_PIN(TEMP_CTL, INT2) 부분을 TOSH_ALIAS_PIN(TEMP_CTL, PW0) 과 같이 고침 • 향후 과제 • 수집되는 데이터들을 데이터베이스에 저장하여, 지난 정보까지 추적할 수 있도록 하는 기능을 구현해야 할 것이다. 데이터베이스가 연동이 된다면, 그래프를 더 자세하게 그리고 이전 데이터들을 표현할 수 있을 것이다. • 그리고 각 센서노드마다 다른 정보를 수집하여 보내질 수 있으므로, 센서노드마다 메시지 구조를 다르게 설정하도록 구현하는 기능도 포함되면 좋을 것이다. • 마지막으로 이번 프로젝트는 Surge를 기반으로 작성하였는데, 다른 application에서 제공하는 메시지 형식(오실로스코프 등)도 받아 볼수 있도록 확장해야 하겠다.

More Related