Easy IoT with Bluetooth Beacons

When people think about IoT sensors they tend to envisage, for experimenters, discrete electronic components connected to single board computers (SBC) or for industrial, custom sensors connected to microcontrollers.

The problem for experimenters is the solution is fragile and needs to be evolved into a custom electronic design before it can be used in production. For industrial solutions, they tend to be proprietary, require deeply invasive installation and very expensive.

Example IoT Dashboard Using Sensor Beacons

Sensor beacons provide an easy, ready-made solution that have the following advantages:

  • They provide a solution that’s equally as good for experimentation as it is for the final production
  • They require no soldering or electronics skills.
  • They can be placed in remote areas where there’s no power or network connectivity.
  • They can be self powered and last for 5+ years.
  • They can detect quantities such as position, movement, temperature, humidity, air pressure, light and magnetism (hall effect), proximity and heart rate.
  • They can be easily attached to existing to exiting assets to make them IoT enabled.
  • Being Bluetooth)standards-based, the sensor data can be easily read via gateways, smartphone apps or single board computers and sent on, as necessary, to servers.
Bluetooth-WiFi Gateway

Using beacons sensors in this way also provides for the ‘big data’ required for AI machine learning.

Read more about Beacon Proximity and Sensing for the Internet of Things (IoT)

View Sensor Beacons

Developing a Bluetooth Internet Gateway

The Bluetooth SIG has a new Developer Study Guide by Martin Woolley showing how to create a Bluetooth gateway. Gateways are the bridge between Bluetooth devices and the Internet.

The developer study guide explains GAP, GATT, broadcasting devices and develops an architecture for capturing Bluetooth data:

It’s implemented using Python on a Raspberry Pi 4:

The guide has a section on Buy vs Build where it’s explained that, depending on your skills and budget, you might consider buying a commercial gateway.

Raspberry Pi based solutions aren’t always reliable in the long term because the micro SD card eventually fails. Most gateways also send (push) data to your server rather than an application having to query (pull) the gateway as is the case with the example in the study guide.

Beacon Proximity and Sensing for the Internet of Things (IoT)

View Commercial Gateways

New Waterproof Bluetooth Gateway

We have the new NR-01 waterproof gateway in stock.

This gateway detects Bluetooth LE advertising and sends it on to your chosen HTTP(S) or MQTT server via WiFi or Ethernet. There’s a configurable upload period and filtering by RSSI, Bluetooth Service, MAC address (including partial address) and iBeacon. It’s powered by Ethernet PoE or micro USB. It supports up to 240 advertising detections per second when using Ethernet.

We also stock a non-waterproof version.

View all gateways

Bluetooth Gateways for AWS IoT Core, Azure IoT Hub and Google IoT Core

It never been easier to collect Bluetooth sensor information and store it in the cloud. The INGICS gateways come with step-by-step instructions how to set up AWS IoT Core, Azure IoT Hub and Google IoT Core.

Read more about Beacon Proximity and Sensing for the Internet of Things (IoT).

View Bluetooth Sensor Beacons

Bluetooth Gateway Heartbeats

If you are rolling out many gateways, there comes a time when you start wondering if all of them are working and connected. While it’s possible to write a server side script/code to detect whether or not data has been received from the gateway in the last n seconds/minutes, this doesn’t work when there aren’t any Bluetooth devices in the vicinity of some gateways which won’t be sending payloads.

iGS01S Bluetooth WiFi Gateway

The INGICS gateways have a way of setting up a heartbeat that’s a dummy payload used to indicate a gateway is working and connected. It’s set up by telnet to the gateway and issuing the following command followed by a reboot:

> SYS HEARTBEAT 1
> REBOOT

The ‘1’ signifies every 1 minute and allows setting up to 255 minutes. A $HBRP data payload is to the server in the form:

$HBRP,FECE97089146,FECE97089146,-127,00000000

The heartbeat functionality is available on firmware IGS01-v2.0.0 and IGS01S-v2.0.0 or later.

INGICS Bluetooth Gateway MQTT Service Levels

The INGICS iGS01S (WiFi) and iGS02E (Ethernet) gateways support MQTT to send data to a server.

iGS01S Bluetooth LE WiFi Gateway

MQTT defines three levels of Quality of Service (QoS) that relate to whether requests are resent if not acknowledged:

  • 0 – The broker/client will deliver the message once, with no confirmation.
  • 1 – The broker/client will deliver the message at least once, with confirmation required.
  • 2 – The broker/client will deliver the message exactly once by using a four step handshake.

The INGICS gateways only support QoS level 0. This is because these gateways have lower memory and processing capability. They don’t have enough memory to queue unacknowledged requests required of other QoS levels. The extra processing would also significantly impact the performance and hence throughput.

If you need a higher MQTT service level then try the Minew G1 that supports QoS levels 0 and 1.

Maximising Bluetooth Gateway Throughput

Our article on What are Beacons shows the kind of data sent by beacons. While this might be iBeacon or Eddystone, both are a subset of all Bluetooth advertising as sent out by all Bluetooth LE devices such as smartphones, Fitbits and even industrial machines. The Bluetooth LE advertising advertising is just a short series of numbers.

Gateways look for Bluetooth advertising and send this on to a web server together with the signal strength of the detected device, the gateway’s own Bluetooth MAC address and MAC address of the detected Bluetooth device.

Bluetooth WiFi Gateway

In some situations a very large number of devices can be detected, most of which aren’t the ones that need to be detected. This can cause either the gateway to become overloaded or too much extraneous data to be sent to the server.

All gateways have ways of filtering what advertising is sent to the server. This usually includes matching some or all of the advertising with a given hexadecimal string and the ability to ignore devices weaker than a given signal strength.

Even after filtering, it’s possible in extreme circumstances that a gateway processes too many beacons and becomes overloaded. In these cases it’s important to have a gateway that can support the highest throughput. Gateway specifications detail the typical maximum number of devices that can be detected which varies considerably between devices. Ethernet connected devices tend to be more performant than those connected by WiFi. Also consider setting the gateway to only detect beacons close by and use more gateways per given area. Consider using MQTT in preference to HTTP so as to cause the gateway to do less work.