IoT Protocols :
1) CoAP (Constrained Application Protocol): CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.
2) MQTT (Message Queuing Telemetry Transport): It was designed as extremely lightweight publish/subscribe messaging transport. It is useful for connections with remote locations where a small code footprint is required and/or network bandwidth is a premium.
3) AMQP (Advanced Message Queuing Protocol): It connects systems, feeds business processes with the information they need and reliably transmits onward the instructions that achieve their goals.
4) DDS (Data Distribution Service): This protocol leverages multicasting techniques in the transmission of data and high-quality QoS in the small memory footprint devices and to applications.
MQTT
There are five basic ideas that you need to understand when using MQTT.
- (Message) Broker
- Topic
- Subscriber
- Publisher
- Messages
The Broker is a TCP/IP server sitting in the middle of an MQTT network. It is responsible for receiving Messages from Publishers and forwarding them on to Subscribers. A broker can run multiple simultaneous communication channels called Topics.
Topics are ad-hoc (application semantics) and are just a string of characters … like “setPoint” or “thing/setPoint”
Messages are just a string of bytes. Typically formatted as JSON. This is by convention and is not a requirement.
MQTT clients can be Publishers or Subscribers or both.
The good news is the Cypress WICED SDK has MQTT built-in and provides a clean interface for you to develop firmware to create and use MQTT connections. MQTT is pretty simple and has only four important concepts.
- Message Broker – A server that supports MQTT connections and hosts Topics
- Topic – The name for a queue of Messages (the Topic name can essentially be anything that you want in your system)
- Message – A string of bytes in any format you desire for your system
- Publisher – A device that sends a Message to a specific Topic on a specific MQTT Message Broker
- Subscriber – A device that has asked to receive Messages sent to a specific Topic
In order to make the connection to the Amazon IoT Cloud you need to use Transport Layer Security which is also built into the WICED SDK. Good security is one of the best reasons to use Cypress WICED as we are taking that very seriously.
The AWS IoT Cloud supports a bunch of other functionality including:
- Connections to the Dynamo DB
- Simple Notifications (Text message, Email)
- Running Lambda Functions
- Plus a bunch more
The Amazon IoT Cloud can do an amazing, frightening, crazy overwhelming amount of different things. Here is a picture of their architecture.
[This picture is taken from Online Documentation]