Book Image

Hands-On Internet of Things with MQTT

By : Tim Pulver
Book Image

Hands-On Internet of Things with MQTT

By: Tim Pulver

Overview of this book

MQ Telemetry Transport (MQTT) is a lightweight messaging protocol for smart devices that can be used to build exciting, highly scalable Internet of Things (IoT) projects. This book will get you started with a quick introduction to the concepts of IoT and MQTT and explain how the latter can help you build your own internet-connected prototypes. As you advance, you’ll gain insights into how microcontrollers communicate, and you'll get to grips with the different messaging protocols and techniques involved. Once you are well-versed with the essential concepts, you’ll be able to put what you’ve learned into practice by building three projects from scratch, including an automatic pet food dispenser and a smart e-ink to-do display. You’ll also discover how to present your own prototypes professionally. In addition to this, you'll learn how to use technologies from third-party web service providers, along with other rapid prototyping technologies, such as laser cutting, 3D printing, and PCB production. By the end of this book, you’ll have gained hands-on experience in using MQTT to build your own IoT prototypes.
Table of Contents (16 chapters)
Title Page

Exploring MQTT features

In this section, we will have a closer look at some important features of MQTT:

  • QoS: For message buffering (when offline).
  • Last will/testament: To let the network know when a device goes offline; for example, due to empty batteries.
  • Keep alive: To define how often each device needs to call back home to let the MQTT server know that it is still online.
  • Persistent sessions: To store various information on the MQTT server, while the client is offline.
  • Retained messages: To keep messages available for new subscribers.

Quality of Service

MQTT supports a feature called QoS, which makes it possible for clients to receive messages that were sent while the device was offline. You can see this feature being used in...