기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
데이터 게시 흐름 구성
데이터 게시 흐름은 세 개의 노드를 사용하여 산업 데이터를 클라우드로 전송하는 파이프라인을 생성합니다. 이 흐름은 클라우드 기반 분석, 장기 스토리지 및 다른 AWS 서비스와의 통합을 활성화하는 데 필수적입니다. 먼저 시뮬레이션된 디바이스 데이터가 SiteWise Edge MQTT 브로커로 전송됩니다. 게이트웨이는 강력한 분석 및 시각화 기능을 활용할 수 있는 AWS IoT SiteWise 클라우드로의 전송을 허용하는 브로커에서 데이터를 선택합니다.
-
데이터 입력 - 산업 장비 또는 시뮬레이터에서 디바이스 데이터를 수신합니다.
-
용 데이터 변환기 AWS IoT SiteWise - SiteWise Edge 게이트웨이와의 호환성을 보장하기 위해 데이터를 AWS IoT SiteWise 형식으로 변환합니다.
-
MQTT 게시자 - SiteWise Edge MQTT 브로커에 데이터를 게시하여 로컬 소비자와 클라우드 소비자가 모두 사용할 수 있도록 합니다.

데이터 입력 노드 구성
이 예제에서 데이터 입력 노드는 풍속 데이터를 생성하는 시뮬레이션된 풍력 터빈 디바이스를 사용합니다. 이 노드는 시뮬레이션된 소스(예제 참조)에서 왔든 프로덕션 환경의 실제 산업 장비에서 왔든 관계없이 산업 데이터의 진입점 역할을 합니다.
데이터 페이로드에 사용자 지정 JSON 형식을 사용하여 로컬 처리 도구와 AWS IoT SiteWise 클라우드 서비스 모두에서 효율적으로 작동하는 표준화된 구조를 제공합니다. 이 형식에는 실제 측정 값과 함께 타임스탬프 및 품질 지표와 같은 필수 메타데이터가 포함되어 있으므로 파이프라인 전체에서 포괄적인 데이터 관리 및 품질 추적이 가능합니다. 주입 노드를 가져와 타임스탬프, 품질 지표 및 값이 포함된이 표준화된 JSON 형식으로 시뮬레이션된 데이터를 수신합니다.
Node-RED 주입 노드에 대한 자세한 내용은 Node-RED 설명서의 주입
터빈 시뮬레이터는이 표준화된 JSON 형식으로 초당 풍속 데이터를 생성합니다.
예 : 터빈 데이터 페이로드
{ name: string, // Property name/identifier timestamp: number, // Epoch time in nanoseconds quality: "GOOD" | "UNCERTAIN" | "BAD", value: number | string | boolean }
이 형식은 다음과 같은 몇 가지 이점을 제공합니다.
-
name
필드는 특정 속성 또는 측정값을 식별하므로 동일한 디바이스에서 여러 데이터 포인트를 추적할 수 있습니다. -
나노초
timestamp
단위의는 정확한 기록 분석을 위한 정확한 시간 추적을 보장합니다. -
quality
표시기는 신뢰성을 기반으로 데이터를 필터링하고 관리하는 데 도움이 됩니다. -
유연한
value
필드는 다양한 센서 출력을 수용하기 위해 다양한 데이터 유형을 지원합니다.
예 : 터빈 시뮬레이터의 주입 노드
[ { "id": "string", "type": "inject", "z": "string", "name": "
Turbine Simulator
", "props": [ { "p": "payload.timestamp", "v": "", "vt": "date" }, { "p": "payload.quality", "v": "GOOD", "vt": "str" }, { "p": "payload.value", "v": "$random()", "vt": "jsonata" }, { "p": "payload.name", "v": "/Renton/WindFarm/Turbine/WindSpeed
", "vt": "str" } ], "repeat": "1", "crontab": "", "once": false, "onceDelay": "", "topic": "", "x": 270, "y": 200, "wires": [ [ "string" ] ] } ]
데이터 번역을 위한 노드 구성
SiteWise Edge 게이트웨이는 AWS IoT SiteWise 클라우드와의 호환성을 보장하기 위해 특정 형식의 데이터가 필요합니다. 변환기 노드는 입력 데이터를 필요한 AWS IoT SiteWise 페이로드 형식으로 변환하는 중요한 구성 요소입니다. 이 번역 단계를 통해 클라우드 환경에서 산업 데이터를 올바르게 처리, 저장 및 나중에 분석할 수 있습니다 AWS IoT SiteWise .
이 단계에서 데이터 형식을 표준화하면 엣지 디바이스와 자산 모델링, 분석 및 시각화 기능을 사용할 수 있는 클라우드 서비스 간의 통합이 가능합니다. 다음 구조를 사용합니다.
예 : SiteWise Edge 데이터 구문 분석을 위한 페이로드 구조
{ "propertyAlias": "string", "propertyValues": [ { "value": { "booleanValue": boolean, "doubleValue": number, "integerValue": number, "stringValue": "string" }, "timestamp": { "timeInSeconds": number, "offsetInNanos": number }, "quality": "GOOD" | "UNCERTAIN" | "BAD", }] }
참고
를 MQTT 주제 계층 구조(예: /Renton/WindFarm/Turbine/WindSpeed
)propertyAlias
와 일치시킵니다. 이렇게 하면 데이터가의 올바른 자산 속성과 올바르게 연결됩니다 AWS IoT SiteWise. 자세한 내용은의 "데이터 스트림 별칭" 개념을 참조하세요AWS IoT SiteWise 개념.
-
AWS IoT SiteWise 페이로드 변환을 위해 예제 함수 노드를 가져옵니다. 이 함수는 표준화된 입력 형식에서 AWS IoT SiteWise호환 형식으로의 변환을 처리하여 적절한 타임스탬프 형식 지정, 품질 지표 및 값 입력을 보장합니다.
[ { "id": "string", "type": "function", "z": "string", "name": "Translate to SiteWise payload", "func": "let input = msg.payload;\nlet output = {};\n\noutput[\"propertyAlias\"] = input.name;\n\nlet propertyVal = {}\n\nlet timeInSeconds = Math.floor(input.timestamp / 1000);\nlet offsetInNanos = (input.timestamp % 1000) * 1000000;\n\npropertyVal[\"timestamp\"] = {\n \"timeInSeconds\": timeInSeconds,\n \"offsetInNanos\": offsetInNanos,\n};\n\npropertyVal[\"quality\"] = input.quality\n\nlet typeNameConverter = {\n \"number\": (x) => Number.isInteger(x) ? \"integerValue\" : \"doubleValue\",\n \"boolean\": (x) => \"booleanValue\",\n \"string\": (x) => \"stringValue\", \n}\nlet typeName = typeNameConverter[typeof input.value](input.value)\npropertyVal[\"value\"] = {}\npropertyVal[\"value\"][typeName] = input.value;\n\noutput[\"propertyValues\"] = [propertyVal]\n\nreturn {\n payload: JSON.stringify(output)\n};", "outputs": 1, "timeout": "", "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 530, "y": 200, "wires": [ [ "string" ] ] } ]
-
JavaScript 코드가 바람 속도 데이터를 올바르게 변환하는지 확인합니다. 함수는 몇 가지 중요한 작업을 수행합니다.
-
입력에서 속성 이름을 추출하여 propertyAlias로 설정합니다.
-
타임스탬프를 밀리초에서 필요한 초 및 나노초 형식으로 변환합니다.
-
데이터 신뢰성 추적을 위한 품질 지표 보존
-
값 유형을 자동으로 감지하고 요구 사항에 따라 형식을 지정합니다. AWS IoT SiteWise
-
-
노드를 흐름에 연결하여 데이터 입력 노드와 MQTT 게시자 간에 연결합니다.
비즈니스 요구 사항에 맞는 함수 작성에 대한 지침은 Node-RED 설명서의 함수 작성
MQTT 게시자 구성
번역 후 SiteWise Edge MQTT 브로커에 데이터를 게시할 준비가 되었습니다.
SiteWise Edge MQTT 브로커로 데이터를 전송하도록 다음 설정으로 MQTT 게시자를 구성합니다.
MQTT 출력 노드를 가져오려면
-
를 사용하여 MQTT Out 구성 노드를 가져옵니다
"type": "mqtt out"
. MQTT 출력 노드를 사용하면 브로커의 구성을 공유할 수 있습니다. -
MQTT 브로커 연결 및 메시지 라우팅과 관련된 정보를 보려면 키-값 페어를 입력합니다.
예제 mqtt out
노드를 가져옵니다.
[ { "id": "string", "type": "mqtt out", "z": "string", "name": "Publish to MQTT broker", "topic": "
/Renton/WindFarm/Turbine/WindSpeed
", "qos": "1", "retain": "", "respTopic": "", "contentType": "", "userProps": "", "correl": "", "expiry": "", "broker": "string", "x": 830, "y": 200, "wires": [] }, { "id": "string", "type": "mqtt-broker", "name": "emqx", "broker": "127.0.0.1", "port": "1883", "clientid": "", "autoConnect": true, "usetls": false, "protocolVersion": "5", "keepalive": 15, "cleansession": true, "autoUnsubscribe": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "birthMsg": {}, "closeTopic": "", "closePayload": "", "closeMsg": {}, "willTopic": "", "willQos": "0", "willPayload": "", "willMsg": {}, "userProps": "", "sessionExpiry": "" } ]
예제 MQTT 출력 노드는 다음 정보를 사용하여 MQTT 연결을 생성합니다.
-
서버:
127.0.0.1
-
포트:
1883
-
프로토콜:
MQTT V5
그런 다음 MQTT 출력 노드는 다음 정보로 메시지 라우팅을 구성합니다.
-
주제:
/Renton/WindFarm/Turbine/WindSpeed
-
QoS:
1
노드 배포 및 확인
세 개의 데이터 게시 흐름 노드를 구성한 후 다음 단계에 따라 흐름을 배포하고 데이터가 로 올바르게 전송되고 있는지 확인합니다. AWS IoT SiteWise
연결을 배포하고 확인하려면
-
데이터 게시 흐름에 표시된 대로 노드 3개를 연결합니다.
-
배포를 선택하여 모든 노드 연결 변경 사항을 적용합니다.
-
AWS IoT SiteWise 콘솔
로 이동하여 데이터 스트림을 선택합니다. -
드롭다운 메뉴에서 별칭 접두사가 선택되어 있는지 확인합니다. 그런 다음
/Renton/WindFarm/Turbine/WindSpeed
별칭을 검색합니다.
검색에 올바른 별칭이 표시되면 흐름을 배포하고 데이터 전송을 확인한 것입니다.