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/
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®.
$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
For more information refer to the Quick Start Guide
- STM32MP257F-EV1
- Micro SD 32GB
- 5 x STEVAL-PROTEUS1 (at least 2 boards)
- STLINK-V3MINIE or STLINK-V3SET
- Power supply classic or USB type-C 5V@3A
- 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
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
- Put the Micro SD in the dedicated slot of the STM32MPU (Board)
- Power on the board with a standard power supply 5V@3A with the jack (5V_3A connector) or Type-C (USB_PWR STLINK connector)
- OSTL v5.1 Installation on MicroSD Guide: STM32MP257x-EV1 - stm32mpu
- X-LINUX-AZURE Installation Guide: X-LINUX-AZURE expansion package - stm32mpu
- Install the STM32CubeProgrammer on Host PC
- Download the STSW-PROTEUS v1.1.1 package
- Unzip the downloaded file in a temporary folder
- Connect the STLINK-V3MINIE to the Host PC
- Open the STM32CubeProgrammer
Refer to official documentation for more details UM3045 Getting started with STSW-PROTEUS1 3.2 Zigbee-based application section
- Plug the STLINK-V3MINIE to the Node (refer to the official documentation)
- Upload the Full-features Zigbee for Coordinator and router and the Reduced features stack v1.19.0 (if not already loaded)
- Upload the target firmware: 1 Coordinator, 1 Router, 3 End-devices
- Load the Manifest and the Device Templates available in the asset
folder:
- IoTC Connect->Edge manifests menu create a new manifest called STIIoTEdgeGW_Manifest and then select the file asset/STIIoTEdgeGW_Manifest_deployment.arm32v7.json
- 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
- 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 /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
- exec: iotedge config apply
Note:
- The Node UID is the last 4 bytes of the MCU id.