Skip to content

Latest commit

 

History

History
87 lines (56 loc) · 9.21 KB

README.md

File metadata and controls

87 lines (56 loc) · 9.21 KB

Azure IoT Hackathon

Outline

In this IoT scenario of the Azure Hackathon, we will use MXCHIP IoT DevKit as our main IoT physical devices.

These kits are equipied with OLED display, headphone, microphone, sensors like temperature, humidity, motion, pressure and Wifi helping us to build flexible IoT projects quickly.

Prerequisites

In addition to the DevKit, we would need (depending on the use-case):

  1. Azure subscription
  2. Azure IoT Hub
  3. Azure Stream Analytics
  4. Azure Machine Learning Service / Azure Machine Learning Studio (Classic)
  5. Azure Cognitive Services
  6. Azure Functions

A number of example projects using IoT DevKit can be found here, including:

  1. Remote montitoring of temprature, pressure, humidity
  2. Creating a door monitor
  3. Making a voice translator using Azure Cognitive Services
  4. Sending alerts or tweets triggered by the motion sensor

Reference architecture

Most of the IoT solutions essentially follow the below reference architecture:

alt text

  1. IoT devices connect to IoT Hub and start sending messages (see an introduction here)
  2. Iot Hub receives and manages messsages from multiple devices (link)
  3. Messages from IoT Hub can either being just stored in a storage unit, trigger a fucntion directly (e.g. here), or being sent to a processing unit like Azure Stream Analytics
  4. In addition to it's embedded analytical and machine learning capabilities (see here), one can also create bespoke ML models using Azure Machine Learning Services and expose those models to be called from the Stream Analytics functions (see an example here).

Hackathon scenario

alt text

We first connect our DevKits to our Azure Event Hubs and start streaming data (link), then create an Azure Streaming Analytics job and define input stream) and output(s). Using the historical weather data, we can build a machine learning classifier that predicts probability of rain based on measured humidity and temprature levels. We then expose this model as a webservice and call the model using a stream analytcis function. Now we can query our stream and start predicting weather live. Results can be either written to an output storage unit or a live PowerBI dashboard.

Please also refer to this presentation which provides an overview of the scenario an additional hints and tipps.

Other scenarios

AI on Edge

A good example of AI on edge use-cases can be found here. Microsoft Computer Vision provides examples and best practice guidelines for building computer vision systems. All examples are given as Jupyter notebooks, and use PyTorch as the deep learning library. This tutorial shows how to train and deploy a comoputer vision model on IoT edge devices using the Custom Vision service.

alt text

Microsoft and NVIDIA extend video analytics to the intelligent edge using DeepStream SDK alt text

This tutorial shows how to integrate Azure services with machine learning on the NVIDIA Jetson Nano (an ARM64 device) using Python. By the end of this sample, you will have a low-cost DIY solution for object detection within a space and a unique understanding of integrating ARM64 platform with Azure IoT services and machine learning.

alt text

This repo contains the components needed to use the Vision AI Developer Kit to develop Neural Network models which can be deployed to the Vision AI DevKit hardware.

alt text

MLOps with Azure ML

Azure ML contains a number of asset management and orchestration services to help you manage the lifecycle of your model training & deployment workflows.

With Azure ML + Azure DevOps you can effectively and cohesively manage your datasets, experiments, models, and ML-infused applications.

alt text

Useful Links

  1. IoT device simulators: IoT MXChip DevKit simulator + Github page, Raspberry Pi simulator (+ connection instructions) and multiple device simulators + Githuib page
  2. Visual Studio Code + Platform IO IDE
  3. PlatformIO & IoT DevKit integration
  4. USB-Driver for the IoT DevKit (http://www.st.com/en/development-tools/stsw-link009.html)
  5. Use Azure IoT Tools for Visual Studio Code to send and receive messages between your device and IoT Hub
  6. Connect an MXChip IoT DevKit device to your Azure IoT Central application + Create an Azure IoT Central application
  7. Try a cloud-based remote monitoring solution
  8. Cloud City IoT Hack
  9. Keyword Spotting on IoT DevKit with ELL
  10. Anomaly detection in Azure Stream Analytics + Github repo + YouTube video
  11. Azure Machine Learning Studio (classic) integration in Stream Analytics (Preview)