Skip to main content

Setup Mosquitto MQTT broker in Windows

MQTT (Message Queueing Telemetry Transport) is a Client Server messaging transport protocol. It provides a lightweight method of carrying messages using a publish/subscribe model. The pub/sub model being lighweight makes it suitable for IOT messaging with low power devices, sensors, phones or microcontrollers.

How MQTT works?

MQTT follows publish/subscribe model which is alternative to server-client model where client communicates directly with server. The pub/sub model defines the client which send a message(publisher) to another client which received that message(subscriber). The subscriber and publisher are unaware of the presence of each other. The main part, which we call the Broker, which our both publisher and subscriber are aware of, filters all the coming messages and distributes them respectively.

Now we know what is MQTT and how it works. Let's dive in to set this up on Windows 7/8/10.

Mosquitto:

This is an open source message broker used for handling lightweight data transfer protocol. Mosquitto implements the MQTT protocol versions 3.1 and 3.1.1.

Setup on Windows:

Step 1: Select mosquitto-1.4.11-win32.exe from https://mosquitto.org/download for Windows.


Step 2: Now, click the download button on the eclipse download page or select any other mirror of your choice.

Step 3: Save and run the downloaded exe file and Click Next to Continue the installation.

Step 4: Installer now asks you to download two DLLs which are must to get your Mosquitto broker running.


Step 5: Click on the first link to download the Win32 Open SSL Light library. For me, Win32 OpenSSL v1.0.2k Light worked, the updated version threw an error during installation, so make sure which version works well on your system.


Step 6: Now download the pthreadvc2.dll from the installation instruction.

Step 7: Save and run the downloaded Win32 OpenSSL Light file. When installing it will ask you to save the libraries into System library or the bin directory. For simplicity, you can choose System directory and there is no need to copy the libraries to your Mosquitto installation. However, if you select /bin directory then you will need to copy the libraries into your Mosquitto installation folder.


Step 8: We need to copy DLLs to Mosquitto installation directory, for me it's C:/Program Files(x86)/mosquitto.

DLLs needed from OpenSSL-Win32: libeay32.dll, ssleay32.dll
Second DLL downloaded: pthreadVC2.dll
Note: Make sure that these DLLs are either on system path or in Mosquitto installation directory.
Step 9: Now continue the Mosquitto installation and change the installation directory to C:/Program Files(x86)/mosquitto where we have copied the downloaded DLLs.


Step 10: In the next step we are continuing our Mosquitto installation, now installer asks you to install Service, check this and click Next.


Step 10: Now, the installer looks for the installation path, let it remain the same, or change it as per your requirement. Click Next and installation will Finish.

Step 11: If the installation fails, try fresh install. Sometimes the Windows services are not configured automatically, so a fresh install will work.

Now the installation is complete, time to test.
Open CMD and execute the following command:
netstat -an



When TCP 0.0.0.0:1883 LISTENING appears we are good to move ahead to test Mosquitto broker.

Test Mosquitto broker:

Now we will run CMD and navigate to our installation directory C:/Program Files(x86)/mosquitto.

First of all, type mosquitto to start the broker manually.

Write mosquitto -h to open the help list so to start the mosquitto broker in Verbose mode type mosquitto -v and hit enter. Once the broker is started, it's time to create publisher and subscriber.

Open two CMD windows, one is publisher and the other is subscriber.

In first window type:
mosquitto_sub -v -t 'knowshipp/topic' to subscribe the topic 'knowshipp/topic'.


In the second window:
mosquitto_pub -t 'knowshipp/topic' -m 'helloSailor to publish the message on topic 'knowshipp/topic'.


Now look into your subscriber, a message has been received on the subscriber topic.


To subscribe/publish messages using different broker over internet i.e. test.mosquitto.org, use the below commands:
Subscriber window: mosquitto_sub -h test.mosquitto.org -t topic
Publisher Window: mosquitto_pub -h test.mosquitto.org -t topic -m "Hello, Sailor!"

Conclusion:

In conclusion, we are now able to subscribe/publish MQTT messages using Mosquitto broker on local/internet environment.

That's it for today. Happy IoTing.

Comments

Popular posts from this blog

Build a facebook chatbot with API.AI (zero coding)

Hello Sailors, chatbot has been the buzz-word these days, many businesses are looking to implement chatbots to their sites or facebook pages to convert traffic into customers. Today in this tutorial, we are going to create a simple conversational facebook chatbot which can send you jokes, images and also it can do a small talk.

Messenger bots simply blend artificial intelligence with human interaction. User asks a question and chatbot gives relevant answer to serve the purpose.
What do we need to build our facebook chatbot?API.AI account - A natural language understanding platform to design and integrate intelligent sophisticated conversational user interfaces.Facebook for developers account - To create a facebook app.Facebook page - Chatbot feature is only available to pages, not personal accounts. What we are going to do We are going to subscribe our API.AI agent to read all messages we receive on our Facebook page and in turn our agent processes the message and responds the way we …

Home made temperature and humidity meter

Hello Shippers! Once again, it's time to create something awesome. How about a temperature and humidity sensor controlled with NodeMCU or ESP8266 which sends the temperature of your room and our very special Blynk app shows the data with values and graphs. That sounds cool!

Let's sail.
Overview: The NodeMCU collects the temperature and humidity from DHT11 sensor and sends it to Blynk app every second. Wow!
Things we need:Hardware:NodeMCUDHT11/DHT22 sensorJumper Wires4K7 resistor3V3 power sourceSoftware:Arduino IDEBlynk app Now that we have gathered all the stuff we need. Let's connect them.
Temperature and humidity sensor circuit:
Connections:D4 pin of NodeMCU connects to pin 2 of DHT11.3V3 pin of NodeMCU connects to pin 1 of DHT11 & GND of NodeMCU to pin 4 of DHT11.4K7 ohm resistor connected between pin 1 and pin 2 of DHT11 sensor.Connect power(3.3V) to NodeMCU to make it work without USB cable. Before we dive into the code, let's setup the Blynk app to receive the da…

Time scheduled electric switch controlled with Blynk app

Most of the times when we go out of home for some days, we think of having some device that could switch ON/OFF (let's say) Refrigerator (or any other important appliance)for some hours during the day. Today, we are going to make such time scheduled electric switch which switches ON/OFF at times which we set the in our Blynk app. Woah!

Let's begin!
Things we need:
Hardware:5V relayNodeMCUJumper wiresBreadboard3V3 and 5V power sourceElectrical WiresSoftware:Arduino IDEBLYNK app It's circuit is same as we have created for our Smart Switch. So, if you already have that circuit set up, go ahead with Blynk app set up and Start playing.
Circuit:
Connections:D5 pin of NodeMCU connects to IN1 pin of 5V relay.3V3 of NodeMCU connects to 3V3 powers source and GND to GND.Vcc of relay connects to 5V source and GND to GND.Live wire is connected directly to appliance.Neutral wire from source comes to relay NC pin and another wire goes out from COM pin which is connected to the appliance.Let…