IoT on AWS

IoT on AWS

Introduction

This page describes three views of the Internet of Things (IOT) on the public cloud.
Before enumerating them we make the claim that the story of IOT is really a cloud story…
once you get your devices up and running. To put this another way: Deploy your devices,
get the data flowing into the cloud, and then the fun begins.

Here we discuss

Smart meter data from a University of Washington building

AWS IoT buttons connected to the AWS Lambda service (through UW WiFi)

Arduino devices connected to the AWS cloud IoT service

Lexicon

IOT: Internet of Things, embedded devices from smart phones to Arduino constructions to FitBits
and beyond – limitless – that create an information framework in some environment.

IOT emphasis is first placed on devices

Here we are more interested here in a backing or supportive data system

This system is implemented on the public cloud

Diaspora: Informally the distribution / dispersion of IOT devices into some environment

Devices locations may change over time; a common IOT theme

CLI: Command Line Interface, here specifically the one for AWS

The CLI exists in the abstract as a means of communicating with the cloud

To use it: It must be installed on an EC2 instance

To use it from off the cloud (e.g. from your laptop) it must also be installed there

For IOT work we use the CLI to poll or query the supporting data system

IDS: IOT Data System, an acronym of convenience

Implies that we build devices, build the IDS, and then connect them together

REST API Endpoint: A URL where http messages will be POSTed by the IOT device

Shadow: An AWS cloud construct

Behaves as a shadow / proxy / image / representation of an IOT device

Persists on the cloud regardless of whether the IOT device is connected

As such it acts as the “latest known state record” of the device

MQTT: Message Queue Telemetry Transport, a lightweight publish-subscribe messaging protocol used on top of TCP/IP.

MQTT topic: A message tag that enables a message stream to be sorted (by that tag)

Smart Meter Project

UW buildings talk to an aggregator called Tritium Niagara

This in turn is passing certain data from Gowan Hall along to a SQL Server database on AWS

These data are available for query using proper connection credentials

UW ‘smart meters’ connect to an aggregator system called Tritium Niagara. Our objective is to
provide fast access to these power consumption and other sensor/actuator data. We are specifically working
a single building: Gowan Hall. The update rate is typically five to fifteen minutes with about 70 sensors.

On an AWS account we establish a small SQL Server database instance on the RDS (Relational Database Service).
This is blocked from direct internet access by means of a bastion server. The results are updated via a
data push originating from Niagara.

kilroy more details from implementation to grand scheme

kilroy need github version of the jupyter notebook

AWS IoT buttons

Arduino devices connected to the AWS cloud

Objective and Approach

The Arduino Maker community is quite large, active and supportive.
The Arduino Yun model has both a typical microprocessor as well as a second ‘system on a chp’ processor
running Linux with WiFi. The Yun is therefore supported by AWS via an IOT Endpoint. This means that
the device can be registered on the AWS cloud. It ‘exists’ there as a virtual extension of
itself. The physical device might generate signals or be interested in listening to other
devices. The IOT endpoint is a routing destination where this communication takes place
using the MPQQ communication protocol.

kilroy sidewalk ends here

The objective here is to establish a POC IOT implementation that connects a device located inside
a University (UW Seattle) to the AWS cloud; with signals going to and fro.
The approach is to obtain and configure such a device and document this initial success
for further expansion, for example into a prototype IOT network as part of a research project.

Solution

Purchase an Arduino Yun device; install the IDE

Power up, establish WiFi connectivity

Register the device with the University IT department using its Mac address

Register the device at AWS by means of an IOT Endpoint service

Develop and test code on the Yun to communicate with (report in) to its virtualization on AWS

Document this process

Results

We have successfully implemented Arduino Yun registration and data passing to an AWS IOT end point

Further development will be supported out of our cloud research program at opportunity

Admonitions

IOT devices are vulnerable to multiple failure modes

Operational failure: Fragile, not ruggedized

Malicious interference

Spurious signals often assumed to be accurate

To all three such ends we emphasize here on the backing data system: In the public cloud

Embedded device

Ping pong

Two Arduino Yun devices are powered up adjacent to one another. Each has a light sensor and a laser
diode pointed at the other’s light sensor. State sequence: