Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This tutorial describes how to connect MQTT Engine or MQTT Transmission to Amazon Web Services (AWS) IoT Core.

...

Warning

AWS IoT Core supports messages with a maximum message length of 128KB. If messages are received that exceed this limit AWS IoT Core will disconnect the client. 

Review our HowTo on ways to identify and resolve if this occurs

The document comprises these sections:

Table of Contents
minLevel2

Provisioning the 'Thing'

Before configuring MQTT Engine or MQTT Transmission, you must register a 'thing' connection in AWS IoT Core. Begin by browsing to AWS IoT Core in your AWS account. Make sure you are in the same AWS region that you intend to connect the MQTT Module to. Begin by expanding 'Secure' and click 'Policies' as shown below.

...

  • UUID.certificate.pem.crt
  • UUID.private.pem.key
  • AmazonRootCA1.pem


Anchor
engine
engine
Configuring MQTT Engine

For this example we'll be using MQTT Engine. However, the steps are very similar for MQTT Transmission with regard to connection establishment. Using the Ignition Gateway Web UI, browse to the Igntion Ignition 'Config > MQTT Engine /Transmission settings page'Settings > Servers' page. Now click the 'Certificates' tab as shown below:

...

This will allow MQTT Engine to buffer messages and reorder them should they be delivered out of order within a 3 second window. Generally 3 seconds seems to be plenty of time for the reordering with AWS IoT Core.

Anchor
transmission
transmission
Configuring MQTT Transmission

Using the Ignition Gateway Web UI, browse to the Ignition 'Config > MQTT Transmission Settings > Servers' page. Now click the 'Certificates' tab as shown below:

Image Added

Now click the 'Create new Certificate' link. Then upload one of the three files previously downloaded when creating the IoT Core 'Thing'. Once completed, your Certificates page should look similar to the following with all three files.

Image Added

Now, click the 'Servers' tab as shown below.

Image Added

Select 'Create a new MQTT Server' link which will bring up the following page.

Image Added

Set the following.

  • Name
    • AWS IoT Core
  • URL
  • Server Set
    • Default
  • Username
    • Blank
  • Password
    • Blank
    • Note if a password was previously set, make sure to click the 'Change Password' checkbox and ensure the password fields are empty
  • CA Certificate File
    • The 'Root CA' that was downloaded from AWS IoT Core
  • Client Certificate File
    • The 'Client Cert' that was downloaded from AWS IoT Core
  • Client Private Key File
    • The 'Client Private Key' that was downloaded from AWS IoT Core.

Leave all other fields blank and submit the configuration.

Note
If no Transmitters have been configured, the 'Status' will show 0 of 0.

Image Added

Configure an Transmitter as shown below and use Ignition Designer to created an appropriate tag tree in the default provider.

Tip
Review the MQTT Transmission Transmitters and Tag Trees document for more information on how Transmitter configs and Ignition tag trees interact

Image Added

Image Added

The server connection will now show the connected client as '1 of 1'

Image Added

To confirm messages are published from Transmission, navigate to the Ignition logs and Refresh Transmission. This will cause the client to disconnect, reconnect and publish its BIRTH messages.

The SparkplugTransmissionClient logger will show the NBIRTH and DBIRTH messages pushed.

Image Added

To confirm messages are received as AWS IoT Core. On your AWS account, navigate to AWS IoT > Test > MQTT test client.Image Added

Select and subscribe on # to receive all published messages

Image Added


On a Transmission Refresh you will see all DEATH messages published on the disconnect along with the new BIRTH messages on the reconnect. Image Added



Excerpt Include
CLD80:FAQ: Ignition Modules
CLD80:FAQ: Ignition Modules
nopaneltrue