VSCP를 사용한 간편한 IoT 구현: 1 - 프로젝트 및 VSCP 소개

Document created by Eunkyung Shin Employee on Jul 16, 2015Last modified by Diana Torres on Feb 28, 2017
Version 2Show Document
  • View in full screen mode

안녕하십니까?

 

이 블로그에서는 제가 프리스케일 하드웨어를 사용하여 실용적인 IoT 프로젝트를 개발해온 경험을 소개합니다. 에이크 헤드맨(Ake Hedman)이 개발한 VSCP(Very Simple Control
Protocol)라는 오픈 소스 애플리케이션 계층은 디바이스 발견, 구성, 자동화 제어 메커니즘을 제공함으로써 제 작업을 훨씬 편하게 만들어 줄 것으로 생각되었습니다. 2014년
IoT Awards 페이지에서 최우수 오픈소스 프로젝트를 검색해보면 VSCP가 AllJoyn, openHAB, ThingSpeak 등과 같은 다른 주요 프레임워크와 경쟁한 사실을 아실 수 있습니다.

여기서 제 목표는 어떤 프레임워크가 최고인지 결정하는 것이 아니라(그러기엔 제 인턴 기간이 너무 짧습니다) 하나를 골라서 FRDM 보드와 i.MX6 게이트웨이에서 구동하면서 프로세스를 *문서화*(이 표현은 폭넓은 의미로 사용한 것입니다)하는 것입니다.

니키의 2주 만에 3D 프린터 만들기(Nikki's 3D printer in 2 weeks) 때문에 기준이 높아졌지만, 무척 재미있을 것입니다.
제가 할 작업을 자세히 소개하기 전에 VSCP 프로젝트에 대한 몇 가지 예비 지식을 설명하겠습니다.

 

VSCP를 사용하는 이유

 

VSCP라는 이름에 현혹되지 마십시오.

사용자에게 모든 것을 간편하게 만들어 주지만 프로젝트 자체는 전혀 그렇지 않습니다.

다음은 분명하지만 말하기 어려운 문제인 AllJoyn과 간단히 비교한 내용입니다. 여기에 있는 정보는 대부분 VSCPAllJoyn FAQ 페이지에서 얻은 것입니다.

 

범주

AllJoyn

VSCP

발표 후 연한

4

15

코드 행 수

750,000

600,000

소프트웨어 라이센스

ISC

GPL, LGPL, 프리웨어

전송 계층

IP 스택을 제공해야 함(1)

물리 계층에 완전히 독립적 (2)

SSL 지원

개인 공헌자

~70

~6

비공개 파트너

아니요

 

  1. 1. 현재 제시된
      AllJoyn 게이트웨이 에이전트는 블루투스(Bluetooth) 디바이스와 WiFi 디바이스를 연동하는 등과 같이 서로 다른 전송 계층에 속한 디바이스 사이의 연결 브리징을 지원합니다.

 

  1. 2. VSCP는 원시 이더넷,
      CAN 버스, RS232, TCP/IP, MQTT, 6LowPan상에서 작동합니다.

 

VSCP의 또 다른 커다란 장점은 사양의 세부 사항은 경쟁 상대가 되지 않지만, 커뮤니티의 대응 속도가 놀랍도록 빠르며 기능 구현 및
다양한 플랫폼에 대한 이식과 관련한 의견에 대한 이해력이 매우 높은 것으로 보인다는 점입니다
.

저는 포럼에 VSCP의 차별화 기능에 대해 멤버들이 어떻게 생각하는지 설문을 했고 그 응답 중 일부는 다음과 같습니다.

  • VSCP는 ON 이벤트를 전송하는 한
      가지 일을 할 수 있는 버튼에서 PC의 모든 기능을 가진 노드까지 확장됩니다.
      Alljoyn 및 기타 솔루션은 호스트 체인의 기능 중 상당히 상위에서 시작합니다.
  • VSCP에는 자율 시스템을 개발할 수 있는 표준 메커니즘이 있지만,
      Alljoyn에는 없습니다.
  • VSCP 디바이스는 사용자에게 어떻게 구성 가능한지 정보를 제공할 수 있으며,
      조만간 디바이스에 대한 다양한 구성 시나리오를 안내하며 다국어 도움말, 설명서
      등이 포함된 마법사를 제공할 것입니다.
  • VSCP는 측정 보고서에 표준 SI 단위계를
      사용하므로 측정값이 단위 없는 숫자로만 표시되지 않습니다.

         즉, 중국 측정값을 캐나다 수신자가 항상 이해할 수 있습니다.

  • VSCP는 Alljoyn 또는 기타
      "표준" 시스템에 손쉽게 연결하여 그 일부가 될 수 있습니다.
      또한 우세한 국제 표준이 부각되기 전까지 개발 노력을 절감하는 방법의 하나로 활용할 수 있습니다.

 

VSCP 설립자는 최근 IoT World 2015 이벤트에서 중대한 발표 중 하나로 반향을 일으켰습니다.

토론회 중 발표자 중 한 명이 어떤 IoT 프로토콜을 선택해야 하는지에 대한 질문을 자주 받으며, 대개 "모두"라고 대답한다고 말했습니다. 모든 프로토콜마다 존재 이유가 있습니다.

한 토론 참가자는 만약 일곱 가지 다른 프로토콜이 있고 어떤 똑똑한 사람이 이를 모두 대체할 수 있는 새로운 표준을 고안해낸다면 최종적인 결과는 여덟 가지 프로토콜이 될 것이라는 농담을 했습니다.

VSCP와 Alljoyn이 모두 주장하는 기능을 제대로 수행한다면 서로 함께 작동하지 않을 이유가 없습니다. 시간이 허락한다면 이에 대해서 조사하고 싶습니다. VSCP 팀이 이미 OpenHAB 프로젝트에 대한 바인딩
작업을 진행 중이라는 것을 알고 있습니다.

 

프로젝트

 

여러분이 온실 또는 들판의 관개 시스템을 안정적으로 원격 모니터링 및 제어해야 한다고 가정하겠습니다. 개별 노드가 지표면에 있어야 하며 전력 계통이 필요합니다. 각 노드는 온도, 토양 수분, 다양한 화학물질 농도를 모니터링합니다.

 

높은 신뢰성과 긴 거리가 필요하므로 노드를 유선 버스 토폴로지로 연결하는 것이 좋습니다. 비슷한 다른 시스템의 예로 개별 제어 가능한 환기구가 있는 가정용 HVAC 또는 전용 CAN 솔루션에 투자하기 어려운 소규모 산업 자동화 시설이 있습니다.

VSCP의 장점은 나중에 유선 네트워크를 일부 802.15.4 동작 센서에 자동으로 반응하도록 만들어야 하겠다고 결정하는 경우에도 동일한 인터페이스를 사용할 수 있다는 것 입니다.

VSCP는 이 작업에 대해 구성 가능한 의사결정 매트릭스를 구현하지만, 이 부분은 나중에 필요할 때 다루겠습니다!

 

이 프로젝트는 높은 유연성을 제공하지만, 지금 당장은 RPi 및 BeagleBone만 지원하는 인기 높은 OpenSprinkler 프로젝트에 대해 다루어볼 생각입니다.

 

시작하기

 

VSCP는 윈도우(Windows) 및 리눅스(Linux)에서 모두 실행되며 TCP/IP, websocket, REST 또는 MQTT 인터페이스가 포함된 오픈 소스 웹서버 데몬(daemon)을 제공합니다. i.MX6 UDOO 게이트웨이가 우분투(Ubuntu) 배포판 중 하나에서 이 웹서버를 실행할 것이므로 리눅스에서 판기 준비를 하겠습니다. 서버 소프트웨어의 소스는 sourceforgegithub에서 구할 수 있으며, 사용하기 쉬운 윈도우용 설치 도구가 포함되어 있습니다. 어려운 작업은 대부분 스크립트로 처리가 되어 있으므로 리눅스에서 설치하는 것은 비교적 직관적입니다.

 

여기(setting_up_the_system_on_unix | VSCP 데몬)에 있는 설명을 사용하여 우분투 14.10에서 모든 것을 설정하기 시작했지만, VSCP_software 다운로드에 있는 메모에 따라 이 설명을 참조했습니다.

포럼에 몇 가지 의견과 함께 사소한 수정 내용을 게시했으며 이미 해당 내용이 적용된 것으로 알고 있습니다.

 

그 다음 "새 시스템 시험 가동하기(taking my new system for a test ride)" 문서에 따라 어떤 종류의 기능이 이미 존재하는지 파악했으며, 솔직히 말해 이 친구들은 설치 후 환경에 대해 잘 알고 있습니다!

 

장래 고려사항

 

  1. UDOO에서 VSCP 데몬 실행
  2. UDOO에서
    CAN 버스의 작동 확인
    - 필요에 따라 커널을 패치하고 canutils가 설치되어 있는지 확인합니다.
  3. UDOO/FRDM-K64F용 CAN 쉴드 개발(CAN PHY와 함께 제공되지 않음)
  4. KSDK 프로젝트에서 VSCP 펌웨어가 FRDM-K64F상에서 실행되도록 함
  5. 실행 가능한 데모 구성(로직)
  6. VSCP UiMagician 또는 다른 도구를 사용하여 멋진 모바일 및/또는 웹 애플리케이션을 개발합니다.

 

UiMagician은 임베디드 프로그래머가 HTML, 자바스크립트, CSS 또는 PhoneGap을 사용하지 않고도 HTML/모바일 앱을 만들 수 있도록 지원합니다.

 

이상이 제가 작동 가능한 데모를 완성하기 전에 수행해야 하는 작업입니다.

범위를 약간 조정한 후에는 아마도 적절한 간트(GANTT) 차트를 추가할 것입니다.

위 주요 사항은 대부분 변경하지 않을 것이지만, 나중에 mbed.org로 이식하거나, 추가 센서를 추가하거나, 키네티스(Kinetis) KW 802.15.4를 추가하는 등과 같이 목표가 확대될 수 있습니다.

 

읽어주셔서 감사합니다!

2 people found this helpful

Attachments

    Outcomes