Demo application for using the AT&T IoT Starter Kit Powered by AWS.

Dependencies:   SDFileSystem

Fork of ATT_AWS_IoT_demo by Anthony Phillips

IoT Starter Kit Powered by AWS Demo

This program demonstrates the AT&T IoT Starter Kit sending data directly into AWS IoT. It's explained and used in the Getting Started with the IoT Starter Kit Powered by AWS on starterkit.att.com.

What's required

  • AT&T IoT LTE Add-on (also known as the Cellular Shield)
  • NXP K64F - for programming
  • microSD card - used to store your AWS security credentials
  • AWS account
  • Python, locally installed

If you don't already have an IoT Starter Kit, you can purchase a kit here. The IoT Starter Kit Powered by AWS includes the LTE cellular shield, K64F, and a microSD card.

README.md

Committer:
ampembeng
Date:
2016-12-02
Revision:
16:02008a2a2569
Parent:
15:6f2798e45099
Child:
21:56f91bdacff1

File content as of revision 16:02008a2a2569:

# AT&T Amazon Web Service Internet-of-Things demo

#############################################################################################################
Resources
#############################################################################################################
Getting Started with MBED using FRDM-K64F: (NOTE!!! The FRDM bootloader MUST be updated to work with Windows 10)
https://developer.mbed.org/platforms/frdm-k64f/

Avnet IoT Kit quickstart:
https://starterkit.att.com/quickstart

AWS IoT Interactive Tutorial (what this demo is based on):
https://us-west-2.console.aws.amazon.com/iot/home?region=us-west-2#/tutorial/help

AWS IoT C-SDK Tutorial (targeted for Raspberry Pi-2):
http://docs.aws.amazon.com/iot/latest/developerguide/iot-device-sdk-c.html

Python AWS IoT Tutorial:
https://github.com/aws/aws-iot-device-sdk-python

#############################################################################################################
Demo Quickstart
#############################################################################################################
NOTE1: FRDM-K64F bootloader must be updated to work with Windows 10 (otherwise board will reset over and over).

FRDM-K64F:
1) This quickstart assumes you've gone through the "Getting Started with MBED using FRDM-K64F" and that you
   can successfully drag-and-drop binaries to flash the FRDM-K64F device.

AT&T IoT Kit:
1) This quickstart assumes you've gone through the "Avnet IoT Kit quickstart" and your kits sim card has been
   activated and verified to work with the AT&T LTE network.

Amazon AWS IoT:
1) Create an AWS IoT thing using AWS IoT Console.  Makes sure to get your 'thing' certificates.

MBED:
1) In the mbed ATT_AWS_IoT_demo project open "network_interface.h" and comment in the following:
   #define USING_AVNET_SHIELD // NOTE: Make sure you only comment in ONE Network Connection

2) In the mbed ATT_AWS_IoT_demo project open "aws_iot_config.h" and update the following to match your AWS 
   IoT 'thing':
   #define AWS_IOT_MQTT_HOST
   #define AWS_IOT_MQTT_CLIENT_ID
   #define AWS_IOT_MY_THING_NAME

3) In the mbed ATT_AWS_IoT_demo project open "certs.cpp" and update the following to match your AWS 'thing' 
   private key and IoT certificate. NOTE Make sure the string format matches the format of AWS_IOT_ROOT_CA 
   (which is pre-populated):
   const unsigned char AWS_IOT_CERTIFICATE[]
   const unsigned char AWS_IOT_PRIVATE_KEY[]

Python GUI (optional):
1) The Python GUI "ATT_AWS_IoT_Demo_GUI.py" is used to communicate with the 'thing' device shadow, and can
   be used to request 'desired' and report 'reported' shadow states.  This quickstart assumes you've gone 
   through the "Python AWS IoT Tutorial" to the point where you've installed Python 2.7.11 and the libraries
   required to run the script (paho-mqtt, AWSIoTPythonSDK).

2) In the ATT_AWS_IoT_Demo_GUI.py script search for the "AWS IoT Config Parameters" and update them so they
   match the same 'thing' parameters as the mbed project.

3) Place your 'thing' certificates into file locations where the Python script can find them.  For example:
   AWS_IOT_ROOT_CA_FILENAME     = "C:/Temp/certs/rootCA-certificate.crt"
   AWS_IOT_PRIVATE_KEY_FILENAME = "C:/Temp/certs/private.pem.key"
   AWS_IOT_CERTIFICATE_FILENAME = "C:/Temp/certs/certificate.pem.crt"

Once all this is setup you should be able to:
1) See the FRDM board start up and connect to Amazon and then create a 'thing' shadow (if there is none).
2) See the FRDM board get the shadow LED color.
3) Press the SW3 button on the FRDM board to cycle the LED color ->              (Off R G B W)
4) Use the AWS IoT Console to "Update shadow" to set new 'desired' colors via -> (0   1 2 4 7)
5) Use the Python GUI buttons to request 'desired' colors.  The GUI should also report the "AWS Reported LED Status"