Unfortunately, the Raspberry Pi normal “apt-get” archives do not contain the latest version of the Mosquitto software. If you don’t install the latest version of the broker, you will get odd errors (because of version compatibility errors) and it will not work. So, the first thing is to open a terminal window (or log in using ssh) to your Raspberry Pi and do the following:python
sudo wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.key sudo apt-key add mosquitto-repo.gpg.key cd /etc/apt/sources.list.d/ sudo wget http://repo.mosquitto.org/debian/mosquitto-stretch.list sudo apt-get update sudo apt-get install mosquitto
Next we can install the three parts of Mosquitto proper.windows
If you’re going to use MQTT in a Python project, you’ll have to install paho-mqtt, which replaces the old Mosquitto Python module.ssh
sudo apt-get install mosquitto mosquitto-clients sudo apt-get install python-pip sudo pip install paho-mqtt
As is the case with most packages from Debian, the broker is immediately started. Since we have to configure it first, stop it.ui
sudo /etc/init.d/mosquitto stop
Before using Mosquitto, we need to set up the configuration file. The configuration files is located at /etc/mosquitto.this
Open the file as follows:lua
sudo nano /etc/mosquitto/mosquitto.conf
You should see the following:debug
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest file /var/log/mosquitto/mosquitto.log include_dir /etc/mosquitto/conf.d Change the “log_dest” line to: log_dest topic
This puts the logging information as a “topic” so we can subscribe to it later on to see what is going on in our IOTRFID system.code
Next add the next six lines:orm
log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true
Now your /etc/mosquitto.conf files should look like:
# Place your local configuration in /etc/mosquitto/conf.d/ # # A full description of the configuration file is at # /usr/share/doc/mosquitto/examples/mosquitto.conf.example pid_file /var/run/mosquitto.pid persistence true persistence_location /var/lib/mosquitto/ log_dest topic log_type error log_type warning log_type notice log_type information connection_messages true log_timestamp true include_dir /etc/mosquitto/conf.d
Now start the mosquitto server:
sudo /etc/init.d/mosquitto start
Open up two more terminal windows.
In Terminal window 1 type:
mosquitto_sub -d -t hello/world
In Terminal window 2 type:
mosquitto_pub -d -t hello/world -m "Hello from Terminal window 2!"
When you have done the second statement you should see this in the Terminal 1 window.
~ $ sudo mosquitto_sub -d -t hello/world Client mosqsub/3014-LightSwarm sending CONNECT Client mosqsub/3014-LightSwarm received CONNACK Client mosqsub/3014-LightSwarm sending SUBSCRIBE (Mid: 1, Topic: hello/world, QoS: 0) Client mosqsub/3014-LightSwarm received SUBACK Subscribed (mid: 1): 0 Client mosqsub/3014-LightSwarm received PUBLISH (d0, q0, r0, m0, 'hello/world', ... (32 bytes)) Greetings from Terminal window 2
Now you are running the Mosquitto broker successfully.