The first step ist o get MQTT up and running on a Raspberry Pi to handle the data queues.
I'm just going to hit the basics here, but check out mqtt.org for tons of additional information!
There are three steps to getting MQTT running on your Raspberry Pi:
- Install the software
- Configure the daemon
- Test the configuration
Step 1 - Install the software
The software is available through Raspbian's software distribution system, which makes it easy. First, be sure your system is up to date.
sudo apt-get update sudo apt-get upgrade
Next, install the Mosquitto packages you'll need.
sudo apt-get install mosquitto mosquitto-clients mosquitto-dbg python-mosquitto python3-mosquitto
This will install all the components you will need to use a local instance of MQTT for this project.
Step 2 - Configure the daemon
The MQTT software (Mosquitto) is controlled by a configuration file: /etc/mosquitto/conf.d/mosquitto.conf Please note that I am running this on a closed and encrypted network in my house, which is maintained separately from the kids' and guest networks. It is not appropriate to use this configuration on an MQTT broker that is exposed to the Internet.
Here is my copy of the mosquitto.conf file:
# Config file for mosquitto # # See mosquitto.conf(5) for more information. user mosquitto max_queued_messages 200 message_size_limit 0 allow_zero_length_clientid true allow_duplicate_messages false listener 1883 autosave_interval 900 autosave_on_changes false persistence true persistence_file mosquitto.db allow_anonymous true password_file /etc/mosquitto/passwd
Once you have created the configuration file, you must stop and restart the process (called a daemon) that controls MQTT. You do that with the following two commands:
sudo systemctl stop mosquitto.service sudo systemctl start mosquitto.service
Step 3 - Test the configuration
Now you're ready to test the MQTT system. On the same machine as MQTT/Mosquitto is running, execute this command:
mosquitto_sub -v -t '\$SYS/#'
This should produce a stream of diagnostic data. The contents aren't important (unless you're curious about MQTT's internals), what's important is that they show up. Once you confirm that the daemon is running, use CTRL-C to exit the program. Then we're ready to start building hardware.