Polverine

Cutting-edge environmental sensing in a compact form factor

Available for pre-order

View Purchasing Options
Mar 11, 2025

Project update 5 of 5

Source Code Repository Restructure

by Umberto Allievi, Claudio Pino

Dear Backers,
Thank you for your support. We believe we can build a thriving community around our Polverine project. This week, we modified the source code directory tree layout to simplify the integration of the BOSCH SDK libraries into Polverine DEMO projects.

A Python script now checks for the presence of the BOSCH SDK libraries and guides you to download them from the internet. Once downloaded to a local directory, you simply need to copy them to the correct path and all projects will be ready to compile without issues.

For detailed instructions, please refer to the README file located within the project directory.

POLVERINE_FULL_MQTT_DEMO

Last week, we introduced the three demo applications we shared on GitHub. This week, we will delve deeper into the data flow of the POLVERINE_FULL_MQTT_DEMO.

The POLVERINE_FULL_MQTT_DEMO is a comprehensive data acquisition system that can be tailored to a wide range of scenarios, from a single Polverine sensor in a local setup to a geographically distributed network of thousands of Polverine sensors.

The firmware for the POLVERINE_FULL_MQTT_DEMO gathers data from its onboard sensors and transmits it using the MQTT protocol. The integrated WiFi module enables connectivity to a local WAN and subsequently to the internet.

Data is published to topics that include the device’s unique SENSORID (specifically, the last six characters of its MAC address).

  1. polverine/SENSORID/bmv080
  2. polverine/SENSORID/bme690
  3. polverine/SENSORID/sys

The message contains the data in JSON format:

  1. bmv080 message
{
  "ID": "54ADD8",
  "R": 9131.2,
  "PM10": 32,
  "PM25": 24,
  "PM1": 11,
  "obst": "no",
  "omr": "no",
  "T": 11.1
}
  1. bmv690 message
{	
  "ID": "54ADD8",
  "R": 8556.6,
  "T": 6.25,
  "P": 98956.57,
  "H": 98.75,
  "IAQ": 73.9,
  "ACC": 3,
  "CO2": 1026.85,
  "VOC": 1.76
}
  1. sys message (to be implemented)
{	
  "ID": "54ADD8",
  "T": 6.25,
  "S": 1,
}

Data flow diagram

The data flow is divided into three main blocks:

  1. Data Acquisition and Transmission: Data is collected from the Polverine Sensor Device and transmitted to an MQTT Broker using the TCP protocol.

  2. Data Processing and Storage: A NodeRed Flow running on a server subscribes to the following MQTT topics:

    • polverine/+/bmv080
    • polverine/+/bme690
    • polverine/+/sys (planned for implementation)

    The data received from these topics is then stored in a MongoDB time-series collection.

Additionally, the server flow connects to the OpenWeatherMap API to download and store time-series meteorological data in a database. This information can be useful for understanding and correlating the Polverine sensor’s readings of outdoor weather conditions.

  1. Data Visualization: Another NodeRed Flow, this time on a client, retrieves data from MongoDB and visually displays historical data on charts in an HTML web page.

NodeRed

NodeRed Flows are quite straightforward, as can be seen in the following images:

MongoDB

The MongoDB non-relational database stores the sensors data and makes it accessible for display and analysis, with each data record being time-stamped. A list of all Polverine devices is stored alongside the recorded data.

We Make IoT Edge Computing Simple and Accessible!

All you need to set up a fully-featured environmental sensing data acquisition system at the edge is a few Polverine devices and a Raspberry Pi or even an old computer. Alternatively, you can use an MQTT broker in the cloud to gather data from Polverine devices distributed across a geographical area.

With the provided firmware, setup is simple and intuitive. Plus, everything is open source—allowing you to start with the supplied firmware, software, and hardware, and customize it to create your own solutions!


If you have any questions or want to share your ideas, feel free to reach out via the Ask a Question link on our campaign page, or connect with us on social media.

Thanks again for being part of this journey. More updates coming soon!

Best,
The Polverine Team


Sign up to receive future updates for Polverine.

Subscribe to the Crowd Supply newsletter, highlighting the latest creators and projects