
Master MQTT basics and the MQTT protocol through practical projects and a structured roadmap, covering prerequisites, learning outcomes, topic filtering, QoS, session persistence, and MQTT v5.
Explore MQTT's origin story, its five core requirements, and the hub-and-spoke publish-subscribe model with a central broker, data-agnostic and lightweight with QoS.
Explore how the MQTT publish-subscribe model enables lightweight messaging for constrained devices, with brokers filtering and delivering messages to all subscribers on each topic.
explains the five mqtt methods—connect, disconnect, publish, subscribe, and unsubscribe—and outlines the mqtt communication and four pub-sub models, plus features like wildcards, qos, persistent sessions, retained messages, and keep alive.
Compare MQTT with HTTP, AMQP, XMPP, and CoAP to explain why MQTT suits IoT with persistent connections, broker-based security, QoS levels, and the publish-subscribe model.
Analyze the mqtt control packet format, including fixed header, remaining length, variable header, and payload, and explain the dup, qos, and retain flags in this binary-based protocol.
Explore mqtt control packets and their functions, including the 14 types from connect and connack to publish, suback, unsubscribe, ping, and disconnect, with packet structure and qos details.
Set up your first mqtt project by configuring the HiveMQ broker, clients (Raspberry Pi 4 and Android device), and a hotspot, then capture and analyze 14 control packets with Wireshark.
Learn working principles of relays and the DHT11 sensor, and interface Raspberry Pi 4 with a 2 channel relay to drive a high powered appliance and read temperature and humidity.
Configure and code MQTT clients on a Raspberry Pi with Python, use the MyMQTT app to publish sensor data and control a relay, and study 14 MQTT control packets.
Learn to set up Wireshark for MQTT analysis, capture and analyze 8 control packets, and tweak the Raspberry Pi client to generate all MQTT packets with broker interactions.
Modify the client code to emit MQTT control packets, analyze QoS1 and QoS2 flows with Paho Python, and explore PUBACK, PUBREC, PUBREL, PUBCOMP, and PING packets using Wireshark.
Set up IBM Cloud MQTT by signing up, navigating IBM Cloud features, and preparing for Cloud MQTT integration with testing and packet capture.
Explore how the IBM IoT Platform service acts as the MQTT broker, configures the cloud broker, and guides device and application code to connect, publish, and receive commands.
Run the mqtt project and publish to the /automation/bulb1 topic, while subscribing to humidity and temperature readings. Use Wireshark to capture and analyze mqtt packets for cloud mqtt implementation.
Analyze IBM Cloud MQTT packets, including connect and connack, header flags, and payloads with client identifiers, then explore publish and subscribe exchanges with temperature and humidity data.
Explore topics in MQTT, topic filtering, and wildcards to manage publish/subscribe messaging. Learn topic hierarchy, UTF-8 naming rules, and how the broker routes messages to matching subscriptions.
Set up an office monitoring system with mqtt, linking three esp32 sensors with dht11 and a raspberry pi 4 to the ibm cloud broker, and learn topics, filtering, and wildcards.
Set up Raspberry Pi 4 client, verify wiotp-sdk for Python 2 and 3, configure app.yaml and client code, and connect the Pi to IBM Cloud IoT to subscribe ESP32 data.
Learn how MQTT wildcards enable subscribing to multiple topics at once, using plus and hash, with dashboards and room-level subscriptions.
Explore mqtt topics, topic filtering, and wildcards with practical implementation and analysis, including plus and hash wildcards, $sys broker topics, and best practices for topic design.
Explore what quality of service means in MQTT, including QoS 0, 1, and 2, their guarantees and use cases, and the publisher–subscriber QoS relationship, with practical packet analysis.
Configure an instant messaging app with mqtt and qos levels 0, 1, and 2, using two Raspberry Pi 4 clients and a broker with topics client and client2.
Learn QoS 0 implementation with packet analysis in MQTT, including code walkthrough, publish/subscribe on topics, and capturing packets with Wireshark to illustrate message loss and weather monitoring use cases.
Implement QoS 1 and QoS 2 in an MQTT instant messaging project, analyze publish and publish acknowledgment packets with Wireshark, and show how QoS 2 eliminates duplicates.
Explain what session persistence is in MQTT, why it’s needed, how it works, including broker and client-side persistence, clean session flag, session present flag, and undelivered QoS handling on reconnect.
Explore MQTT session persistence, including QoS levels, retained messages, and the difference between persistent and clean sessions, with practical broker queue use cases.
Enable session persistence in project 3 part 1 by configuring mqtt clients with cleanStart false in app.yaml and analyzing broker message storage and packet captures.
Explore persistent MQTT sessions through a two-client scenario, analyzing clean session flags and QoS effects on undelivered messages. Observe packets with Wireshark and compare QoS levels 0, 1, and 2.
Explore how retained messages in MQTT preserve the last known value for a topic, why they’re needed, how they work, and how to disable them.
Explains GPS asset tracking with mqtt retained messages and project 4 setup, detailing hardware with an esp32, neo-6m GPS module, and a raspberry pi 4 client on IBM IoT broker.
Publish GPS coordinates from ESP32 and Raspberry Pi 4 clients to the IBM IoT Platform using MQTT, with JSON payloads and retained messages via last event cache.
Learn gps asset tracking using mqtt project 4 by implementing retained messages, analyzing their use cases, and inspecting json gps payloads printed on raspberry pi, with ibm cloud iot integration.
Explore how MQTT's last will and testament (LWT) handles ungraceful disconnects by triggering a broker publishing a predefined message to a topic via the connect packet.
Implement mqtt lwt in project 2 by configuring lwt topics and messages with qos and retained options on esp32s and a raspberry pi 4 dashboard via the broker.
Prepare three ESP32s with correct credentials and lwt messages, implement project 2 with packet capture via Wireshark, and study lwt behavior and wildcards on the IBM IoT platform.
Analyze lwt packets in mqtt project 2 with wireshark, identifying will topic and will message for three esp32s and ibm broker, and how lwt is stored and forwarded during disconnect.
Understand keep alive in mqtt: the client sets a keep alive interval, uses a 16-bit timer, sends pings to confirm broker is connected, and leverages broker takeover for half-open connections.
Explore keep-alive in MQTT via project 4 setup for ESP32 and Raspberry Pi 4, with modified client code and keep-alive times of 60 seconds and 15 seconds, plus packet suppression.
Compare normal and modified keep-alive in MQTT using project 4, and capture packets with Wireshark on Raspberry Pi and ESP32 to observe pings and coordinates to the IBM cloud broker.
Analyze keep-alive behavior in mqtt through project 4 packet analysis, comparing normal and suppressed packet implementations using Wireshark captures, Raspberry Pi and ESP32 clients, gps topic subscriptions, and ping exchanges.
explain why security is critical for mqtt and outline security approaches, including authentication, authorization with tls/ssl, and payload encryption, backed by the three information security pillars: confidentiality, integrity, and availability.
Explore what authentication is and why it's important, configure usernames and passwords for clients, and analyze authentication implementation and packet analysis in project 4, highlighting plain-text risks and SSL encryption.
Explore TLS/SSL concepts, implement authorization with TLS/SSL in Project 4, configure secure MQTT communication, and analyze encrypted packets to evaluate overhead and security implications.
Explore why MQTT payload encryption is needed and how integrity checks guard decrypted data, using asymmetric or symmetric schemes and end-to-end or client-to-broker approaches.
Combine authentication, TLS, and payload encryption to secure MQTT communications across ESP32 and Pi 4 clients, implementing symmetric encryption and encrypted latitude and longitude payloads.
JUNE 2022 Update:
IBM Cloud GUI Change Update
Bill of Materials Link Updated
Hello learners, Welcome to MAKERDEMY's "MQTT Masterclass" course. This is an advanced level course on the Most Popular IoT Protocol called MQTT.
If you are a developer or an engineer who wants to get an in-depth knowledge of all the concepts of the MQTT Protocol or if you want to unlock the full potential of your existing MQTT system, this course is right for you. To get the maximum value out of this course, you should have a functional knowledge of electronics and should have good experience with Raspberry Pi, ESP32, Python, and Linux.
This course will teach you in-depth all the concepts of MQTT like Topic Filtering, Wildcards, Quality of Service, Session Persistence, Last Will and Testament, Retained messages, Keep Alive, and Security Implementation, by implementing handpicked projects using the Raspberry Pi 4, ESP32, and IBM Cloud IoT Platform. We will also cover in-depth the features of MQTT V5. By the end of the course, you will intuitively understand what features of MQTT will allow you to reach your goals in your existing MQTT system or the one you are currently building. Also, if you completely finish the course, you will win bonus content covering MQTT over Websockets and MQTT-SN.
Throughout the course, we have provided a curated collection of original resources. These resources include links to documents for in-depth learning, blog links, videos, and more. Furthermore, our Instructor team has an excellent track record of answering your queries and clearing your doubts. Thus, they will be ready to answer any of your course-related questions.
So, what are you waiting for?! Come, join me in this course. I'm looking forward to being your instructor and make you a Master of the MQTT Protocol.