Teaching the Internet of Things: Bridging a Path from CPE 329 Advisor

Download Project:

Fields with * are mandatory

INTRODUCTION

“The ability to connect, communicate with, and remotely manage an incalculable number of networked, automated devices via the Internet is becoming pervasive, from the commercial kitchen to the residential basement room to the arm of the fitness buff.” – WSO 2 In this report, we will investigate procedures and technologies used in IoT. A variety of cloud platforms will be described to demonstrate its strengths and usage on IoT applications.

OVERVIEW OF THE BIG THREE’S IOT CLOUD SERVICES

Figure 3. A rate-range chart of the different connectivity technologies

Figure 3. A rate-range chart of the different connectivity technologies

Sometimes, WiFi can be scarce-I’m sure we’ve all experienced this. Having the support of telecommunication networks in the IoT stack can be valuable, especially if your IoT application is deployed in a less urban area. A mobile virtual network operator (MVNO) allows the use of any nearby radio towers for your devices’ internet connectivity, doesn’t matter if it’s AT&T, Verizon, or T-Mobile’s radio tower.

HELLO WORLD EXAMPLE

Figure 4. Hardware setup for the Hello World application displaying GPIO pinouts

Figure 4. Hardware setup for the Hello World application displaying GPIO pinouts

IoT and cloud platforms sound very abstract from a high level since the components appear to be very complex. A small example has been put together to demonstrate a simple IoT application, to depict some of the computational capabilities of a cloud platform connected to an external device. For this example, Amazon Web Services (AWS) was chosen as the cloud platform.

Figure 9. An example of a topic. A publisher sends a message to a topic, that gets received by publishers

Figure 9. An example of a topic. A publisher sends a message to a topic, that gets received by publishers

In IoT, there is a big emphasis on the idea of topics. Topics consist of publishers and subscribers. A certain subscriber sends a message (publishes) to a topic, and any devices listening, or rather subscribed, to that topic will receive the message sent by the publisher. This is the main concept of the MQTT protocol, in which a publisher sends a message to a broker, which handles the incoming messages, and delivers them to the appropriate recipients Below is a good representation of this idea.

LIBRARY TRACKING APPLICATION

Figure 12. High level design of the application. Phases demonstrating the expected behavior of the system. Both the microcontroller and the user, can perform separate actions on the cloud

Figure 12. High level design of the application. Phases demonstrating the expected behavior of the system

The code in Appendix 7 will have to be merged into Appendix 8 to sections 1 and 2 described by figure 12. Whatever client is subscribed to this raw DataTopic should be expecting a message to be in this format. The message will be handled by a Lambda function on the cloud subscribed to this topic. It will use this message to store into a database.

Figure 13. Hardware setup for the library application. Three motion sensors linked to Raspberry Pi via GPIO ports

Figure 13. Hardware setup for the library application. Three motion sensors linked to Raspberry Pi via GPIO ports

SUMMARY

These are just some concepts that can be applied within IoT by using a Raspberry Pi, Amazon Web Services and the Serverless framework. From this application described here are the services by AWS that were touched on:
1) Lambda: Code on the cloud
2) Simple Notification System (SNS): Delivering messages to devices subscribed to a topic.
3) DynamoDB: A NoSQL database, for fast deployment of a database.
4) API Gateway: A way for web/phone applications to request specific information from the cloud.
5) AWS IoT: Establish connection between external devices (i.e. microcontrollers) to the cloud.
6) Machine Learning: Create models about a particular dataset, and make predictions on sets of values. Predicting the future!

But there are more that can be easily incorporated to an application:
1) Elastic Compute Cloud (EC2): Provides scalable computing capacity in the cloud. Think powerful servers!
2) Simple Storage Service (S3): Provides storage for web applications. Storing and retrieving files on the cloud!
3) CodePipeline: Helpful to send updates and new code deployment to devices across the cloud. No need to update device one by one!
4) Redshift: SQL version database in AWS. Data Warehouse that is easy to configure and cost effective.

Authors: Steven Han | Rafael Lopez

Download Project

Download Project:

Fields with * are mandatory