An AWS IoT Tutorial With LinkIt ONE

by Seeed Studio in Circuits > Arduino

5835 Views, 13 Favorites, 0 Comments

An AWS IoT Tutorial With LinkIt ONE

封面.jpg

Here's a tutorial to show you how to connect to AWS IoT with LinkITONE.

I made a small demo to make the tutorial more clear. A sensor and an actuator is need.

The demo will send a sensor data to AWS, and AWS was able to control the actuator as well.

Here we use Grove - Touch Sensor as the sensor while Grove - LED Bar act as the actuator.

Have fun, welcome to the world of IoT and AWS.

Part List

IMG_20160130_142824R_2.jpg

Here are the hardware modules we need:

Configuring Your AWS IoT Service

step2-1.png
step2-2.png
step2-3.png
step2-4.png
step2-5.png
step2-6.png
step2-7.png
step2-8.png
step2-9.png
step2-10.png
step2-11.png

At the very beginning, we need to get an AWS

IoT service account, and do some configuring.

Create an AWS Account

Go to AWS IoT and open the AWS IoT Dashboard

Sign in to your Account.

Click the Services on the top-left corner, and then click on AWS IoT, (image 1&2)

Click on Get Started. (image 3)

Then, we can create something now.

Click on Create a Resource and then create a thing (image 4&5)

Enter a name, whatever you like, here we name it LinkIt_AWS_Test. (image 6)

Click Create to complete it and then click on View thing to get information of the thing you create. (image 7)

Click on Connect a device. (image 8)

Choose Embedded C and Click on Generate certificate and policy. (image 9)

You will find 3 files. Download the file, we need them later. And click on Confirm & start connecting. (image 10)

Then we will get some code, as shown at below. Copy the code into an empty document. We will use code later. Then click on Return to Thing Detail. (image 11)

Now, this step is done. Let move to the next step.

Setup Your LinkIT ONE Development Enviroment

This tutorial is under Win8.1 system and Arduino IDE 1.5.7 with LinkIt SDK 1.1.17.

Important Note: This Version support Arduino IDE 1.5.7 and LinkIt SDK 1.1.17 only.

Download the Sketch/library

step4-1.png

Put had on mbed TLS library for LinkIt ONE to view the github page.

Then click Download ZIP to download the code.

The code you downloaded is not an Arduino library, it's a sketchbook, which had included all the library the project need.

Unzip the file you had downloaded from Github, you will get a folder named aws_mbedtls_mqtt-master, remove “-master” in the file name.

Configuring Arduino IDE

step5-1.png
step5-2png.png

Open your Arduino IDE(1.5.7), click File > Preferences > Sketchbook Location, browse to the folder we had mentioned above - ArduinoPhone-master. Then click OK to save it.

Close and relaunch Arduino IDE, click File > Sketchbook > aws_paho_shadow, then the code will be opened.

Put Key File Into Storage of LinkIt ONE

step6-1.jpg
step6-2.png
step6-3.png

he application development for AWS IoT Services is performed in the Arduino IDE. Before commencing the sketch development add the certificates (.key or .crt files) created in section creating a certificate for a device or application communication into the LinkIt ONE development board’s flash storage memory as follows.

If the board isn’t already, switch it into Mass Storage mode, as shown at the image about.

Navigate to Computer, then Devices and Removable Storage. Open the removable disk drive corresponding to the LinkIt ONE development board.

Copy the three files we download from AWS IoT into the disk.

And in the code we had downloaded, there’s file named VeriSign-Class 3-Public-Primary-Certification-Authority-G5 (1).pem in \aws_mbedtls_mqtt\root_cert in, copy it to the Remove Disk as well, and rename it to root-CA.crt

Then put the switch to UART mode.

Modify the Code

step7-1.png
step7-2.png
step7-3.png
step7-4.png

Click File>Sketchbook>aws_paho_shadow to open the code. There’s something need to be configured.

There are few thing need to be configured.

1. Find the code at aws_paho_shadow.h (image 1), remember that we had copied some code at step2? Copy the code and replace it in aws_paho_shadow.h

2. Configure your Wi-Fi AP (image2)

3. Run win+R, enter cmd, and ping the address of AWS_IOT_MQTT_HOST

ping A2DWFZYZMAZJGZ.iot.us-east-1.amazonaws.com

You will get a series of number, it's an address. And modify IP_ADDRESS(line

40) to this line of number. (Here is 54.164.100.76)

4.

Hardware Connect

IMG_20160130_142321R_2.jpg

We will use Grove - Touch Sensor and Grove - LED Bar for example here.

  • Base Shield put to 3V3
  • Grove - Touch Sensor connect to D6
  • Grove - LED Bar connect to D2

Upload the Code

step9-1.png
step9-2.png
step9-3.png

Connect your LinkIt ONE to PC, and remember insert the Wi-Fi alterna.

Open your Device Manage, you will find there’re 2 COM Ports.

Click Tools>Board and choose LinkIt ONE.

Click Tool>Ports and choost the number of MTK USB Debug Port.

Finally, click Upload button to Upload the code.

Then this step is completed.

View Result

step10-1.png
step10-2.png
step10-3.png
step10-4.png
step10-5.png

Change Arduino IDE Ports to MTK USB Moden Port, and open the Serial Monitor and set baud rate to 9600.

When you got ...X.509 certificazte... ok, it means the your device had connected to AWS successful. If there’s something wrong, please reset LinkIt ONE and try again.

Then let’s open AWS IoT website, sign in to your account. And click the thing you created minutes ago:

You will find a control panel on the right side.

You can check the status of Touch Sensor now. Try press the Touch Sensor, and update it.

You will find the status of Touch had changed.

Then let’s try to control the LED Bar.

Click Update shadow.

And replace the code with below code:

{

"desired": {

"ledBarStatus": 5

},

"reported": {

"Touch": false,

"ledBarStatus": 0

}

}

Then click Update shadow, your LED Bar will change to Level 5.

Put hand on AWS IoT Services Getting Started Guide to get more information AWS IoT.