Popup

Wait! Don’t Go Yet! 👋

Become a Member Today and Unlock Access to All eBooks! 😍

Thousands of eBooks at your fingertips. Read, learn, and grow anytime, anywhere ✨

What is MQTT and How It Works

This article is an introduction to the MQTT protocol. MQTT stands for Message Queuing Telemetry Transport, a simple messaging protocol suitable for communication between IoT devices.

What is MQTT?

MQTT stands for Message Queuing Telemetry Transport. MQTT is a simple messaging protocol, designed for constrained devices with low bandwidth. So, it’s the perfect solution to exchange data between multiple IoT devices.

MQTT communication works as a publish and subscribe system. Devices publish messages on a specific topic. All devices that are subscribed to that topic receive the message.

MQTT Publish Subscribe

Its main applications include sending messages to control outputs, reading and publishing data from sensor nodes, and much more.

MQTT Basic Concepts

In MQTT, there are a few basic concepts that you need to understand:

MQTT – Publish/Subscribe

The first concept is the publish and subscribe system. In a publish and subscribe system, a device can publish a message on a topic, or it can subscribe to a particular topic to receive messages

Publish Subscribe Topic MQTT
  • For example, Device 1 publishes on a topic.
  • Device 2 is subscribed to the same topic that device 1 is publishing in.
  • So, device 2 receives the message.

MQTT – Messages

Messages are the information that you want to exchange between your devices. It can be a message like a command or data like sensor readings, for example.

MQTT – Topics

Another important concept is the topics. Topics are the way you register interest for incoming messages or how you specify where you want to publish the message.

Topics are represented with strings separated by a forward slash. Each forward slash indicates a topic level. Here’s an example of how you would create a topic for a lamp in your home office:

MQTT – Topics

Note: topics are case-sensitive, which makes these two topics different:

Case Sensitive

If you would like to turn on a lamp in your home office using MQTT, you can imagine the following scenario:

MQTT Publish Subscribe Example
  1. A device publishes “on” and “off” messages on the home/office/lamp topic.
  2. You have a device that controls a lamp (it can be an ESP32, ESP8266, or any other board or device). The ESP32 that controls your lamp is subscribed to that same topic: home/office/lamp.
  3. So, when a new message is published on that topic, the ESP32 receives the “on” or “off” messages and turns the lamp on or off.

The device that is publishing the messages can be an ESP32, an ESP8266, or a Home Automation controller platform with MQTT support like Node-RED, Home Assistant, Domoticz, or OpenHAB, for example.

mqtt device

MQTT – Broker

Finally, another important concept is the broker.

The MQTT broker is responsible for receiving all messages, filtering the messages, deciding who is interested in them, and then publishing the message to all subscribed clients.

MQTT – Broker

There are several brokers you can use. In home automation projects, we use the Mosquitto Broker installed on a Raspberry Pi. You can also install the Mosquitto broker on your PC (which is not as convenient as using a Raspberry Pi board, because you have to keep your computer running all the time to keep the MQTT connection between your devices).

Mosquitto

Having the Mosquitto broker installed on a Raspberry Pi on your local network allows you to exchange data between your IoT devices that are also connected to that same network.

To install Mosquitto broker on the Raspberry Pi, follow our tutorial:

You can also run the Mosquitto MQTT broker in the cloud. Running the MQTT Mosquitto Broker in the cloud allows you to connect several IoT devices from anywhere using different networks as long as they have an Internet connection. Check the tutorial below:

How to Use MQTT in Home Automation and IoT Projects

MQTT is great for home automation and Internet of Things projects.

Home Automation System Example
  • A Raspberry Pi runs the Mosquitto broker, which is essential for MQTT protocol.
  • The same Raspberry Pi runs Node-RED, which is a Home Automation Platform with MQTT support—this means it can subscribe to topics to receive messages from the other IoT devices, and publish messages on specific topics to send messages to other devices.
  • Node-RED also allows you to build an User Interface with buttons to control outputs and charts to display sensor readings.
  • The Arduino, the ESP32, and ESP8266 can act as MQTT clients that publish and subscribe to topics.
  • These boards are connected to actuators like LEDs or relays, and sensors like temperature, humidity, smoke sensors, etc.
  • These boards can publish data about the sensor’s state on a specific topic that Node-RED is also subscribed to. This way, Node-RED receives the sensor readings and can display them on the user interface.
  • On the other side, Node-RED can publish data on a specific topic to control outputs when you use the buttons on the interface. The other boards are also subscribed to that topic and control the outputs accordingly.

The following image shows an example of a Node-RED UI that allows you to control one output and displays temperature and humidity readings:

node-red ui output temperature humidity

Here’s a quick summary of the steps you should follow to build something as described previously:

  1. Set up your Raspberry Pi. Follow our Getting Started Guide with Raspberry Pi.
  2. Enable and Connect your Raspberry Pi with SSH.
  3. You need Node-RED installed on your Pi and Node-RED Dashboard.
  4. Install the Mosquitto broker on the Raspberry Pi.

Wrapping Up

MQTT is a communication protocol based on a publish and subscribe system. Devices can subscribe to a topic or publish data on a topic. Devices receive messages that are published on topics they are subscribed to.

We hope you’ve found this tutorial useful and you now understand what MQTT is and how it works.

Thanks for reading.

Share your love

🚀 Discover the world of electronics and innovation!

✨ Create, program, and experiment with all your creative ideas with ease.

Spotpear

Leave a Reply

Your email address will not be published. Required fields are marked *

Secure Payments
Securing online payments is a shared responsibility, and everyone can contribute.
Free Shipping
You get unlimited free shipping on eligible items with Ebokify, with no minimum spend.
24/7 Support
Sales gifts are helpful tools often used to show appreciation to clients for their purchase.
Gifts & Sales
Our customer care service is offered in the form of 1st or 2nd level support.