NOTE: The project and documentation presented on this page is a work in progress so provided as a separate zip file download. It will be released in the main FreeRTOS download following full review and completion of this documentation.

IoT MQTT Library


MQTT Introduction

The IoT MQTT (Message Queue Telemetry Transport) library provides a lightweight publish/subscribe (or PubSub) messaging protocol that runs on top of TCP/IP and is often used in Machine to Machine (M2M) and Internet of Things (IoT) use cases.  The IoT MQTT library implements a subset of the MQTT 3.1.1 protocol standard and uses the IoT Task Pool library for threading.   

An MQTT connection to a broker can be established in a non-secure and secure manner.  Especially in IoT use cases, TLS (Transport Layer Security) is used to provide a secure communication protocol between a client and sever.  In TLS, the client and server establish a secure connection through a handshake protocol to prevent eavesdropping from any malicious parties.

The FreeRTOS IoT libraries can be used individually or collectively to create locally connected or internet connected MCU applications.  Each library can be freely used and is distributed under the MIT open source license

The pages below establish a progression to creating a secure connection.  

  1. MQTT Introduction (this page)
  2. MQTT Terminology
  3. Basic MQTT Demo (without TLS and in plaintext)
  4. TLS/Security Introduction
  5. TLS Terminology
  6. MQTT Demo (with basic TLS – only Server Authentication)
  7. X.509 Introduction (Client Authentication) – coming in a future release!
  8. MQTT Demo (with TLS – Mutual Authentication) – coming in a future release!