# Integrate AWS IOT

# Create a thing

  • From AWS console, search for IOT core
  • Create a Thing and name it, this name will be used as the OpenMQTTGateway name.

AWS tutorial step

AWS tutorial step

AWS tutorial step

AWS tutorial step

# Create a policy

AWS tutorial step

AWS tutorial step

AWS tutorial step

  • Add this json code to the policy
{
  "Version": "2021-11-01",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iot:Connect",
        "iot:Publish",
        "iot:Subscribe",
        "iot:Receive",
        "greengrass:Discover"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

# Create a certificate

  • Create a new certificate

AWS tutorial step AWS tutorial step

  • Download certificates and key

AWS tutorial step

# Attach Policy with certificate

AWS tutorial step AWS tutorial step

# Activate certificate and attach it to Thing

AWS tutorial step AWS tutorial step

# Find AWS EndPoint

AWS tutorial step

# Gather the information for OpenMQTTGateway configuration

Now you should have the following information for the OpenMQTTGateway configuration:

  • Root certificate
  • Client certificate
  • Client key
  • End point url
  • Gateway name

# Modify OpenMQTTGateway configuration

With Arduino IDE, you can update the following field into User_config.h with the information gathered:

  • Gateway_Name
  • MQTT_SERVER "xxxxxx.iot-eu-amazonaws.com"
  • MQTT_PORT "8883"
  • AWS_IOT true
  • ss_server_cert with the root certificate
  • ss_client_cert with the client certificate
  • ss_client_key with the Client key
  • MQTT_SECURE_SELF_SIGNED 1
  • MQTT_SECURE_DEFAULT true

With PlatformIO you can directly leverage the environment esp32dev-ble-aws

# Build and upload

# Connect to a WiFi Access point see portal

Enter your credentials and verify that Secure connection is marked.

# Verify that you receive data in AWS

  • Go to things
  • Click on the thing created
  • Go to Activity
  • Click on MQTT Test Client
  • Subscribe to +/#

You should see messages coming.

AWS tutorial step