Using MQTT with the Impinj R700 Reader

Note: This article was written for R700 readers on 7.x firmware. If you are using 8.x firmware, please see the article Exporting Data from the R700


Introduction

The Impinj R700 reader allows the user to export RFID tag data via the MQTT communication protocol. This method of sending data from one machine to another is very popular in the IoT world, and can be setup using a public MQTT broker, as shown below.

Getting Started

First, we will need to setup an R700 reader in the IoT Interface mode in order to access the MQTT settings of the reader.

To do this, simply plug in the reader and connect to it following the steps shown in Using the Speedway Revolution Web UI. The only difference here is that the R700 uses the hostname format "http://impinj-xx-xx-xx" instead of "http://speedwayr-xx-xx-xx".

Once the reader is connected, the Web UI should look similar to the image below:

Notice on the right-hand side, the circled parameter named "Available Interfaces". In this dropdown menu, select the Impinj IoT Device Interface option and select "Update".

Now, the Web UI should look like this, with the Preview option shown circled below:

Select that Preview option to open a new window, which will allow for the configuration of the reader's MQTT connection.

Setting up MQTT on the Reader

The new window should show the Profile Presets page in the R700's IoT Web Interface.

To enable MQTT, select the "Configuration" option in the top right of the screen and select the MQTT tab. On this screen, select "Enable MQTT Output" and fill in the rest of the form with your MQTT broker information (more on that below).

Once that is done, select "Submit" to enable MQTT connection on your reader with the requested settings.

Setting Up an Online MQTT Broker using HiveMQ

MQTT operates on two separate levels: that of a message client (our reader) and a message broker (in this case HiveMQ). The broker is in charge of managing all of the incoming messages from the connected clients, and in some cases also managing the outgoing messages to those clients. The broker used for this tutorial can be found here: http://www.hivemq.com/demos/websocket-client/.

The broker does this by monitoring two types of threads, or topics: incoming (subscriptions) and outgoing (publishes). Once the reader is setup to listen or subscribe to a particular topic, all messages sent to that topic will be reported by the broker. Alternatively, once a publish topic has been set for the broker, any client subscribed to that topic can then receive that message from the broker.

In our case, we are telling the reader to send tag data to a topic named "r700/atlas/test/" with a QoS setting of 2. Our broker will need to be subscribed to that topic, with the same QoS setting.

Once that is done, go back to your reader's Profile Preset page and select the "Start" button to begin reading tags.

Now, the MQTT broker should be receiving tag reads sent to the specified topic, and showing that data on the page.

If you have any questions about setting up MQTT on your R700 reader, please reach out to support@atlasRFIDstore.com