You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: articles/iot/iot-overview-connectivity.md
+13-10Lines changed: 13 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,15 +7,15 @@ services: iot-fundamentals
7
7
author: dominicbetts
8
8
ms.author: dobett
9
9
ms.topic: overview
10
-
ms.date: 03/14/2023
10
+
ms.date: 03/20/2023
11
11
ms.custom: template-overview
12
12
13
13
# 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.
14
14
---
15
15
16
16
# Device infrastructure and connectivity
17
17
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.
19
19
20
20
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.
21
21
@@ -32,6 +32,8 @@ Azure IoT devices use the following primitives to exchange data with cloud servi
32
32
-*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.
33
33
-*Cloud-to-device* messages receive one-way notifications from the cloud. For example, a notification that an update is ready to download.
34
34
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
+
35
37
## Device-facing cloud endpoints
36
38
37
39
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
40
42
-*Retrieve and update device twin properties*. A device uses this endpoint to access its device twin properties.
41
43
-*Receive direct method requests*. A device uses this endpoint to listen for direct method requests.
42
44
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.
44
46
45
-
A device can establish a connection to an IoT hub:
47
+
A device can establish a secure connection to an IoT hub:
46
48
47
49
- 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.
49
51
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).
51
53
52
54
## Device connection strings
53
55
54
56
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:
55
57
56
58
- The hostname of the IoT hub.
57
59
- 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.
59
61
60
62
## Authentication and authorization
61
63
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).
63
65
64
66
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:
65
67
@@ -109,7 +111,7 @@ Ephemeral connections are brief connections for devices to send telemetry to you
109
111
110
112
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:
111
113
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.
113
115
- Manage offline and disconnected scenarios. For example, buffering telemetry when the cloud endpoint is unreachable.
114
116
- Filter, compress, or aggregate telemetry before it's sent to the cloud.
115
117
- 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
128
130
129
131
Now that you've seen an overview of device connectivity in Azure IoT solutions, some suggested next steps include
130
132
131
-
-[Device management and control in IoT solutions](iot-overview-device-management.md).
Copy file name to clipboardExpand all lines: articles/iot/iot-overview-device-development.md
+25-14Lines changed: 25 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,21 +7,21 @@ services: iot-fundamentals
7
7
author: dominicbetts
8
8
ms.author: dobett
9
9
ms.topic: overview
10
-
ms.date: 03/16/2023
10
+
ms.date: 03/20/2023
11
11
ms.custom: template-overview
12
12
13
13
# 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.
14
14
---
15
15
16
-
# Device development
16
+
# IoT device development
17
17
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.
19
19
20
20
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.
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:
25
25
26
26
- Establishes a secure connection to a cloud endpoint.
27
27
- 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
32
32
33
33
## Device types
34
34
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):
36
36
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.
38
40
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:
40
42
41
43
[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.
42
44
@@ -46,7 +48,7 @@ MPUs generally run a general purpose OS, such as Windows, Linux, or MacOSX that
46
48
47
49
## Primitives
48
50
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:
50
52
51
53
-*Device-to-cloud* messages to send time series telemetry to the cloud. For example, temperature data collected from a sensor attached to the device.
52
54
-*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
55
57
-*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.
56
58
-*Cloud-to-device* messages to receive one-way notifications from the cloud. For example, a notification that an update is ready to download.
57
59
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
+
58
62
## Device SDKs
59
63
60
64
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.
-[Azure SDK for Embedded C](https://github.com/Azure/azure-sdk-for-c)
75
79
76
-
## Samples
80
+
## Samples and guidance
77
81
78
82
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.
79
83
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
+
80
86
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).
81
87
82
88
## Device development without a device SDK
@@ -98,6 +104,10 @@ IoT Plug and Play enables solution builders to integrate IoT devices with their
98
104
99
105
You can group these elements in interfaces to reuse across models to make collaboration easier and to speed up development.
100
106
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
+
101
111
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.
102
112
103
113
To learn more, see:
@@ -107,25 +117,26 @@ To learn more, see:
107
117
108
118
## Containerized device code
109
119
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.
111
121
112
122
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).
113
123
114
124
> [!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)
116
126
117
127
## Development tools
118
128
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:
120
130
121
131
| Tool | Description |
122
132
| --- | --- |
123
133
|[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. |
124
134
|[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. |
126
136
127
137
## Next steps
128
138
129
139
Now that you've seen an overview of device development in Azure IoT solutions, some suggested next steps include:
130
140
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