Who is this for?

This is an advanced topic for developers who want to build a comprehensive IoT solution in Azure that streams, stores, monitors, aggregates, and visualizes telemetry data from Arm IoT devices.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Set up and configure Azure IoT Hub for device communication.
  • Register an IoT device and stream telemetry data using the Azure IoT SDK.
  • Route IoT data to Azure services using Azure Stream Analytics.
  • Store incoming data in Azure Cosmos DB through a Stream Analytics job.
  • Monitor data and send alerts using an Azure Function that reads from Cosmos DB and triggers notifications based on thresholds.
  • Aggregate sensor readings using an Azure Function that calculates average values from stored data.
  • Publish aggregated data to a public-facing web app hosted on Azure Blob Storage.

Prerequisites

Before starting, you will need the following:

  • A machine with Python 3 and Visual Studio Code installed
  • An active Azure account with sufficient permissions to create resources (such as IoT Hub, Functions, and Cosmos DB)

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll build a complete Azure-based IoT pipeline for Arm devices. First, you’ll create an Azure IoT Hub, implement a Python simulator that emits temperature, pressure, humidity, and timestamp readings, and stream telemetry securely into the cloud. Then, you’ll configure Azure Stream Analytics to query, transform, and route events, and persist processed data to Azure Cosmos DB. You’ll extend the pipeline with Azure Functions for monitoring thresholds and aggregating sensor values, and conclude by publishing aggregated results to a static web app on Azure Blob Storage. You’ll choose how to shape messages and what to store, and validate the flow at each stage.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know the Python telemetry simulator is sending data to Azure IoT Hub?
Run the simulator and verify that downstream services receive events. A quick check is to confirm that the Stream Analytics job connected to the IoT Hub input observes incoming records.
Which fields should my Stream Analytics query select from incoming messages?
The simulator emits temperature, pressure, humidity, and a timestamp. Select these fields and any additional metadata you need for storage in Cosmos DB or for later functions and visualization.
What should I check if the Stream Analytics job shows no output?
Confirm that IoT Hub is configured as the input, the simulator is running, and your query actually returns rows. Also verify that the job has a valid output configured for the next stage, such as Cosmos DB.
How can I confirm data is being stored correctly in Azure Cosmos DB?
Expect new items corresponding to each sensor reading with the selected fields (temperature, pressure, humidity, timestamp). If you changed field names in the query, check that the stored document structure matches your projection.
When adding Azure Functions for alerting and aggregation, what result should I expect before publishing to Blob Storage?
Verify one function reads from Cosmos DB and flags readings that cross your defined thresholds, and another computes averages from stored data. The aggregated output should be ready to surface in the web app hosted on Azure Blob Storage.
Next