IoT Monetization: Sending data over LTE and selling it on a blockchain marketplace
TL;DR Two part article, half how-to guide on how to sell data over a cellular connection, half opinion on IoT data monetization (spoiler: I think it’s a big deal).
Before I dive into this, let me state that the views expressed here are solely my own and not those of any organization that I may be associated with. You’ll find my full disclosure at the bottom of the post.
I’ve been working in the tech industry for the duration of my career, entirely in a finance function. Over the past couple of years, I’ve made it a goal to get hands on experience with hardware, programming, and with the general technology that is having a profound impact on society. This is intended to partly be a how-to guide for a specific task, and partly my opinion on the monetization of data, specifically data generated by IoT devices.
Part 1: How to send IoT data over LTE and sell it on a blockchain marketplace
What you’ll need:
1. Streamr account: Streamr is a blockchain data marketplace.
2. Raspberry Pi: A tiny computer for programming practice and personal projects. This is the kit I bought.
3. RuuviTag: A small IoT sensor which broadcasts sensory data over Bluetooth Low Energy (BLE). RuuviTags can be purchased here.
4. Hologram Nova: A USB dongle that provides global cellular connectivity over Cat-M1 & NB-IoT. You can get one here.
There are plenty of resources on setting up a Raspberry Pi, so I’m not going to get into any of that here. The Streamr-Ruuvi code can be found on GitHub. I followed Medium user Downgii’s post, which has a beginner friendly guide on setting everything up. Downgii’s guide is virtually flawless. The only minor snag I ran into was selecting a proper version of the Node.js install. I didn’t document this, but I solved it relatively quickly (if I can do it, anyone should be able to).
Once you’re up and running, you can stream and sell your data using the Streamr marketplace. However, at this point, you’re running on the Raspberry Pi’s WiFi, which places limitations on what you can stream due to the fact that you need a WiFi connection nearby.
This is where the Hologram Nova comes in. The USB dongle connects you to the internet via a cellular connection, either Cat-M1 or NB-IoT. The Hologram team has a useful guide on how to add cellular connectivity to a Raspberry Pi.
Before installing the Hologram SDK, you will need to ensure the following:
- Python 2.7 is installed
- PPP is installed
- PySerial is installed- I had to uninstall PySerial and reinstall the entire SDK
Once you install their SDK on your Raspberry Pi, you can then connect and disconnect to a cellular network directly in the command line.
A final note: make sure that your Hologram Nova is activated and has signal. I spent an unnecessary couple of hours trying to troubleshoot my Raspberry Pi, not realizing that the second LED on the Nova wasn’t even lit (indicating that I didn’t yet have signal).
To get online with the Hologram Nova, run the following code in the command line:
sudo hologram network connect
Now, using cellular data isn’t free. The example.js file from the Ruuvi-Streamr install assumes that you’re running this over WiFi, and therefore have unlimited data to support a continuous stream. Making this solution more realistic requires a few changes to the code that runs the Ruuvi-Streamr process. At the bottom of the example.js file, I added the following code:
Essentially, this code just terminates the process entirely after a set number of seconds (in this case 30). This isn’t a scientific methodology. I simply selected a time-frame that would allow my Raspberry Pi enough time to find the RuuviTag and send out a few updates to Streamr.
Starting the code up again on its own was tricky (for someone who isn’t a coder). I played around with Python loops, using the NakedLibrary add-in, which allowed me to run the Node.js file. Unfortunately, I didn’t have any luck. It’d be obvious for those that are more code savvy to use Cron, which is what I stumbled upon after doing some research.
I set a Cron job to run every 15 minutes using the code below. Cron details can be found here.
*/15 * * * * /raspberrypi/path/to/streamr-ruuvi-library/example.js
Now, with the code at the end of the example.js file terminating the process after 30 seconds, and Cron running the file every 15 minutes, you get a system which periodically streams data, but does so without making you pay (a lot) for it.
Selling the data on the Streamr marketplace is simple, and again outlined in Medium user Downgii’s post. I’m based in Denver, and you’ll find my sensor’s data for sale on the Streamr marketplace. Now to be clear, I’m not running it over a cellular connection any longer (though the RuuviTag is still outside). Even with Cron running the code every 15 minutes, it’s not economical to pay to stream data from a singular sensor which has little value. The point was to show that it can be done relatively easily. In an enterprise environment, sensor data would be aggregated from hundreds or thousands of nodes, pooled, and sent over a connection. In that case, it may be economical to pay for cellular access options, including Cat-M1 or NB-IoT.
Overall, I accomplished my main goal, which was to learn a bit more about the code and the hardware for this simple setup. If you have feedback about what I did or have suggestions for related projects, please leave me a comment below or reach out to me on Twitter.
Part 2: My take on the monetization of IoT data
There was an article circulating around Twitter about how the IoT monetization market was going to reach over $500 billion in the next few years. I didn’t read the full report, but I’ll say that I largely agree with the premise; IoT data is important today and will be a huge monetary opportunity down the road.
EY published an article in April titled “Every business must monetize its IoT data to survive”. Though the headline is a bit dramatic, I’d agree that it would be wise for any company with IoT as a core component of their business to look at the data being generated by their sensors, and see what can be done to monetize or commercialize that data. Monetization doesn’t always mean selling data directly, which is what I did above using the Streamr marketplace.
There could be other insights garnered from the data, which when combined with the right organizational capabilities, could be worth more than the data itself. That’s essentially what AIG did by utilizing IBM’s cloud technology to analyze sensor data from drivers. AIG used the data to give drivers a safety score, and then gamified the whole thing by offering a prize to the safest driver. The result was a 23% reduction in claims. This is a clear illustration of my point above; AIG used the IoT sensor data in a way which was more valuable than putting driver sensory data directly onto a data marketplace.
We’re at a point in time where there are a lot of steroids (stealing an expression from Thomas L. Friedman’s “The World is Flat”) amplifying the proliferation of IoT data. All sorts of businesses and government entities (smart cities anyone?) are deploying IoT solutions. Technology is improving dramatically, allowing for more data to be accessed more quickly (shout out to my employer for accelerating this trend with 5G). Consumers are getting increasingly comfortable bringing more devices into their homes. We are therefore seeing hardware and software manufacturers responding to this. Currently, the data is monetized by those entities, usually in the form of ad delivery (at least in the case of consumer IoT). As time goes by, we’re going to start seeing different business models when it comes to collected and live data.
Streamr, IOTA, Terbine, and various others have created the first manifestation of this trend; data marketplaces. Selling something is the easiest business model to understand, and that’s essentially what’s happening here. Organizations are facilitating a simple business model (I sell, you buy) for a complex product (IoT data). To be clear, I’m not saying that what Streamr, IOTA, Terbine, or others are doing is simple. I’m saying that the business model they enable (direct sale) is simple, and that’s a good thing for user adoption and innovation.
All-in-all, the trends are clear; devices are proliferating, data output is increasing, new business models are emerging. It’s hard to say where this all goes, but what better time to learn and tinker with the solutions?
Disclosure: I was not paid directly or indirectly via promotional material to write anything in this post. None of the links in this article are affiliate links. I own various cryptocurrencies and blockchain tokens, including some mentioned in this article. My employer sells IoT solutions.