Edge MC의 커넥터 호스트와 Node-RED를 사용하여 기계와 통신하기

Prev Next

Edge MC의 커넥터 호스트를 사용하여 Node-RED 장치와 통신하는 방법을 알아보세요

다음 기사에서는...

  • Edge MC의 커넥터 호스트 설정하기
  • 장치와 통신하기 위한 커넥터 함수 구축하기
  • 장치와 통신할 앱 구축하기

필수 조건

  • Edge MC에서 Node-RED가 활성화되어 있는지 확인하십시오. 활성화 방법에 대한 지침은 이 문서를 참조하십시오.

요약

Edge MC의 커넥터 호스트를 활용하면, 앱을 통해 Tulip 디바이스에서 실행 중인 Node-RED와 통신하는 커넥터 함수를 트리거할 수 있습니다. 이를 통해 궁극적으로 Tulip 앱에서 기기에 데이터를 기록할 수 있게 됩니다.

Edge MC 커넥터 설정

참고: Tulip의 커넥터 및 커넥터 함수에 익숙하지 않다면 이 문서를 확인해 주세요.

시작하려면 먼저 커넥터 페이지로 이동하여 ‘커넥터 생성’을 클릭하세요. 모달 창이 나타나며 다음 정보를 입력하라는 메시지가 표시됩니다.

  • 이름: 커넥터 이름을 지정합니다.
  • 설명: 커넥터에 대한 설명을 입력하세요
  • 커넥터 유형: HTTP를 선택하세요

다음으로 커넥터의 세부 정보를 지정해야 합니다. '프로덕션 및 테스트 및 개발' 버튼을 클릭하여 '커넥터 세부 정보 편집' 모달을 열고 다음 정보를 입력하세요:

  • 실행 위치: EMC 커넥터 호스트 를 선택하세요. 참고: 이 항목이 표시되지 않는 경우, Edge MC 포털로 이동하여 ‘커넥터 호스트’가 활성화되어 있는지 확인하십시오.
  • 호스트: localhost를 입력하십시오
  • 포트: 1880을 입력하세요(이 포트는 Node-RED가 실행되는 포트입니다)
  • TLS: '아니요'를 입력하십시오

헤더나 인증서를 추가할 필요는 없습니다. 이제 '테스트'를 클릭하여 연결이 정상적으로 이루어지는지 확인할 준비가 되었습니다. 마지막으로 '저장'을 클릭하십시오.

커넥터 함수 생성

커넥터 설정을 성공적으로 마쳤으므로, 이제 Tulip 기기와 통신할 커넥터 함수를 구축할 준비가 되었습니다. 이 예제에서는 Node-RED가 HTTP 서버 역할을 수행합니다.

커넥터 함수를 설정하려면 Tulip과 Node-RED 편집기 모두에서 함수를 구성해야 합니다. 이 예제에서는 firstName과 lastName을 입력으로 받아 "Hello firstName lastName!"이라는 응답과 타임스탬프를 반환하는 간단한 함수를 만들 것입니다.

Tulip에서 커넥터 함수 구축하기

사용 중인 Edge MC의 커넥터로 이동한 후, 오른쪽 상단 모서리에 있는 'Create Function'을 선택합니다.

요청 유형으로 GET을 선택하고 엔드포인트에 /helloWorld를 입력합니다. 이 설정은 임의로 정한 것처럼 보일 수 있지만, 이후 단계에서 Node-RED 편집기에서 이 엔드포인트를 구성하게 됩니다:

{height="" width=""}함수의 입력값을 'First Name '과 'Last Name'이 포함되도록 구성합니다 :

{height="" width=""}요청 본문(Request Body)에서 콘텐츠 유형(Content Type) 을 JSON으로 선택하고, 입력값에 대해 다음 키를 설정합니다. 이 키들은 나중에 Node-RED 편집기에서 참조될 것입니다:

{height="" width=""}이제 커넥터 함수에 'Message'와 'Time'이라는 출력을 추가합니다. Node-RED 편집기에서 참조할 수 있도록 해당 본문을 출력에 추가하십시오:

{height="" width=""}다음으로, 응답 유형(Response Type )이 JSON으로 설정되어 있는지 확인하십시오 .

이제 Tulip 측에서 커넥터 함수 구성을 완료했습니다. '저장'을 클릭하여 커넥터 함수를 저장하십시오.

Node-RED에서 플로우 구축하기

이제 Edge MC 포털에서 Node-RED 편집기를 열고 새 흐름을 설정할 차례입니다.

먼저, 네트워크 섹션에서 http 노드를 편집기로 드래그 앤 드롭합니다. 노드를 다음과 같이 구성합니다:

{height="" width=""} 요청 메서드(Request Method )와 요청 URL (Request URL )이 Tulip에서 구성한 커넥터 함수와 일치해야 합니다.

다음으로, 다음 구성으로 '변경(change)' 노드를 드래그 앤 드롭합니다:

{height="" width=""}msg.payload를 JSON으로 설정하고, 빈 객체({})로 남겨둡니다.

이제 템플릿 노드를 삽입합니다. 여기서는 들어오는 메시지의 속성(커넥터 함수 입력값)을 가져와 이를 사용하여 문자열(예: "Hello World")을 생성할 수 있습니다.


## {{req.body.firstName}}

## {{req.body.lastName}}!

이제 타임스탬프를 캡처하여 응답의 일부로 반환하기 위해 또 다른 변경 노드를 추가할 차례입니다. 노드를 다음과 같이 구성하세요:

{height="" width=""}이 시점에서 우리 플로우는 Tulip에서 전송된 입력을 수신했으며, 이제 응답을 구성할 차례입니다. 이를 위해 HTTP 응답 노드를 드래그 앤 드롭하세요. 응답의 상태 코드를 200, OK로 설정하세요:

{height="" width=""}이제 전체 플로우가 완성되었으며, 다음과 비슷하게 보일 것입니다:

{height="" width=""}위 플로우에 있는 녹색 노드는 Node-RED 편집기에서 페이로드를 표시하는 데 사용되는 디버그 노드임을 유의하십시오.

마지막 단계는 Node-RED 편집기에서 플로우를 배포하는 것입니다. 이제 Tulip 테스트 환경에서 커넥터 기능을 테스트할 수 있습니다.

앱을 통해 커넥터 기능 실행하기

이제 커넥터를 설정하고, Node-RED를 HTTP 서버로 사용하여 기기와 효과적으로 통신하는 커넥터 함수를 만들었으므로, 이 기능을 앱에 통합할 준비가 되었습니다.

이 예제에는 요청에 포함되어 전송될 firstName 및 lastName 변수를 입력할 수 있는 두 개의 입력 상자가 있습니다:

{height="" width=""}“Say Hello!” 버튼에 다음 트리거를 입력하여 커넥터 함수를 호출하세요:

{height="" width=""}입력 내용을 입력하고 "Say Hello!"를 클릭하면 Tulip 기기로 HTTP 요청을 성공적으로 전송하고 JSON 응답을 수신하게 됩니다.

앱을 테스트하려면 앱 편집기(App Editor)에서 '테스트 ( Test ) ' 버튼을 클릭하여 개발 모드(Development Mode)로 진입하세요!