Exploring AWS IoT
4.4 (1,191 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,894 students enrolled

Exploring AWS IoT

Device to AWS Cloud integration: Programming Embedded Devices and managing data in AWS IoT
4.4 (1,191 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,894 students enrolled
Created by Stephen Borsay
Last updated 6/2020
English [Auto]
Current price: $32.99 Original price: $54.99 Discount: 40% off
2 days left at this price!
30-Day Money-Back Guarantee
This course includes
  • 6.5 hours on-demand video
  • 15 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Program the ESP8266, ESP32, or Raspberry Pi 3 to send data to AWS IoT Core
  • Connect to AWS free Tier and use relevant AWS services
  • Understand MQTT, JSON, IoT, and the AWS cloud
  • Become familair with device to cloud communication
  • Place IoT data into Dynamo DB by creating a table and data fields
  • Gain competency designing graphs and using analytics on IoT data
  • Code with basic programming structures in JavaScript, Python, and C
  • Use Node-Red to connect devices to AWS IoT
  • Get experience with many AWS services vital to IoT like DynamoDB and S3
  • Learn to Create Security certificates and policy's in AWS IoT
  • Comfortable using a PC, Mac, or a Linux computer
  • Some knowledge of the Internet of Things ( IoT)
  • Desire to understand device to cloud communication
  • Experience with a basic IDE like Arduino
  • Amazon AWS familiarity is helpful

This course explores the various features of device to cloud communication using Amazon AWS IoT Core on a AWS  free tier account.  

Before the course starts we need an AWS free tier account, a local installation of the AWS CLI tool, and installation of the MQTT.fx testing tool (all free).  After this is set up we will program inexpensive, WiFi enabled embedded devices such as the ESP8266, ESP32, and Raspberry Pi to communicate with AWS IoT Core with MQTT. 

We will take advantage of free "Internet of Things" (IoT)  development environments, like Mongoose OS in JavaScript, Arduino in C, Zernyth in Python, AWS FreeRTOS in C,  and the AWS IoT SDK in both JavaScript and Python for the Raspberry Pi to program our inexpensive WiFi devices.

You will need at least one or more of the following devices to transmit data to AWS IoT.  Alternately, you can send JSON test payloads from IoT Core directly, imitating a IoT device.  The course continues on with programming our embedded devices to send data from the device to the AWS cloud.  To transmit our data we will use the built in MQTT broker on our devices firmware, sending JSON encoded sensor data, to the AWS IoT console.

Device                                     Development Environment                Programming Language

ESP8266 12-E                           Mongoose OS, Arduino/Node-RED       JavaScript, Arduino

ESP32                                       Arduino, Zerynth, FreeRTOS                   JavaScript, Python, Arduino, C

Raspberry Pi 3 Model B           AWS IoT SDK                                          JavaScript, Python

From within the IoT console we will create AWS IoT “Rules” and “Actions” to explore many of the built in AWS IoT enabled services that are integrated in the AWS IoT Core console on the AWS cloud. Creating rules-based actions to AWS services we will send, store, file, manipulate, graph and analyze our sensor data through a variety of important AWS applications.   Some of these integrated applications, using these rule-based actions, are Dynamo Database, S3, SNS, Lambda, Data Pipeline, Glue,  QuickSight, AWS IoT Analytics, and SageMaker.

IoT is largely the fusion of devices and the web, specifically the cloud; all sending and recording data, ubiquitously and continually, everywhere. Understanding and being able to  prototype and implement an end-to-end, device to cloud path communication is a much in demand career skill. 

Having the skills to build a prototyping IoT solution in the cloud is already an important and highly demanded skill set for those wanting to call themselves IoT developers, and this is more true as time goes on and IoT exponentially expands as cheap connected devices become wide-spread. 

Remember! 30 days money-back guarantee with no questions asked. I want you to be happy with the value I believe this course provides. 

Who this course is for:
  • Engineers interested in the Internet of Things (IoT)
  • Electronic Hobbyists wanting to acquire more IoT skills
  • Web or Cloud Programmers interested in Embedded Devices
  • Embedded device Programmers interested in learning AWS Cloud
Course content
Expand all 61 lectures 06:27:19
+ Welcome to the course
4 lectures 24:34

Introduction to the course materials covering hardware devices used for the course as well as a brief walk-through of the IoT process on AWS.

Preview 08:03

A discussion of the technical specifications for the ESP8266, ESP32, and Raspberry Pi 3 Model B+.  We explain what they are used for and their IoT capabilities relevant to AWS IoT.

Preview 07:12

In this lecture we discuss all the free software used for the course, as well as OS's, testing tools, IDE's and languages used to program our IoT devices to talk to the AWS IoT Core gateway.  We start with the MQTT.fx tool to test our connection then move on to testing with Node-Red with a static IP.  Then Arduino with a provided script for sending data to Node-Red to AWS IoT core as a HTTP/MQTT relay.  Then move on to using Mongoose OS in JavaScript, Zerynth in Python, and finally the AWS IoT SDK in both JavaScript and Python. At the end of the course we introduce the AWS FreeRTOS on the ESP32 DevKitC as an advanced topic in bare metal C.

Preview 07:06

A discussion of communication protocols for IoT focusing on the MQTT broker both used from the device side and on AWS IoT Core to handle messaging using the Publish and Subscribe model.

Preview 02:13

A quiz to test your knowledge on AWS, IoT, and introductory cloud topics

Quiz on AWS and IoT
5 questions
+ Setting up Free tier AWS, AWS CLI, Policys, Security Credentials, and Testing
5 lectures 29:02

In this lecture we discuss the AWS IoT Core service, using the 'monitor' and 'test' consoles, and linking actions from AWS IoT Core to other important AWS IoT related services.

Preview 05:42

A short introduction to the often confusing concept of IAM policy's and roles.  Here we create a super expansive IoT policy with the automatic configuration tool in AWS IAM as a test case before creating an real IoT policy in AWS IoT core the simple way.

Introducing IAM for IoT policys and Roles

Here we use the abbreviated policy creating tool in AWS IoT core, then configure our three required security certificates for the testing tool and our devices.  After we download and activate our credentials we attach the inclusive IoT policy we just created to those credentials.

Creating Security Credentials and composing an IoT policy from AWS IoT Core

After downloading the MQTT.fx tool we link our security credentials, configure the broker with our custom endpoint, open port 8883 with MQTT+TLS1.2  to send a test JSON package to AWS IoT core.

Using the MQTT.fx tool to test our connection and send data to AWS IoT Core

A quiz that will ensure you have the fundamental concepts for setting up your embedded IoT device to communicate with the AWS Cloud

AWS Setup quiz
1 question

Essential AWS to device troubleshooting

AWS Device connect quiz
1 question
+ Using the Arduino IDE with Node Red to AWS IoT Core
4 lectures 34:11

Introduction to Node-Red and using a static webhost as a thrid party cloud proxy for enhancing data and AWS authorization to IoT Core

Intro to using Node-Red with Arduino and AWS IoT

An optional video going over how to set up the Node-Red App in a static website on IBM Cloudant.  Included in the resources are the official documentation.  This video is meant to clarify the confusing tool set up process.

Creating an IBM Cloudant account and Node-Red App

In this lecture we configure our Node Red application with an outgoing MQTT Node on port 8883 where we can authorize via our AWS security credentials to communicate with IoT Core on AWS.   We use Node-Red as a cloud proxy to authorize and enhance our data, and then dispatch the enhanced data to AWS IoT Core.

Configuring our Node-Red application

We finish connecting our Node-Red app with HTTP on the input node, processing a JavaScript Node enhancement to our JSON  data payload to an MQTT(s) endpoint to AWS IoT Core.  After this we can use our HTTP Arduino script with a Restful GET to send our IoT data to Node-Red. 

interfacing our Arduino Sketch with Node-Red

Test your  knowledge and important concepts in this section.

Arduino and Node-Red Quiz
5 questions
+ Using Mongoose OS on embedded devices for AWS IoT
3 lectures 29:11

In this lecture we introduce the free Mongoose programming tool to upload code to our embedded devices and transmit data from our device to AWS IoT Core.

Preview 03:43

In this lecture we build and flash the firmware from the Mongoose OS tool to our embedded device.  For this lecture we use the init.js code provided as the default example in Mongoose OS, then we examine how it transmits data to AWS IoT core after automatically creating  TLS 1.2 compliant certificates for us.

Reviewing the init.js demo code for our device

In this lecture we reprogram our embedded device with a new init.js firmware package Included in course resources) that better suits our needs.  Later in this course, when we start using different IoT related AWS services, this new modified data package will satisfy the requirements of our applications.

Programming our own init.js firmware with Mongoose OS in Javascript
Quiz on Mongoose OS
2 questions
+ Single page Arduino sketch for the ESP8266/ESP32 to go direct to AWS IoT Core
2 lectures 16:21
Arduino Sketch to connect your ESP8266/ESP32 directly to AWS IoT Core
Modified ESP8266/ESP32 Arduino Sketch to deliver JSON payload to AWS IoT Core

A quick quiz to help you understand topics related to our Arduino sketches for the ESP devices and how they communicate with AWS.

Quiz on the Sketchs and the ESP devices
3 questions
+ Programming the ESP32DevKitC in Python with Zerynth
4 lectures 20:55
Configuring Zerynth to AWS IoT
Running the Test program
Customizing the test program

A short quiz covering this section on using Zerynth for AWS IoT on our embedded devices.

Quiz on Zerynth for AWS IoT
2 questions
+ Programming the RaspberryPi3 with the AWS IoT SDK in Python
3 lectures 32:37
Provisioning AWS IoT to receive our JSON sensor data from our RaspberryPi-3
Setting up our RaspberryPi3 with the AWS SDK in Python, and the AWS CLI tool.
Modifying the basicPubSub.py program to send our data to AWS IoT with our Rpi3.
+ SNS Push Notifications
3 lectures 15:13
Set up a text notification for our sensor data
Set up an email notification for our sensor data
Using conditional data testing for notifications
+ S3 and data objects
2 lectures 08:11
Saving a data object driectly to S3
Exporting data to CSV or JSON