Skip to content

Commit 2647e1e

Browse files
committed
Add more links
1 parent 1701106 commit 2647e1e

File tree

4 files changed

+65
-36
lines changed

4 files changed

+65
-36
lines changed

articles/iot/iot-overview-connectivity.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ services: iot-fundamentals
77
author: dominicbetts
88
ms.author: dobett
99
ms.topic: overview
10-
ms.date: 03/14/2023
10+
ms.date: 03/20/2023
1111
ms.custom: template-overview
1212

1313
# As a solution builder or device developer I want a high-level overview of the issues around device infrastructure and connectivity so that I can easily find relevant content.
1414
---
1515

1616
# Device infrastructure and connectivity
1717

18-
This overview introduces some of the key concepts that relate to how devices connect to the cloud in a typical Azure IoT solution. The article also introduces optional infrastructure elements such as gateways and bridges. Each section includes links to content that provides further detail and guidance.
18+
This overview introduces the key concepts around how devices connect to the cloud in a typical Azure IoT solution. The article also introduces optional infrastructure elements such as gateways and bridges. Each section includes links to content that provides further detail and guidance.
1919

2020
IoT Central applications use the IoT Hub and the Device Provisioning Service (DPS) services internally. Therefore, the concepts in this article apply whether you're using IoT Central to explore an IoT scenario or building your solution by using IoT Hub and DPS.
2121

@@ -32,6 +32,8 @@ Azure IoT devices use the following primitives to exchange data with cloud servi
3232
- *Direct methods* to receive commands from the cloud. A direct method can have parameters and return a response. For example, the cloud can call a direct method to request the device to reboot.
3333
- *Cloud-to-device* messages receive one-way notifications from the cloud. For example, a notification that an update is ready to download.
3434

35+
To learn more, see [Device-to-cloud communications guidance](../iot-hub/iot-hub-devguide-d2c-guidance.md) and [Cloud-to-device communications guidance](../iot-hub/iot-hub-devguide-c2d-guidance.md).
36+
3537
## Device-facing cloud endpoints
3638

3739
An Azure IoT hub exposes a collection of per-device endpoints that let devices exchange data with the cloud. These endpoints include:
@@ -40,26 +42,26 @@ An Azure IoT hub exposes a collection of per-device endpoints that let devices e
4042
- *Retrieve and update device twin properties*. A device uses this endpoint to access its device twin properties.
4143
- *Receive direct method requests*. A device uses this endpoint to listen for direct method requests.
4244

43-
Every IoT hub has a unique hostname that is used to connect devices to the hub. The hostname is in the format `iothubname.azure-devices.net`. If you use one of the device SDKs, you don't need to know the full names of the individual endpoints because the SDKs provide higher level abstractions. However, the device does need to know the hostname of the IoT hub to which it's connecting.
45+
Every IoT hub has a unique hostname that's used to connect devices to the hub. The hostname is in the format `iothubname.azure-devices.net`. If you use one of the device SDKs, you don't need to know the full names of the individual endpoints because the SDKs provide higher level abstractions. However, the device does need to know the hostname of the IoT hub to which it's connecting.
4446

45-
A device can establish a connection to an IoT hub:
47+
A device can establish a secure connection to an IoT hub:
4648

4749
- Directly, in which case you must provide the device with a connection string that includes the hostname.
48-
- Indirectly through DPS, in which case the device connects to a well-known DPS endpoint to retrieve the connection string for the IoT hub it should connect to.
50+
- Indirectly by using DPS, in which case the device connects to a well-known DPS endpoint to retrieve the connection string for the IoT hub it's assigned to.
4951

50-
The advantage of using DPS is that you don't need to configure all of your devices with connection-strings that are specific to your IoT hub. Instead, you configure your devices to connect to a well-known, common DPS endpoint to discover their connection details. To learn more, see [Device Provisioning Service](/iot-dps/).
52+
The advantage of using DPS is that you don't need to configure all of your devices with connection-strings that are specific to your IoT hub. Instead, you configure your devices to connect to a well-known, common DPS endpoint where they discover their connection details. To learn more, see [Device Provisioning Service](/iot-dps/about-iot-dps.md).
5153

5254
## Device connection strings
5355

5456
A device connection string provides a device with the information it needs to connect securely to an IoT hub. The connection string includes the following information:
5557

5658
- The hostname of the IoT hub.
5759
- The device ID that's registered with the IoT hub.
58-
- Security information that the device needs to establish a secure connection to the IoT hub.
60+
- The security information the device needs to establish a secure connection to the IoT hub.
5961

6062
## Authentication and authorization
6163

62-
Azure IoT devices use TLS to verify the authenticity of the IoT hub they're connecting to. The device SDKs include the DigiCert Global Root G2 TLS certificate they currently need to establish a secure connection to the IoT hub. To learn more, see [Transport Layer Security (TLS) support in IoT Hub](../iot-hub/iot-hub-tls-support.md) and [TLS support in Azure IoT Hub Device Provisioning Service (DPS)](../iot-dps/tls-support.md).
64+
Azure IoT devices use TLS to verify the authenticity of the IoT hub or DPS endpoint they're connecting to. The device SDKs include the DigiCert Global Root G2 TLS certificate they currently need to establish a secure connection to the IoT hub. To learn more, see [Transport Layer Security (TLS) support in IoT Hub](../iot-hub/iot-hub-tls-support.md) and [TLS support in Azure IoT Hub Device Provisioning Service (DPS)](../iot-dps/tls-support.md).
6365

6466
Azure IoT devices can use either shared access signature (SAS) tokens or X.509 certificates to authenticate themselves to an IoT hub. X.509 certificates are recommended in a production environment. To learn more about device authentication, see:
6567

@@ -109,7 +111,7 @@ Ephemeral connections are brief connections for devices to send telemetry to you
109111

110112
Field gateways (sometimes referred to as edge gateways) are typically deployed on-premises and close to your IoT devices. Field gateways handle communication with the cloud on behalf of your IoT devices. Field gateways may:
111113

112-
- Do protocol translation. For example, enabling Bluetooth devices to connect to the cloud.
114+
- Do protocol translation. For example, enabling Bluetooth enabled devices to connect to the cloud.
113115
- Manage offline and disconnected scenarios. For example, buffering telemetry when the cloud endpoint is unreachable.
114116
- Filter, compress, or aggregate telemetry before it's sent to the cloud.
115117
- Run logic at the edge to remove the latency associated with running logic on behalf of devices in the cloud. For example, detecting a spike in temperature and opening a valve in response.
@@ -128,4 +130,5 @@ The open source IoT Central Device Bridge acts as a translator that forwards tel
128130

129131
Now that you've seen an overview of device connectivity in Azure IoT solutions, some suggested next steps include
130132

131-
- [Device management and control in IoT solutions](iot-overview-device-management.md).
133+
- [IoT device development](iot-overview-device-development.md)
134+
- [Device management and control in IoT solutions](iot-overview-device-management.md)

articles/iot/iot-overview-device-development.md

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@ services: iot-fundamentals
77
author: dominicbetts
88
ms.author: dobett
99
ms.topic: overview
10-
ms.date: 03/16/2023
10+
ms.date: 03/20/2023
1111
ms.custom: template-overview
1212

1313
# As a solution builder or device developer I want a high-level overview of the issues around device development so that I can easily find relevant content.
1414
---
1515

16-
# Device development
16+
# IoT device development
1717

18-
This overview introduces some of the key concepts around developing devices to connect to a typical Azure IoT solution. Each section includes links to content that provides further detail and guidance.
18+
This overview introduces the key concepts around developing devices that connect to a typical Azure IoT solution. Each section includes links to content that provides further detail and guidance.
1919

2020
IoT Central applications use the IoT Hub and the Device Provisioning Service (DPS) services internally. Therefore, the concepts in this article apply whether you're using IoT Central to explore an IoT scenario or building your solution by using IoT Hub and DPS.
2121

2222
:::image type="content" source="media/iot-overview-device-development/iot-architecture.svg" alt-text="High-level IoT solution architecture diagram that highlights device connectivity areas" border="false":::
2323

24-
In Azure IoT, a device developer writes the code to run on the device. This code typically:
24+
In Azure IoT, a device developer writes the code to run on the devices in the solution. This code typically:
2525

2626
- Establishes a secure connection to a cloud endpoint.
2727
- Sends telemetry collected from attached sensors to the cloud.
@@ -32,11 +32,13 @@ In Azure IoT, a device developer writes the code to run on the device. This code
3232

3333
## Device types
3434

35-
IoT devices can be separated into two broad categories, microcontrollers (MCUs) and microprocessors (MPUs).
35+
IoT devices can be separated into two broad categories, microcontrollers (MCUs) and microprocessors (MPUs):
3636

37-
MCUs are less expensive and simpler to operate than MPUs. An MCU contains many of the functions, such as memory, interfaces, and I/O within the chip itself. An MPU draws this functionality from components in supporting chips. An MCU often uses a real-time OS (RTOS) or runs bare-metal (no OS) and provides real-time responses and highly deterministic reactions to external events.
37+
- MCUs are less expensive and simpler to operate than MPUs.
38+
- An MCU contains many of the functions, such as memory, interfaces, and I/O on the chip itself. An MPU accesses this functionality from components in supporting chips.
39+
- An MCU often uses a real-time OS (RTOS) or runs bare-metal (no OS) and provides real-time responses and highly deterministic reactions to external events. MPUs generally run a general purpose OS, such as Windows, Linux, or macOS that provides a nondeterministic real-time response. There's typically no guarantee as to when a task will complete.
3840

39-
MPUs generally run a general purpose OS, such as Windows, Linux, or MacOSX that provides a nondeterministic real-time response. There's typically no guarantee as to when a task will complete.
41+
Examples of specialized hardware and operating systems include:
4042

4143
[Windows for IoT](/windows/iot/product-family/windows-iot) is an embedded version of Windows for MPUs with cloud connectivity that lets you create secure devices with easy provisioning and management.
4244

@@ -46,7 +48,7 @@ MPUs generally run a general purpose OS, such as Windows, Linux, or MacOSX that
4648

4749
## Primitives
4850

49-
An Azure IoT device can use the following primitives when it interacts with the cloud:
51+
An Azure IoT device can use the following primitives to interact with the cloud:
5052

5153
- *Device-to-cloud* messages to send time series telemetry to the cloud. For example, temperature data collected from a sensor attached to the device.
5254
- *File uploads* for media files such as captured images and video. Intermittently connected devices can send telemetry batches. Devices can compress uploads to save bandwidth.
@@ -55,6 +57,8 @@ An Azure IoT device can use the following primitives when it interacts with the
5557
- *Direct methods* to receive commands from the cloud. A direct method can have parameters and return a response. For example, the cloud can call a direct method to request the device to reboot in 30 seconds.
5658
- *Cloud-to-device* messages to receive one-way notifications from the cloud. For example, a notification that an update is ready to download.
5759

60+
To learn more, see [Device-to-cloud communications guidance](../iot-hub/iot-hub-devguide-d2c-guidance.md) and [Cloud-to-device communications guidance](../iot-hub/iot-hub-devguide-c2d-guidance.md).
61+
5862
## Device SDKs
5963

6064
The device SDKs provide high-level abstractions that let you use the primitives without knowledge of the underlying communications protocols. The device SDKs also handle the details of establishing a secure connection to the cloud and authenticating the device.
@@ -73,10 +77,12 @@ For MCU devices, see:
7377
- [FreeRTOS Middleware](https://github.com/Azure/azure-iot-middleware-freertos)
7478
- [Azure SDK for Embedded C](https://github.com/Azure/azure-sdk-for-c)
7579

76-
## Samples
80+
## Samples and guidance
7781

7882
All of the device SDKs include samples that demonstrate how to use the SDK to connect to the cloud, send telemetry, and use the other primitives.
7983

84+
The [IoT device development](../iot-develop/about-iot-develop.md) site includes tutorials and how-to guides that show you how to implement code for a range of device types and scenarios.
85+
8086
You can find more samples in the [code sample browser](/samples/browse/?expanded=azure&products=azure-iot%2Cazure-iot-edge%2Cazure-iot-pnp%2Cazure-rtos).
8187

8288
## Device development without a device SDK
@@ -98,6 +104,10 @@ IoT Plug and Play enables solution builders to integrate IoT devices with their
98104

99105
You can group these elements in interfaces to reuse across models to make collaboration easier and to speed up development.
100106

107+
The model is specified by using the [Digital Twins Definition Language (DTDL)](https://github.com/Azure/opendigitaltwins-dtdl).
108+
109+
The use of IoT Plug and Play, modeling, and DTDL is optional in typical IoT solutions. You can use the IoT device primitives without using IoT Plug and Play or modeling. The [Azure Digital Twins](../digital-twins/overview.md) service also uses DTDL models to create twin graphs based on digital models of environments such as buildings or factories.
110+
101111
As a device developer, when you implement an IoT Plug and Play device there are a set of conventions to follow. These conventions provide a standard way to implement the device model in code by using the primitives available in the device SDKs.
102112

103113
To learn more, see:
@@ -107,25 +117,26 @@ To learn more, see:
107117

108118
## Containerized device code
109119

110-
Using containers, such as Docker, to run your device code lets you deploy code to your devices by using the capabilities of the container infrastructure. Containers also let you define a runtime environment for your code with all the required library and package versions installed. Containers make it easier to deploy updates and to manage the lifecycle of your devices.
120+
Using containers, such as Docker, to run your device code lets you deploy code to your devices by using the capabilities of the container infrastructure. Containers also let you define a runtime environment for your code with all the required library and package versions installed. Containers make it easier to deploy updates and to manage the lifecycle of your IoT devices.
111121

112122
Azure IoT Edge runs device code in containers. You can use Azure IoT Edge to deploy code modules to your devices. To learn more, see [Develop your own IoT Edge modules](../iot-edge/module-development.md).
113123

114124
> [!TIP]
115-
> Azure IoT Edge enables multiple scenarios. In addition to running your IoT device code in containers, you can use Azure IoT Edge to run Azure services on your devices and implement field gateways. For more information, see [What is Azure IoT Edge?](../iot-edge/about-iot-edge.md).
125+
> Azure IoT Edge enables multiple scenarios. In addition to running your IoT device code in containers, you can use Azure IoT Edge to run Azure services on your devices and implement [field gateways](iot-overview-connectivity.md#field-gateways). For more information, see [What is Azure IoT Edge?](../iot-edge/about-iot-edge.md)
116126
117127
## Development tools
118128

119-
The following table lists some of the key development tools that you can use to develop IoT devices:
129+
The following table lists some of the available IoT development tools:
120130

121131
| Tool | Description |
122132
| --- | --- |
123133
| [Azure IoT Hub (VS Code extension)](https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.azure-iot-toolkit) | This VS Code extension lets you manage your IoT Hub resources and devices from within VS Code. |
124134
| [Azure IoT explorer](howto-use-iot-explorer.md) | This cross-platform tool lets you manage your IoT Hub resources and devices from a desktop application. |
125-
| [Azure IoT extension for Azure CLI](https://learn.microsoft.com/en-gb/cli/azure/service-page/azure%20iot) | This CLI extension includes commands such as `az iot device simulate`, `az iot device c2d-message`, and `az iot hub monitor-events` that help you test interactions with devices. |
135+
| [Azure IoT extension for Azure CLI](https://learn.microsoft.com/cli/azure/service-page/azure%20iot) | This CLI extension includes commands such as `az iot device simulate`, `az iot device c2d-message`, and `az iot hub monitor-events` that help you test interactions with devices. |
126136

127137
## Next steps
128138

129139
Now that you've seen an overview of device development in Azure IoT solutions, some suggested next steps include:
130140

131-
- [Device infrastructure and connectivity](iot-overview-connectivity.md).
141+
- [Device infrastructure and connectivity](iot-overview-connectivity.md)
142+
- [Device management and control](iot-overview-device-management.md)

0 commit comments

Comments
 (0)