Skip to content

X-LINUX-IGWWSN1 is an industrial edge gateway software package for wireless sensor networks (WSN). It allows you to connect sensor nodes, such as the STEVAL-PROTEUS1 kit, transmit preprocessed data to Microsoft Azure® IoT Central cloud and receive commands.

Notifications You must be signed in to change notification settings

STMicroelectronics/x-linux-igwwsn1

Repository files navigation

X-LINUX-IGWWSN1 V1.0.0

latest tag

Introduction

X-LINUX-IGWWSN1 is an industrial edge gateway software package for wireless sensor networks (WSN). It allows you to connect sensor nodes, such as the STEVAL-PROTEUS1 kit, to Microsoft Azure® IoT Central cloud, transmit preprocessed sensor data, and receive commands. Detailed User Guide "Industrial WSN edge gateway software expansion package" can be foudn here : https://www.st.com/resource/en/user_manual/

Description

X-LINUX-IGWWSN1 is an industrial edge gateway software package for wireless sensor networks (WSN). It allows you to connect sensor nodes, such as the STEVAL-PROTEUS1 kit, transmit preprocessed data to Microsoft Azure® IoT Central cloud and receive commands.

It fully supports Microsoft Azure® device management primitives and includes a complete Industrial IoT Edge Gateway to route data from a ZigBee Mesh Network to the Cloud preprocessing real-time data and taking decision on-premise. This software can be used to accelerate the development of sensor-to-cloud applications for a broad range of industrial use cases. X-LINUX-IGWWSN1 includes dashboards to retrieve meaningful sensor data on Microsoft Azure®.

Package Structure:

$Root
+---asset
¦    ¦   IIoTEdgeGW_edgeIIoTGW_module.json
¦    ¦   IIoTEdgeGW_edgeSerial_module.json
¦    ¦   NodeDevice_module.json
¦      
+---code
¦    +---template_config
¦    ¦        |   config_app.json
¦    ¦        |   config_net.json
¦    +---modules
¦    ¦   +---edgeIIoTGW
¦    ¦        |   data_logger.py
¦    ¦        |   Dockerfile.arm32v7
¦    ¦        |   gw.py
¦    ¦        |   inference.py
¦    ¦        |   main.py
¦    ¦        |   module.json
¦    ¦        |   requirements.txt
¦    ¦   .env
¦    ¦   deployment.template.json
¦   CODE_OF_CONDUCT.md
¦   CONTRIBUTING.md
¦   Package_License.md
¦   README.md
¦   RELEASE_NOTE.md
¦   SECURITY.md

Getting Started

For more information refer to the Quick Start Guide

Requirements

Hardware

Software Setup:

Misc

  • A Linux® PC running Ubuntu® 20.04 or 22.04 is recommended. Developers can follow the link for details: PC prerequisites
  • Internet connection by ethernet cable
  • Microsoft Azure IoT Central account

Board setup

Legend:

  • STM32MPU Board : STM32MPU based board (i.e. STM32MP257F-EV1)
  • Host PC : Linux PC
  • Node : STEVAL-PROTEUS1 with STSW-PROTEUS v1.1.1 with Zigbee stack

See official documentation for more information

  1. Put the Micro SD in the dedicated slot of the STM32MPU (Board)
  2. Power on the board with a standard power supply 5V@3A with the jack (5V_3A connector) or Type-C (USB_PWR STLINK connector)
  3. OSTL v5.1 Installation on MicroSD Guide: STM32MP257x-EV1 - stm32mpu
  4. X-LINUX-AZURE Installation Guide: X-LINUX-AZURE expansion package - stm32mpu

Nodes setup (Coordinator, Router and End device)

  1. Install the STM32CubeProgrammer on Host PC
  2. Download the STSW-PROTEUS v1.1.1 package
  3. Unzip the downloaded file in a temporary folder
  4. Connect the STLINK-V3MINIE to the Host PC
  5. Open the STM32CubeProgrammer

For each Node (STEVAL-PROTEUS1)

Refer to official documentation for more details UM3045 Getting started with STSW-PROTEUS1 3.2 Zigbee-based application section

  1. Plug the STLINK-V3MINIE to the Node (refer to the official documentation)
  2. Upload the Full-features Zigbee for Coordinator and router and the Reduced features stack v1.19.0 (if not already loaded)
  3. Upload the target firmware: 1 Coordinator, 1 Router, 3 End-devices

Configuration

Microsoft IoT Central

  • Load the Manifest and the Device Templates available in the asset folder:
    1. IoTC Connect->Edge manifests menu create a new manifest called STIIoTEdgeGW_Manifest and then select the file asset/STIIoTEdgeGW_Manifest_deployment.arm32v7.json
    2. IoTC Connect->Device templates create a new template called STIIoTEdgeGW and import the modules: STIIoTEdgeGW_DeviceTemplate_edgeIIoTGW_module.json and STIIoTEdgeGW_DeviceTemplate_edgeSerial_module.json Note: select Azure IoT Edge template and then check This is a gateway device
    3. IoTC Connect->Device templates create a new template called STIIoTNodeDevice and import the module: STIIoTEndNode_DeviceTemplate_module.json Note: select IoT device template and then uncheck This is a gateway device
  • Open IoTC Connect->Devices
  • Create one edge device (for the STM32MPU Board) and select the STIIoTEdgeGW_Manifest manifest and STIIoTEdgeGW device template Note: copy the data available in the connect button data (ID scope, Device ID, and Primary key)
  • Create 4 devices (no device for the coordinator) selecting STIIoTNodeDevice as device template and copy the connect button data (ID scope, Device ID, and Primary key) to update the config_net.json file (follow the official dcoumentation for more details)

Configure STM32MPU Board

  • Configure /etc/aziot/config.toml file and re-apply the configuration with the command: iotedge config apply
  • Configure the config_net.json json file available in the /var/lib/iiotedgegw/config/ folder config_app.json and

Apply the configuration in the STM32MPU Board

  • exec: iotedge config apply

Note:

  • The Node UID is the last 4 bytes of the MCU id.

About

X-LINUX-IGWWSN1 is an industrial edge gateway software package for wireless sensor networks (WSN). It allows you to connect sensor nodes, such as the STEVAL-PROTEUS1 kit, transmit preprocessed data to Microsoft Azure® IoT Central cloud and receive commands.

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Languages