(and how to make an internet-connected
It's a managed cloud platform that lets connected devices easily and securely interact with cloud applications and other devices.
It can support billions of devices
It can support trillions of messages
It's [freaking] Amazon.
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.
Autonomous Machines: IoT => DynamoDb & Machine Learning
Machine Maintenance: IoT => Kinesis & SNS
Pizza Ordering Button: IoT => API Gateway, Lambda, & DynamoDB
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.
It has to be able to support TLS 1.2 for MQTT or SSL certificates for the REST API.
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.
Devices can have virtual "shadows" (thing/device shadows)
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.
A motion detector that texts (via lambda) and emails (via SNS) when something [kitty] is detected.
External Battery Holder + Batteries
3-D printed case (optional)
1 moving kitty (optional)
Tessel Hardware/Amazon IoT Code: https://github.com/lynnaloo/kitty-detector
Serverless Framework/Lambdas: https://github.com/lynnaloo/go-away-kitty