We may earn an affiliate commission when you visit our partners.
Course image
Viacheslav Kulakov

In this course, I will look at the main points that allow your devices to exchange messages with each other over the MQTT protocol.

Read more

In this course, I will look at the main points that allow your devices to exchange messages with each other over the MQTT protocol.

First, I will tell you about the MQTT protocol itself and the basic principles of its operation, I will explain what MQTT broker is. Then we will download and install the most popular MQTT mosquito broker for Windows and learn how to configure it. First we will do it on your machine, and then through the local network. Next, we will write a program for ESP32 that allows you to communicate with mosquitto broker, connect it via WiFi and test how the program works with mosquito broker. After that, we will install the mosquitto under linux on Raspberry Pi and connect ESP32 to it. We will also write a client that works through mosquito API, which you can embed into your programs.

And then we will learn how to work with the most popular cloud service for the Internet of Things Amazon Web Services IoT core. You will learn how to connect your devices to it and create a certificate and a policy for them. Next, we will modify our program for ESP32 so that it can work with the Amazon Web Services IoT Core. Then I'll show you how you can use one certificate and policy for multiple devices.

Enroll now

What's inside

Learning objectives

  • You will learn what mqtt is and how it works.
  • You will be able to install and configure the mosquito mqtt broker on windows pc and raspberry pi.
  • We will write a program for esp32 that works with mosquito broker.
  • You will learn how to work with amazon web services iot core, most popular mqtt cloud service.
  • We will modify the previously written program for esp32 so that your devices can work with aws iot core.
  • We will write the pub/sub client for windows and raspberry pi
  • You will learn how to generate your tls certificate and use it in your programs

Syllabus

Введение
Introduction to MQTT
Students will be able to perform the installation of mosquitto broker and connect ESP32 with it.
Installation and testing of mosquitto broker on Windows
Read more

In this lecture, I will show how to generate TLS certificate and keys. Then we will test the mosquitto broker with them.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers MQTT, a lightweight messaging protocol, which is widely used in IoT devices for efficient communication
Explores Amazon Web Services IoT Core, a popular cloud service, which allows learners to connect devices to the cloud
Teaches how to program ESP32, a low-cost microcontroller, which is commonly used in IoT projects and embedded systems
Details the installation and configuration of Mosquitto broker on both Windows and Raspberry Pi, which are common platforms
Requires learners to generate TLS certificates and keys, which may require additional effort and technical understanding
Involves writing pub/sub clients for Windows and Raspberry Pi, which develops skills in application development and API usage

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical mqtt and aws iot core

According to learners, this course provides a positive introduction to the MQTT protocol and its practical application in IoT projects. Students particularly appreciate the hands-on approach, including setting up the Mosquitto broker on Windows and Raspberry Pi and integrating ESP32 devices. Many found the sections on connecting to AWS IoT Core to be very useful for learning how to use a major cloud service. However, some students note that parts, particularly the AWS section, feel outdated due to console interface changes since the course was published, which can make following the demos challenging. Despite minor setup difficulties reported by a few, the course is generally seen as a solid foundation for implementing MQTT in practice.
Provides a solid starting point.
"This course provides a <span class="positive">solid foundation in MQTT, explaining the basic principles clearly before diving into practical examples."
"If you are new to MQTT and want to learn how to implement it with common hardware like ESP32 and Raspberry Pi, this is a great starting point."
"It gave me a good overview of MQTT and the necessary steps to set up a basic IoT communication system."
"The introductory lectures on the MQTT protocol itself were concise and easy to grasp."
Focuses on implementation and code.
"The hands-on labs and code examples provided for ESP32 and Mosquitto are excellent and easy to follow. This really helped solidify my understanding."
"I found the practical demonstrations of setting up the Mosquitto broker on both Windows and Raspberry Pi extremely helpful for getting started quickly."
"Writing the ESP32 program and connecting it to the broker was the most valuable part for me. It gave me confidence to start my own projects."
"Being able to directly apply the concepts through coding exercises makes the learning process much more effective."
Some setup steps are confusing.
"I encountered some <span class="warning">difficulty during the setup phases, particularly with toolchain installation or broker configuration on my specific machine."
"Getting the ESP32 development environment set up and working with the code required some <span class="warning">troubleshooting beyond the course material."
"While the instructions are mostly clear, minor differences in operating system versions or hardware can lead to unexpected setup problems."
"Some parts of the installation process felt a bit rushed or lacked sufficient detail for beginners facing issues."
AWS section needs significant updates.
"The AWS IoT Core section is useful for understanding the concepts, but the console UI has changed significantly, making it <span class="negative">difficult to follow the exact steps shown in the videos."
"I had to spend extra time figuring out the new AWS interface because the videos didn't match the current version. An update here would be great."
"While the core principles of connecting to AWS are covered, the practical demo part felt <span class="warning">slightly frustrating due to the outdated interface shown."
"The information about AWS IoT Core is theoretically sound, but the practical walkthroughs could be more current."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in IoT in practice: MQTT with these activities:
Review Networking Fundamentals
Reviewing networking fundamentals will provide a solid foundation for understanding how MQTT works over TCP/IP networks.
Browse courses on TCP/IP
Show steps
  • Study the OSI model and TCP/IP stack.
  • Review common networking protocols like TCP, UDP, and IP.
  • Understand IP addressing and subnetting.
Review 'Building Wireless Sensor Networks'
Reading this book will provide a broader understanding of the IoT landscape and how MQTT fits into it.
Show steps
  • Read the chapters on network topologies and communication protocols.
  • Focus on the sections related to low-power wireless communication.
MQTT Command Line Practice
Practicing with MQTT command-line tools will improve your ability to quickly test and debug MQTT deployments.
Show steps
  • Install MQTT command-line clients (e.g., mosquitto_pub, mosquitto_sub).
  • Practice publishing and subscribing to different topics.
  • Experiment with different QoS levels and message payloads.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Review 'Practical Internet of Things Security'
Reading this book will provide a comprehensive understanding of IoT security and how to apply it to MQTT deployments.
Show steps
  • Read the chapters on authentication and authorization.
  • Focus on the sections related to encryption and vulnerability management.
Build a Simple MQTT-Based Sensor Network
Building a sensor network will allow you to apply your knowledge of MQTT and gain hands-on experience with IoT devices.
Show steps
  • Set up an MQTT broker on a Raspberry Pi.
  • Connect multiple ESP32 devices to the broker.
  • Publish sensor data from the ESP32 devices to the broker.
  • Create a dashboard to visualize the sensor data.
Write a Blog Post on MQTT Security Best Practices
Writing a blog post will help you solidify your understanding of MQTT security and share your knowledge with others.
Show steps
  • Research common MQTT security vulnerabilities.
  • Identify best practices for securing MQTT deployments.
  • Write a clear and concise blog post explaining these best practices.
Contribute to an Open-Source MQTT Library
Contributing to an open-source project will provide valuable experience with real-world MQTT implementations and collaborative development.
Show steps
  • Find an open-source MQTT library on GitHub or GitLab.
  • Identify a bug or feature request to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete IoT in practice: MQTT will develop knowledge and skills that may be useful to these careers:
IoT Developer
An IoT Developer builds software for devices connected to the Internet of Things. This course provides hands on skills for an IoT developer. The focus on MQTT helps an IoT developer understand how devices communicate. The course's coverage of writing programs for ESP32 and connecting them to MQTT brokers, as well as Amazon Web Services IoT Core, is very relevant to an IoT developer. The practical skills taught here build a strong foundation in this field. Any aspiring IoT developer should take this course.
IoT Solutions Architect
IoT Solutions Architects design the infrastructure that supports the Internet of Things, including the communication protocols and cloud integration. This course fits the skill set of an architect, especially with its detailed exploration of the MQTT protocol, which is critical for IoT deployments. The hands-on experience configuring MQTT brokers, developing clients, and connecting devices to Amazon Web Services IoT Core directly mirrors the tasks a solutions architect would oversee. A solutions architect would be expected to develop certificates, policies and handle configurations. The skills taught in this course are vital to this role. Anyone who wants to become an IoT solutions architect should consider taking this course.
Embedded Systems Engineer
An Embedded Systems Engineer develops and maintains the software within devices. This role requires a deep understanding of how devices communicate, especially in the context of the Internet of Things. This course, with its focus on the MQTT protocol, is directly relevant to developing communication capabilities for embedded systems. The practical experience with ESP32 microcontrollers and the creation of pub/sub clients will be immensely helpful. It further helps build a foundation for connecting devices to cloud services like Amazon Web Services IoT Core. The ability to configure brokers such as mosquitto is also essential to an embedded system engineer. Those seeking to become an embedded systems engineer should enroll in this course.
Systems Integrator
A Systems Integrator brings together different components to create a functional system. This course directly focuses on integrating devices using MQTT, which relates to systems integration. The course's content regarding MQTT brokers, the ESP32, and AWS IoT Core provides very practical knowledge for an integrator. Those working in systems integration may find that this course is useful.
Network Engineer
Network Engineers design and maintain the networks that allow devices to communicate. This course provides a deep knowledge of MQTT, a protocol often used in these networks. The course's focus on setting up an MQTT broker and connecting devices will help a network engineer build a strong base. The material within this course directly translates to configuration of network devices and their communication. A network engineer will need to be able to handle certificates, which this course also covers. This is a very useful course for anyone who wants to be a network engineer.
Cloud Engineer
Cloud Engineers build and maintain the infrastructure in the cloud, including the platforms for IoT. This course may be helpful to a Cloud Engineer because of its coverage of Amazon Web Services IoT Core. The course gives the necessary background for connecting devices to the cloud. The course's hands-on exercises in using cloud based MQTT brokers and generating certificates are of direct relevance to the role of a cloud engineer. Anyone who seeks to become a Cloud Engineer may find this course helpful.
Automation Engineer
An Automation Engineer designs and implements automated systems, often involving networked devices. This course provides specific knowledge of the MQTT protocol, which is often used in automation setups for efficient communication. The focus on configuring MQTT brokers and programs for devices provides practical skills relevant to to an automation engineer. The course provides an understanding of connecting networks and cloud services. An automation engineer should be familiar with processes such as those covered in this course. Anyone who wants to be an automation engineer may find this course to be helpful.
DevOps Engineer
A DevOps Engineer is responsible for the infrastructure, as well as the automation of software releases, deployment, and maintenance. This course's hands-on work with configuring MQTT brokers on both Windows and Raspberry Pi, as well as the deployment of services using AWS IoT Core, will be useful for a DevOps engineer. The course also talks about certificates and secure connections which a DevOps engineer may encounter. Anyone who wants to be a DevOps engineer may find this course to be helpful.
Technical Support Engineer
A Technical Support Engineer provides support for technical products, often including troubleshooting and configuration. This course covers how to configure and test the mosquitto broker on Windows as well as Raspberry Pi. It also covers how to prepare certificates, which are often the source of confusion during configuration. This course provides useful knowledge for those who want to be a technical support engineer. The knowledge of cloud configurations is an added bonus. Anyone seeking a role as technical support engineer may find this course useful.
Solutions Engineer
A Solutions Engineer works with clients to design and implement solutions, often involving integration of different technologies. This course contains specific knowledge of how devices communicate, and how different clouds can be used. The concepts of MQTT and working with AWS IoT Core gives a solutions engineer an edge. This course will help the engineer to describe the capabilities of IoT devices. Those wanting to be a solutions engineer may find that this course is useful.
Hardware Engineer
A Hardware Engineer designs and develops physical electronic hardware. While this role may not directly interact with software, the knowledge of communication protocols for IoT devices, given by this course, can be useful. Understanding the MQTT protocol, and how it interacts with hardware, helps engineers design better products. The ability to create programs for the ESP32, in this course, also helps provide practical knowledge. A hardware engineer will often be in contact with embedded systems, so this course may be useful.
IT Support Specialist
An IT Support Specialist provides technical assistance to end-users. This role often involves troubleshooting and resolving issues related to computer systems and networks. This course may be useful to an IT support specialist who is working in an environment that uses IoT devices and the MQTT protocol. The course provides information about setting up MQTT broker and testing certificates. This course may provide some value to an IT support specialist.
Research Scientist
A Research Scientist investigates emerging technologies and their applications. This course provides practical experience in setting up IoT communication using a specific protocol. The course's focus on MQTT and how it is used with AWS IoT Core is a very specific use case that may be researched. A research scientist would need to understand, in detail, how IoT devices connect to the internet. The information from this course may be helpful for those in this field.
Technical Project Manager
A Technical Project Manager oversees technical projects and teams. This course on IoT, while not directly related to the role, may be useful for a technical project manager who needs to be familiar with technical details regarding projects related to IoT. The project manager may need to plan integration, and an understanding of network protocols may help. This course may be useful to a technical project manager.
Data Scientist
A Data Scientist analyzes large datasets to extract insights. While this course focuses on IoT communication and setup, it does not cover data analysis. The course does not help build the skills required by a data scientist. Data scientists typically require a master's or PhD degree. For data scientists, this course may not be particularly relevant.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in IoT in practice: MQTT.
Provides a deep dive into the security challenges and solutions for IoT devices and systems. It covers topics such as authentication, authorization, encryption, and vulnerability management. It is particularly useful for understanding the security implications of MQTT and how to mitigate potential risks. This book is commonly used by industry professionals.
Provides a comprehensive overview of wireless sensor networks, which are often used in IoT applications. It covers topics such as network topologies, communication protocols, and hardware platforms. While not directly focused on MQTT, it provides valuable context for understanding the broader IoT ecosystem. This book is useful for additional reading to expand on the course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser