Book Image

MQTT Essentials - A Lightweight IoT Protocol

By : Gaston C. Hillar
5 (1)
Book Image

MQTT Essentials - A Lightweight IoT Protocol

5 (1)
By: Gaston C. Hillar

Overview of this book

This step-by-step guide will help you gain a deep understanding of the lightweight MQTT protocol. We’ll begin with the specific vocabulary of MQTT and its working modes, followed by installing a Mosquitto MQTT broker. Then, you will use best practices to secure the MQTT Mosquitto broker to ensure that only authorized clients are able to publish and receive messages. Once you have secured the broker with the appropriate configuration, you will develop a solution that controls a drone with Python. Further on, you will use Python on a Raspberry Pi 3 board to process commands and Python on Intel Boards (Joule, Edison and Galileo). You will then connect to the MQTT broker, subscribe to topics, send messages, and receive messages in Python. You will also develop a solution that interacts with sensors in Java by working with MQTT messages. Moving forward, you will work with an asynchronous API with callbacks to make the sensors interact with MQTT messages. Following the same process, you will develop an iOS app with Swift 3, build a website that uses WebSockets to connect to the MQTT broker, and control home automation devices with HTML5, JavaScript code, Node.js and MQTT messages
Table of Contents (16 chapters)
MQTT Essentials - A Lightweight IoT Protocol
About the Author
About the Reviewer
Customer Feedback

Installing a Mosquitto broker on macOS

Follow these steps to install a Mosquitto broker on macOS (known as OS X before version Sierra):

  1. In case you don't have Homebrew installed, open a Terminal window and run the command indicated in the Homebrew homepage, , to install this popular package manager for macOS. The following command will do the job. However, it is convenient to check the Homebrew homepage and check all the detailed instructions that are always updated with the newest versions of macOS that become available. In case you already have Homebrew installed, move to the next step.

    /usr/bin/ruby -e "$(curl -fsSL
  2. Open a Terminal window and run the following command to request Homebrew to install Mosquitto:

          brew install mosquitto
  3. The following lines show the last messages shown in the Terminal that indicate that Homebrew has installed Mosquitto and the instructions to start the MQTT server.

          ==> Installing mosquitto 
          ==> Downloading      1.4.10.el_capitan.bottle.tar.gz
          ###################################################### 100.0%
          ==> Pouring mosquitto-1.4.10.el_capitan.bottle.tar.gz
          ==> Caveats
          mosquitto has been installed with a default configuration file.
          You can make changes to the configuration by editing:
          To have launchd start mosquitto now and restart at login:
            brew services start mosquitto
          Or, if you don't want/need a background service you can just run:
            mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf
          ==> Summary
            /usr/local/Cellar/mosquitto/1.4.10: 32 files, 618.3K
  4. After the Mosquitto installation has been completed, run the following command in a new Terminal window to launch Mosquitto with the default configuration file. The -c option followed by /usr/local/etc/mosquitto/mosquitto.conf specifies that we want to use this configuration file.

          /usr/local/sbin/mosquitto -c /usr/local/etc/mosquitto/mosquitto.conf

    The following is the output after you run the previous command:

          Gastons-MacBook-Pro:~ gaston$ /usr/local/sbin/mosquitto -c       /usr/local/etc/mosquitto/mosquitto.conf
          1482518967: mosquitto version 1.4.10       (build date 2016-08-31 20:09:41+0100) starting
          1482518967: Config loaded from       /usr/local/etc/mosquitto/mosquitto.conf.
          1482518967: Opening ipv4 listen socket on port 1883.
          1482518967: Opening ipv6 listen socket on port 1883.

    The last lines indicate the Mosquitto MQTT server has opened an IPv4 and an IPv6 listen socket on port 1883. Leave the Terminal window opened because we need Mosquitto running on the local computer to work with the next examples.