This is one of the three-part series of proof-of-concept projects with the primary objective of constructing an interoperable IoT information cluster. The focus is on utilizing non-proprietary Open Industrial Interoperability Ecosystem (OIIE) open standards. Each project within this series explores key facets of building a cohesive and scalable IoT infrastructure, demonstrating the potential of OIIE standards in promoting interoperability in the interconnect world.
Figure 1. The summary of the IoT demo using OIIE standards. Included in this three-part series are ISBM-2.0-Server-Adapter and ISBM-Publication-Consumer, hosted in their respective repositories.
- Objectives
- Project Information
- Temperature Sensor Wiring
- Before Running the Program
- Useful Links
- Quick Reference
Build a Raspberry Pi IoT device running on Raspbian to measure room temperature using MCP9808. The collected data will be published in CCOM format, embedded in the OAGIS BOD message via an ISBM 2.0 Server adapter, making it accessible for other IoT devices to consume.
Figure 2. This project focuses on utilizing the temperature sensor as a sample ISBM Publication Provider. The temperature data will be published via the ISBM Server Adapter for other devices to consume in an interoperable manner.
A console program written in C#, targeting .NET 6, adopts a cross-platform approach for diverse devices with different hardware architectures.
In this project, the NuGet package RapidRedPanda.ISBM.ClientAdapter is utilized. This package is designed to handle all the details of ISBM implementations for communication with ISBM servers. The ISBM interface will be accessible through object classes that developers should find user-friendly and easy to use. This will cut down the learning curve of building ISBM-compliant devices or applications.
There is also a repository, ISBM-2.0-Client-SDK, a full development kit for anyone wishing to learn more using the ISBM Client Adapter.
The program starts with an Open Publication Session, proceeds to measure temperature, and posts the publication every five seconds. Users can stop the temperature acquisition and publication loop at their discretion. Additionally, the program provides an option to Close the Publication Session before exiting.
A data mode option allows users to choose between sensor-acquired or simulated temperature data. This feature enables the program to function when a physical temperature sensor system is not available.
1. Visual Studio 2022 Community
2. Raspberry Pi 3b
3. Raspbian Version 11 (bullseye)"
4. MCP9808 Temperature Sensor
1. .Net 6
2. Microsoft.NetCore.UniversalWindowsPlatform 6.2.9 @
3. RapidRedPanda.ISBM.ClientAdapter 2.0.1 @
4. Iot.Device.Bindings 3.1.0 @
5. NewtonSoft v12.0.2 @
@ NuGet Packages
Make sure configurations are set properly in the Configs.json
{
"hostName": "Your ISBM Server Adapter Host Address",
"channelId": "/services/general/publication",
"topic": "OIIE:S30:V1.1/CCOM-JSON:SyncMeasurements:V1.0",
"authentication": 0,
"userName": "",
"password": "",
"simMode": 1
}
- When using the ISBM Server Adaptor project provided in this OIIE demo, set "authentication" to 0. In case of connecting to secured ISBM servers, change "authentication" to 1 and provide the credential information.
- Use "simMode" to toggle between actual and simulated data.