Amazon IoT

(and how to make an internet-connected kitty motion detector)

What is Amazon IoT?

It's a managed cloud platform that lets connected devices easily and securely interact with cloud applications and other devices.
- Amazon

But how is it different?

  • It can support billions of devices
  • It can support trillions of messages
  • It's inexpensive
  • It's reliable
  • It's secure.
  • It's fast.
  • It's [freaking] Amazon.

How does it work?

  • Two major components are the Device Gateway and the Rules Engine.
    
  • The Gateway adds devices as "things." 
  • Messages from devices are filtered and routed by the Rules Engine.
  • The Rules Engine routes messages to actions.
  • IoT provides a pub/sub system for hardware via the message broker.

And for the visual learners...

Sample Use Cases

  • Autonomous Machines:
    IoT => DynamoDb & Machine Learning
  • Machine Maintenance:
    IoT => Kinesis & SNS
  • Pizza Ordering Button:
    IoT => API Gateway, Lambda, & DynamoDB

How are messages sent to IoT?

  • IoT supports publish and subscribe via MQTT protocol and publish via HTTPS.
    
  • For browser-only applications, MQTT messages can be sent and received via web-sockets.
    
  • IoT has SDKs for Android/iOS, Java, Python, JavaScript (Browser and Node.js), and embedded C that simplify the message broker and IoT security. 

Can I connect *any* hardware?

  • Nope.
    
    • It has to be able to support TLS 1.2 for MQTT or SSL certificates for the REST API.
  • Sorta.
    • You can tether the hardware to a computer or Raspberry Pi. Or the device can just be a computer running the SDK.
    • There are some proxy hacks for outlying hardware.    

One Last Thing [Shadow]...

  • Devices can have virtual "shadows" (thing/device shadows)
    
  • Shadows can:
    
    • Show current online/offline state
    • Persist and show last saved state values
    • Persist any future desired device state 
  • When a device comes online, IoT will ask the device to match its desired state.
    

Our Picture Again

Amazon Iot Test Project:

A motion detector that texts (via lambda) and emails (via SNS) when something [kitty] is detected.

Kitty Detector Parts List

  • Tessel 2
  • PIR Sensor
  • External Battery Holder + Batteries
  • Lead Wires
  • 3-D printed case (optional)
  • 1 moving kitty (optional)

The Code

  • Tessel Hardware/Amazon IoT Code:
    https://github.com/lynnaloo/kitty-detector
  • Serverless Framework/Lambdas:
    https://github.com/lynnaloo/go-away-kitty

Demo Time!

Made with Slides.com