iot-for-all / iotc-industrial-adt

IoT Central integration with Azure Digital Twins for Industrial data

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IoTC Industrial ADT

This repository contains tools and documentation for a sample integration solution between IIoT (OPC-UA) and Azure Digital Twins through Azure IoT Central. The provided tools and learning paths apply to several use cases and can be extended to support more Industrial protocols in the future.

Architecture

architecture

An OPC-UA client sends data to an IoT Central Application where a continuous data export has been created. The export has an Azure Function as destination, configured with Webhook type and a data transformation query to translate the OPC payload to an ADT compatible one. Finally the Azure Functions trigger property updates on the Azure Digital Twins instance.

The sample function in this repository, accepts POST requests with a payload defined in this way:

{
  "twinRawId": "<DIGITAL_TWIN_COMPLEX_ID>",
  "twinName": "[FRIENDLY_NAME (OPTIONAL)]",
  "modelId": "[DTDL_MODEL_ID (OPTIONAL)]",
  "value": "<PROPERTY_VALUE>"
}

where <DIGITAL_TWIN_COMPLEX_ID> is the unique identifier of a property in a Twin in the form 'twin_id/property_name' or 'twin_id/component_name/property_name'.

Then it parses the id to build the right API URL and update the property with the requested value.

The jq transformation query to produce such an input can be quite complex and hard to manually define without incurring in errors. For this reason, we provide a multi-platform configuration tool (see below) to help.

Resources Setup

Instructions to create all required resources like Azure Function and Digital Twins are available here.

Configuration Tool

The mapping configuration tool is an Electron application available for Windows, Mac OS and Linux. We do not provide binary releases, all the steps to get it running are detailed here.

About

IoT Central integration with Azure Digital Twins for Industrial data


Languages

Language:TypeScript 91.8%Language:CSS 4.6%Language:JavaScript 2.1%Language:HTML 1.6%