Using Blockchain and IoT during organ transportation
Experiment #101
-
Project Date: May-August 2019
Services: Azure IoT Central, Azure IoT Hub, Azure Event Hubs, Azure Functions and Azure Blockchain Workbench
Technology used: Internet of Things and Blockchain
About
This Experiment researches the possibilities of combining Internet of Things (IoT) and Blockchain for transportation of volatile goods. IoT allows us to communicate with devices and collect ambient measurements like temperature and humidity from different sensors. The different components involved send and receive data and the Blockchain structure stores, transmits and verifies this data with integrity and in a secure way.
Idea
The experiment attempts to simulate the real time monitoring of environmental conditions in the transportation of volatile goods from one point to another, verifying at all times that the obtained values falls within the established security parameters.
Utility
For this experiment we chose the case of organ transport for a transplant surgery. To make sure that the donated organ is always in perfect conditions, it is very important to have continuous monitoring of the environment.
In this case, the organ transport refrigeration system will have a temperature measuring sensor. The device will send real time readings to verify that the transporting conditions of the donated organ are suitable until the surgery.
Process
First, the MxChip AZ3166 device connects to Microsoft Azure thru Wi-Fi. Then, we can collect all data readings by using Azure IoT Central and Azure IoT Hubs. After that, the data are sent to Azure Event Hubs and finally, they are sent to the main application.
Also, we set up an Azure Blockchain Workbench application which receives the measurements after passing through Azure Functions and Azure Logic Apps and it reports the status to the agents in real time. At this point, the agents can perform some predefined actions and the application registers every step to ensure the safety of it.
Architecture
IoT allows us to interact with a MxChip AZ3166 device, connect it to Azure via Wi-Fi (01) and send temperature readings to Azure IoT Hub (02).
From Azure IoT Central we can manage IoT devices (03) and store measurements in the Azure cloud with Azure Event Hubs (04a) as events (05a) or with Azure Service Bus (04b) as messages (05b).
Then, our applications will be able to access device and telemetry information from events and messages in a standard JSON format.
Each event or message is used as a trigger (06) to run an Azure Function App. This cloud application validates our access permissions (07) through Azure Active Directory.
After that, the Function App connects to the Blockchain Workbench REST API (08) and sends an action to the Azure Blockchain Workbench Application (09) to add a telemetry record block to the main chain.
All IoT steps are automatic but, at the Blockchain side, the human agents must also take decisions. The Blockchain Workbench Administrator must start the process by creating a Smart Contract (10a) and the Blockchain Workbench Users must report the status changes (10b).
If you want to read more click in this post
Step by Step
1. How to set up an IoT device in Azure IoT Hub
Create a new real device template in Device Explorer.
Get the Device Connection Credentials.
Download and install the IoT Central firmware from GitHub.
Reset device by holding A and B buttons at the same time.
Connect to the IoT device Wi-Fi and configure credentials.
If you want to see the whole process click this post
2. How to create a Blockchain Workbench App
An Azure Blockchain Workbench is not a unique resource that we can add to our resource group.
It is a whole container with certain preset and linked resources.
Wait for Blockchain Workbench to deploy. This process can take from 60 to 90 minutes to complete.
If you want to see the whole process click this post
3. How to create an Azure Function App to record telemetry readings
We’ll use the messages that the IoT Device sends to an Azure Service Bus queue via Azure IoT Central.
When we create the Azure Function, we must choose the Azure Service Bus Queue Trigger template.
Each message acts as a trigger an runs the Azure Function that extracts the temperature value from the message.
This numeric value is finally sent to our Azure Blockchain Workbench application as a TemperatureCheck action.
if you want to see the whole process click this post
Links