Building an IoT Heatmapping Device

Heatmap visualization

A heatmap overlaid on satellite imagery is a sophisticated and actionable means of displaying GPS-based data.

Rob Lauer

Director of Developer Relations

Heatmaps allow you to visualize numerical data at a glance by plotting data sets on colored maps. Individual points within a data set are represented by different colors, and color variation is used to easily distinguish the magnitude of numeric values. By plotting relationships between variables, heatmaps reveal patterns in data and offer starting points for deeper analysis. These patterns can give valuable insight into business operations, such as supply chain analytics, resource utilization, wireless network signal coverage, environmental science research, eye tracking for digital assets, and more.

When building proof-of-concept or prototype IoT devices it is important to spend most of your time on features that solve business problems. To that end, Blues Wireless Notecard is the simplest, and most cost-effective way to add connectivity to IoT devices. Simply connect the Notecard to your device’s existing UART or I2C bus, and it will connect your device to the cellular network automatically, ready to transmit and receive data from its associated Notehub account.

You can build a cellular- and GPS-enabled IoT prototype to display location-based data on a heatmap by following this project. You will be able to collect wireless signal strength and location data at defined intervals. Learn how to build this cellular IoT GPS heatmapping device for less than $150, using only 32 lines of code and 6 hardware components.

Heatmapping for IoT Data Visualization

Visually displaying complex data points on heatmaps makes data analysis faster and easier. Heatmapping can be a powerful part of a company’s analytics, helping to uncover operational insights and guide strategy. By examining data patterns, businesses can measure performance in a specific area, unlock data trends, understand their market, and enable data-driven decision-making.

A heatmap overlaid on satellite imagery is a sophisticated and actionable means of displaying GPS-based data. Data is collected, stored in the cloud, and displayed on a web-based heatmap. For this type of project, you’ll use the following components:

  • MCU: Raspberry Pi Pico
  • Wireless connectivity and GPS: Blues Wireless Notecard and Notecarrier
  • Secure data routing: Blues Wireless Notehub.io
  • Cloud functions, storage, and maps: Google Cloud Platform, Google Maps, Firestore
  • Displaying in-action status updates: 1602 LCD module (optional)
steps to displaying data in a web-based heatmap

Behind the GPS and Cell Signal Heatmapping Device

Follow this project to build a device that collects cellular and location data from the Raspberry Pi Pico and Blues Wireless Notecard and maps the data using Python and Google Cloud Platform. With built-in sensors and embedded SIM, the Notecard is the quickest and easiest way to add GPS and cellular connectivity to any device. You can find the complete project assembly instructions on Hackster and the full source code on GitHub.

Hackster: https://www.hackster.io/rob-lauer/cellular-signal-heatmap-with-raspberry-pi-pico-and-gps-1e16df

GitHub: https://github.com/rdlauer/notecard-heatmap

Cost: $137.90

Project Time: 5 hours

Lines of Code: 32

Languages: Python, JavaScript, CSS, HTML

Heatmapping IoT device deployed in a car

Rob Lauer

Hardware

Software apps and online services

The main parts of this project are:

  1. Assemble the hardware for your device.
  2. Configure the device to collect GPS data.
  3. Send results to the cloud.
  4. Create a web app for displaying the heatmap.
Steps to displaying data in a web-based heatmap

Displaying Your Heatmap Using Google Maps

Once your hardware is assembled and you’re successfully set up to collect data and pump it to the cloud, you’ll build a React web app to generate a heatmap of your data using Google Maps. It’s most common to use Create React App for this, which is a simple way to create and run a React project quickly and removes the need for manual configuration. React apps are generally made up of multiple function and class components, and this one has three components:

  1. App.js is our root-level component.
  2. MapContainer.js loads the Google Maps script and provides a host container for Map.js.
  3. Map.js shows our map.

There are several critical aspects of this part of the project to call out:

Firebase

There is some confusion between Firebase and Google Cloud Platform, and yarn add firebase is an example. Both Firebase and GCP offer access to Firestore. The APIs for accessing Firestore are in the Firebase SDK. Here you’ll use the Firebase SDK to access your data from Firestore.

Map Container

The MapContainer.js component is the host of your map and is what loads the Google Maps script. You would assume you can’t use the map until the script is loaded, but the react-google-maps/api library that you’ll add exposes LoadScript, which plays a key part in lazy-loading Map.js.

The Map

Your Map.js component exposes the core Google Map, allowing you to set the center of the map, and the HeatmapLayer exposes the Google Maps heatmap API. The data property of the HeatmapLayer is an array of all the returned data points from Firestore. A single object in the array is made up of a location (GPS coordinates) and a weight integer (cellular signal strength). The higher the weight, the more intense the heatmap color.

You can adjust the display of the heatmap by supplying options to the HeatmapLayer element. For this project you’d specify the radius, or how far you want the heatmap colors to spread around a point.

Shortcut: you can use the first record from the mapdata collection for the center.

Running the Web App

With your web app built, back in the terminal you can install dependencies with yarn install, and run the app with yarn start. You can test your map using the testPoints array in Map.js instead of the data pulled from GCP.

Now you can start collecting data and testing your map.

Applications of This Project

Heatmapping is a powerful tool for anyone who wants to easily visualize complex data sets. This type of data visualization makes data more actionable for a number of industries. Some heat map use cases include:

  • Wireless network signal coverage
  • Asset tracking
  • Supply chain analytics
  • Resource utilization (elevator usage)
  • Wildlife tracking and migration patterns
  • Smart city counters (pedestrian, vehicle, etc.)
  • Retail shopper traffic counting
  • Manufacturing production bays monitoring
  • Construction site monitoring

Ready to Discuss Your Project With Us?

Blues Wireless makes it easy to make connected devices. In the article above, you’ve seen how little effort it takes to build an initial proof-of-concept device that reports sensor data over the cellular network. In some cases, it’s best to start with one of our proof-of-concept applications, then swap out sensors or cloud apps until you get what you want. In others, it would be best to take a different tact entirely.

We can help. Schedule a consultation with a Blues Wireless Project Expert to discuss your project idea with you and help you find the shortest path to a proof-of-concept device to get your product or device connected to your cloud.

Contact Us

Frequently Asked Questions

    I need to measure different data. How can I customize this device?

    By adding a host MCU, you are able to capture any type of information and communicate it to the Notecard using our JSON interface over UART or I2C.

    If you have questions about acquisition or compatibility, please Contact Us.
    Which microcontrollers does the Blues Wireless Notecard support?

    The Notecard is compatible with any microcontroller (MCU) from an 8-bit Arduino to 32-bit ESP32 or STM32 and every major Single Board Computer (SBC) platform. Some popular examples include the Adafruit Huzzah32, STM32 Nucleo, Arduino Nano, ESP32-WROOM, among many others. The Notecard communicates over either I2C or UART, so it acts as a peripheral that you can connect to a product’s existing I2C bus or UART connection.

    It’s also possible to communicate with the Notecard from any embedded language, including compiled languages like C and C++, to interpreted languages like Python and JavaScript.

    Which cellular networks does the Blues Wireless Notecard utilize?

    Different models of the Blues Wireless Notecard are available that connect to LTE-M, NB-IoT, and Cat-1 networks globally. When LTE-M, NB-IoT, or Cat-1 aren’t available, the Notecard is also supported by UMTS/HSPA+ and GSM/GPRS/EDGE wireless standards.

    I need a fleet of devices. Are there options for me to buy a larger quantity?

    Yes! Blues Wireless can support your project whether you need 10 devices or 10,000. We also have relationships with device building firms and contract manufacturers to help bring your vision to life.

    Please Contact Us.
    Which countries does the Blues Wireless Notecard support?

    Global coverage is available in 135 countries, with direct support provided by leading providers and carriers. For a full list, please see our documentation article on Notecard’s supported countries.

    Which wireless standards are used by the Blues Wireless Notecard?

    Various Notecard models are available that connect to LTE-M, NB-IoT, and Cat-1 networks. In global regions without these capabilities, coverage is also supported by UMTS/HSPA+ and GSM/GPRS/EDGE wireless standards.

    Does the Blues Wireless Notecard require a Notecarrier to function?

    No! The Blues Wireless Notecard is a small 30mm x 35mm system on module (SoM) that is able to be embedded in any IoT project on its own via its M.2 edge connector.

    However, Blues Wireless provides a variety of Notecarrier host boards for easily adding cellular connectivity to a new or existing IoT solution for prototyping purposes. The Notecarrier also provides antennae for both the GPS and cellular capabilities of the Cellular Notecard (and the cellular antenna is also compatible with the Wi-Fi Notecard).

We’re making IoT quick and easy.

Start your IoT journey with us!