Exporting Data from the R700

Introduction

The R700 offers several options for data egress. These options don't require any special programming; they're integrated directly into the web UI. This makes it really easy and cost effective to get started with this reader. In this article, we'll be exploring MQTT, Webhook, and HTTP streaming. The R700 also offers Kafka. For more information about Kafka, see https://kafka.apache.org/

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

Plug the reader into the network 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:

If your web UI does not look similar to this, then your reader is on the 7.6 or earlier firmware. Please follow the instructions for upgrading firmware for the Revolution series, using the 8.0+ .upg file from us.

First, let's upgrade the firmware. To get the latest version, just send us a request via email at support@atlasRFIDstore.com. Once you've downloaded it, extract the zip file. Then simply drag the .upg file onto the top right section of the web UI. If your web UI does not look similar to this, then your reader is on the 7.6 or earlier firmware. Please follow the instructions for upgrading firmware for the Speedway series, using the 8.0+ .upg file from us.

Second, let's confirm that it's in IoT mode. If we look at the top left section, it should say "Reader Interface: Impinj IoT Device Interface." This is the default interface for the R700 series as of firmware 8.0. If yours says Impinj LLRP Interface, please click the blue button to the right to "Change Interface." A pop-up will appear explaining the benefits of each mode. Click the blue button here to "Switch to Impinj IoT Device Interface."

Connection Options

Now that our reader is updated and using the IoT device interface, let's move on to connection options. Look at the very top right of the web UI, above the menu bar.

MQTT

This method of sending data from one machine to another is very popular in the IoT world and can be set up using a public MQTT broker, as shown below. For more information about MQTT, please see https://www.hivemq.com/ If you want to use Hive MQ to follow along, please visit http://www.hivemq.com/demos/websocket-client/

Above the menu bar, go to MQTT > Configure MQTT. You can also use (menu bar) Event Reporting > MQTT. Check the box for Enable MQTT.

Clean Client Session on Disconnect - If this box is not checked, the broker will store some subscription information and some undelivered messages for the client. For more information on this option, please visit http://www.steves-internet-guide.com/mqtt-clean-sessions-example/

Client ID - A string used to uniquely identify this device to the MQTT broker. Used for session management, it allows clients to be durable across several disconnects and reconnects. If you leave this blank, it will be filled in for you automatically.

Broker Hostname - In our example, this is broker.hivemq.com. This will vary based on what broker you use.

Broker Port - If you leave this blank, it will default to 1883. This is the number to use in most cases.

Event Topic - This is a customizable, required field. In our example, we are using r510/atlas/test. This field needs to match 

Event Quality of Service (QoS) - How many times the message should be delivered. 0 = At most once, 1 = At least once, 2 = exactly once. For more information about this parameter, please see https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels/

Now let's take a look at the corresponding page on our example broker's site, HiveMQ. 

Host - The broker generates this for us automatically.

Port - 8000 is the correct number here.

ClientID - This field is automatically generated by the broker. It should NOT match the client ID for the reader; they should be unique.

Username and Password - To use the public broker as we are doing in this example, you can leave these blank.

Keep Alive - This is the maximum amount of time (in seconds) that can elapse between messages for the connection to remain open. For more information about this parameter, please see https://www.hivemq.com/blog/mqtt-essentials-part-10-alive-client-take-over/

For our purposes in this example, the rest of the fields in Connection, Publish, and Messages can be left blank.

Go to Subscriptions > Add a new topic subscription. The QoS and Topic fields need to match those of the reader's MQTT settings.

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.

Webhook

For our example, we'll be using the free Webhook provider Webhook.site. Click +New in the menu bar at the top right. For our purposes, we can leave the resulting popup blank. 

Copy the URL from the Unique URL section on the page, not from the address bar. 

Open up the Webhook section of the Event Reporting tab in your reader's web UI. Check the box for Enable Webhook Output, and paste the URL into the Server URL field. The rest of these fields can be left blank. Click Submit, and go back to webhook.site. It should now look something like this:

HTTP Stream

This option uses the reader configuration REST API. This API has a lot to offer; HTTP Stream is just one example of how it can be used. Please see the Reader Configuration REST API for more information and a list of possible commands.

The limitation of HTTP Stream is that can maintain an active connection with only 5 clients at a time. If a 6th client connects, the oldest open client connection will be closed.

Open the HTTP Stream section of the Event Reporting tab of your reader's web UI. 

By default, these settings are set to 0. They are all optional. If you just click submit without changing them, they will stay 0. Mousing over the circled question mark will explain each setting. Click submit when you are ready.

Return to the Profile Presets page and click the start button on a profile to start an inventory. Now, open a new tab and navigate to https://impinj-xx-xx-xx/api/v1/data/stream, with the x's being the last 6 characters of the reader's MAC address as always. Here, you should see the inventory running. It should look something like this:

If you have any questions about data egress from your R700 reader, please reach out to support@atlasRFIDstore.com.

Disclaimer: This page contains external links leading to other websites. Atlas RFID Store does not vouch for these other websites in any way. Atlas RFID Store does not endorse and is not endorsed by these sites or their companies.