Skip to content

It is an IoT data generator for TwinMaker whre the source has multiple waveforms from an entity

Notifications You must be signed in to change notification settings

kyopark2014/iot-data-generator-for-twinmaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TwinMaker를 위한 IoT Data Generator 생성하기

IoT Data Generator를 이용하여 다양한 Data Source를 생성하고 Timestream과 Grafana를 이용하여 Dashboard 생성하기에서 생성한 IoT Data Generator는 1개의 Source에서 1개의 파형만을 생성하고 있습니다. 하지만, TwinMaker와 SiteWise Connector를 연결하여 생성한 Asset Model은 1개의 Entity에서 여러개의 파형을 생성하여야 합니다.

따라서, AWS TwinMaker를 위하여 여기서 새로운 Data Generator를 생성하고자 합니다.

TwinMaker의 Data Asset Model

IoT TwinMaker Workshop에서 사용하는 Data Asset Model은 아래와 같습니다.

image

이때의 IoT Core로 인입되는 데이터의 Topic은 "$aws/rules/iotsitewise_conveyor1/conveyor1/telemetry"이고 데이터 형태는 아래와 같습니다.

{
    "rVibration_Temp":69.71,
    "rVibration_Z_RMS_Velocity":89.42,
    "rVibration_X_RMS_Velocity":50.58,
    "wRMSCurrent":106.94,
    "wCurrentLoad":107.94,
    "wEncoderVelocity":25.88,
    "wCylinderStatus":0.0,
    "sDateTime":"2022-07-06 22:56:30.503",
    "timeInSeconds":1657148190
}

Data Source 생성하기

IoT Data Generator for twinmaker에서는 TwinMaker의 소스로 Multiple 파형을 가지는 IoT 소스를 구현하고 있습니다. 이때 Data Generator는 Python으로 구성되어 있으며, 아래와 같이 구동이 가능합니다.

$ cd data-generator
$ python3 simulator-sitewise.py

인프라 생성하기

전체적인 인프라의 Architecture는 아래와 같습니다. IoT Data Generator는 여러개의 Waveform을 가지는 JSON 형태의 데이터를 IoT Core로 전송합니다. 여기서 Rule을 통해 특정 Topic을 IoT SiteWise로 전달합니다. 이때 Asset Model에 따라 정리된후 TwinMaker SiteWise Connect를 통해 TwinMaker에서 조회 할 수 있습니다. Grafana는 오픈 소스 시각화 도구로서 IoT TwinMaker의 데이터를 효과적으로 보여줍니다.

image

여기서는 AWS CDK를 이용해 인프라를 생성합니다. CDK로 인프라 생성에서는 CDK V2.0을 기준으로 Typescript를 이용하여 인프라를 생성하는 과정을 상세하게 설명하고 있습니다.

$ cd cdk-twinmaker
$ cdk deploy --all

생성 결과

Twinmaker에서 Conveyor를 로드한 화면은 아래와 같습니다.

image

Grafana에서 TwinMaker를 통해 로딩한 신호를 Dashboard에 아래처럼 보여줄 수 있습니다.

image

인프라 삭제

인프라를 삭제할 경우에는 아래와 같이 삭제할 수 있습니다.

$ cdk destroy --all

Reference

Edge to Twin: A scalable edge to cloud architecture for digital twins

About

It is an IoT data generator for TwinMaker whre the source has multiple waveforms from an entity

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published