📖 Scenario: You are working with an MQTT messaging system used in smart home devices. MQTT uses topics to organize messages so devices can subscribe to the right information.Topics are like addresses or folders where messages are sent and received. They have a hierarchy separated by slashes, like home/livingroom/temperature.
🎯 Goal: Learn how to create MQTT topics and understand their hierarchy by building topic strings step-by-step.
📋 What You'll Learn
Create a base topic string for a smart home
Add a room name as a subtopic
Add a sensor type as a subtopic
Print the full topic string
💡 Why This Matters
🌍 Real World
MQTT topics organize messages in IoT systems like smart homes, factories, and vehicles.
💼 Career
Understanding MQTT topics is essential for IoT developers and DevOps engineers managing device communication.
Progress0 / 4 steps
1
Create the base topic
Create a variable called base_topic and set it to the string "home".
IOT Protocols
Hint
Think of base_topic as the main folder for all smart home messages.
2
Add the room name
Create a variable called room and set it to the string "livingroom". Then create a variable called topic_with_room that joins base_topic and room with a slash / between them.
IOT Protocols
Hint
Use string concatenation with "/" to build the topic hierarchy.
3
Add the sensor type
Create a variable called sensor and set it to the string "temperature". Then create a variable called full_topic that joins topic_with_room and sensor with a slash / between them.
IOT Protocols
Hint
Keep adding levels to the topic by joining strings with slashes.
4
Print the full topic
Write a print statement to display the value of full_topic.
IOT Protocols
Hint
Use print(full_topic) to show the complete topic string.
Practice
(1/5)
1. What is the main purpose of topics in IoT protocols like MQTT?
easy
A. To encrypt messages for security
B. To store device firmware
C. To organize messages in a clear, folder-like structure
D. To control device power settings
Solution
Step 1: Understand the role of topics
Topics act like folders to organize messages so devices know where to send or receive data.
Step 2: Compare options with topic function
Only organizing messages matches the purpose of topics; encryption and firmware storage are unrelated.
Final Answer:
To organize messages in a clear, folder-like structure -> Option C
Quick Check:
Topics organize messages = B [OK]
Hint: Topics are like folders for messages [OK]
Common Mistakes:
Confusing topics with security features
Thinking topics store device data
Mixing topics with device settings
2. Which of the following is the correct way to write a topic with three levels?
easy
A. home-kitchen-temperature
B. home.kitchen.temperature
C. home\kitchen\temperature
D. home/kitchen/temperature
Solution
Step 1: Recall topic level separator
Topics use slashes (/) to separate levels, like folders in a path.
Step 2: Check each option's separator
Only home/kitchen/temperature uses slashes correctly; others use dots, backslashes, or dashes which are incorrect.
Final Answer:
home/kitchen/temperature -> Option D
Quick Check:
Topic levels separated by '/' = A [OK]
Hint: Use slashes (/) to separate topic levels [OK]
Common Mistakes:
Using dots instead of slashes
Using backslashes which are invalid
Using dashes instead of separators
3. Given the topic building1/floor2/room3/sensor, which part represents the third level?
medium
A. room3
B. floor2
C. building1
D. sensor
Solution
Step 1: Split the topic by slashes
Splitting 'building1/floor2/room3/sensor' by '/' gives ['building1', 'floor2', 'room3', 'sensor'].
Step 2: Identify the third element
The third element (index 2) is 'room3'.
Final Answer:
room3 -> Option A
Quick Check:
Third level = room3 = C [OK]
Hint: Count levels separated by '/' to find position [OK]
Common Mistakes:
Counting from zero incorrectly
Choosing first or second level by mistake
Confusing last level with third
4. Identify the error in this topic string: home//livingroom/temperature
medium
A. Double slash creates an empty level
B. Missing slash between 'home' and 'livingroom'
C. Topic levels must use dots, not slashes
D. Topic cannot contain the word 'temperature'
Solution
Step 1: Analyze the topic string
The string 'home//livingroom/temperature' has two slashes together, meaning an empty level between them.
Step 2: Understand topic level rules
Empty levels are invalid because each level should have a name; double slashes cause this error.
Final Answer:
Double slash creates an empty level -> Option A
Quick Check:
Double slash = empty level error = A [OK]
Hint: Avoid double slashes to prevent empty topic levels [OK]
Common Mistakes:
Ignoring empty levels caused by double slashes
Thinking dots are required separators
Believing certain words are forbidden in topics
5. You want to subscribe to all sensors in any room on floor 1 of building 2 using MQTT topics. Which subscription topic should you use?
hard
A. building2/floor1/*/sensor
B. building2/floor1/+/sensor
C. building2/floor1/room1/sensor
D. building2/floor1/#/sensor
Solution
Step 1: Understand MQTT wildcards
The '+' wildcard matches exactly one level, while '#' matches all remaining levels.
Step 2: Analyze the subscription needs
We want any room on floor1, so '+' replaces the room level. '#' would match too many levels, and '*' is invalid in MQTT.
Final Answer:
building2/floor1/+/sensor -> Option B
Quick Check:
'+' wildcard for one level = D [OK]
Hint: Use '+' for single-level wildcard in MQTT topics [OK]
Common Mistakes:
Using '#' when only one level is needed
Using '*' which is not a valid MQTT wildcard
Specifying exact room instead of wildcard
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.