We now have the INGICS iGS03E Bluetooth to Ethernet gateway in stock. This differs to the iGS02E in that it includes Power over Ethernet (PoE) without having to have an external PoE splitter.
Gateways look for Bluetooth LE devices and sends their advertising on to a server via TCP, HTTP(S) or MQTT including AWS IoT. If you use with sensor beacons, this provides a quick and easy way to provide for IoT sensing.
The iGS03E is one of the first gateways to also support Bluetooth 5 in Long Range mode (LE Coded PHY), although very few advertising devices support this yet.
Cybele bridges Bluetooth Low Energy devices to MQTT on Linux devices. MQ Telemetry Transport Protocol (MQTT), invented by IBM, is an ISO standard that uses lightweight publish/subscribe messaging to send data to a server.
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.
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
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.
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.
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.
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.
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:
The heartbeat functionality is available on firmware IGS01-v2.0.0 and IGS01S-v2.0.0 or later.
The INGICS iGS01S (WiFi) and iGS02E (Ethernet) gateways support MQTT to send data to a server.
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.