Big Data Sensor Events and Alerts in the Cloud

As seen in RS Components Design Spark 

Using environmental sensor data to drive automatic alerts and events is a common requirement in IoT systems. UrsaLeo just announced the availability of events and alerts through their cloud platform using the Silicon Labs Thunderboard 2 and Raspberry Pi 3B+ for data collection. The Thunderboard 2 has the capability to collect data from various sensors including relative humidity and temperature, UV and Ambient light, pressure, indoor air quality and gas, 6-axis motion, hall-effect, and a digital microphone.  The Raspberry Pi 3B+ acts as the IoT gateway, transmitting the sensor data to the Google Cloud. 

Our team added a small LED board that plugs directly into the Pi to provide a visual indication of when the Pi is connected to the sensor board (via BLE), the internet (via WiFi or wired connection), and when a cloud link has been established. This board is a very useful tool for setting up the cloud connection and troubleshooting.

Once data is flowing to the Google cloud, we re-publish the data using Google PUB/SUB to make the data available for internal usage, such as display on a dashboard

However, to make the data actionable, we needed to implement a way of creating rules and then comparing incoming messages against those rules. This is not as simple as storing rules in a database and comparing incoming messages against the database entries. Our engineering team implemented a tree based rule system (technically top down recursive evaluation) that overcomes the scalability issues that would rapidly overwhelm a database lookup system.

With a simple graphical editor, rules can be established to trigger an alert if data is greater or less than specific values, or falls within or outside a range. Rules can also be nested to allow complex decision making based on multiple parameters. There can even be ‘geo-fences’ triggering alerts based on a sensor moving out of a defined geographical area.

The performance achieved by the efficiencies of this approach is exceptional and we expect to support 500K messages per second against an arbitrary number of rules.

Other features include:

  • Rule action is able to send a message to multiple email addresses and SMS #’s
  • Rule action triggers a web hook into an application such as Zapier. This provides instant integration with tools such as Slack and
  • Rule can be set to trigger when moving outside of or into a range
  • Rule can be set to trigger every time a message is received or it can be set to stay ‘dormant’ for a period after firing
  • Rules can be set to trigger only between certain times or only on certain days
  • Rules can be set to ‘invert’ trigger on the opposite condition to the original rule
  • Rules can be set to trigger when a message is NOT received for a period of time
  • Rules can set to trigger if incoming values are stuck on the same number (likely a broken sensor)

This efficient method of cloud based sensor analytics is being tested on the Google IoT cloud and will be available to people using one of our existing IoT development kits. Kits can be bought here