Azure IoT

Azure IoT Hub enables reliable, secure bidirectional communications between IoT devices and its cloud-based services. It allows developers to receive messages from, and send messages to, IoT devices, acting as a central message hub for communication. It can also help organizations make use of data obtained from IoT devices, transforming IoT data into actionable insights.

MQTT is a messaging protocol designed for IoT devices and applications operating on a publish/subscribe model. It’s lightweight, efficient, reliable, and allows for real-time communication. MQTT is well-suited for environments with limited resources, where efficient use of power and bandwidth is necessary.

Neuron supports MQTT as one of its communication protocols. The Neuron Azure IoT plugin is based on the MQTT plugin to provide easy access to Azure IoT .

Add Application

To create a northbound node and connect it to Azure IoT Hub to upload data, navigate to North Apps and click Add Application.

  • Name: The name of this application node, for example, “azure-iot”.
  • Plugin: Select the Azure IoT plugin.

Configure Application

See the table below for the configuration parameters.

ParameterDescription
Device IDAzure IoT Hub device ID.
QoS LevelMQTT QoS level for message delivery, optional, default QoS 0.
Upload FormatJSON format of reported data, a required field:

- values-format, data are split into values and errors sub-objects.
- tags-format, tag data are put in a single array.

Same as the MQTT plugin, see MQTT Upstream/Downstream Data Format
IoT Hub HostnameAzure IoT Hub hostname (full CName).
AuthenticationAzure IoT Hub device authentication method, uses either Shared Access Signature or X.509 Certificates.
SAS TokenSAS token, required if using Shared Access Signature authentication.
Root CA CertificateCA certificate, required if using X.509 authentication.
Device CertificateDevice Certificate, required if using X.509 authentication.
Private KeyDevice Private Key, required if using X.509 authentication.

Add Subscription

After plugin configuration, data forwarding can be enabled via southbound device subscriptions.

Click the north app on the North Apps page, then Add Subscription on the Group List page. And set the following:

  • South device: Select the southbound device you want to subscribe to, for example, ‘modbus-tcp-1’.
  • Group: Select a group from the southbound device, for example, ‘group-1’.

Select the desired southbound device (e.g., ‘modbus-tcp-1’) and group (e.g., ‘group-1’).

After the Azure IoT plugin connects successfully, it will send messages to Azure IoT Hub using the MQTT topic devices/{device-id}/messages/events/, where {device-id} is the Device ID.

The exact format of the data reported is controlled by the Upload Format parameter, and the behavior is the same as that of the MQTT plugin. For more detailed information, see MQTT Upstream/Downstream Data Format

Write tags using cloud-to-device messages

The Azure IoT plugin could receive write requests from Azure IoT Hub cloud-to-device messages on the MQTT topic devices/{device-id}/messages/events/, where {device-id} is the Device ID. The write request data format is the same as the MQTT plugin, see MQTT Upstream/Downstream Data Format.

Tutorial

Bridging Data to Azure IoT Hub using Neuron demonstrates how to use the Azure IoT plugin to connect to Azure IoT Hub.