LoRa is a low-power, low-bandwidth, long-range radio protocol used by many devices to send their data over the air. This protocol is specifically designed for battery powered devices with little to no installation cost.
LoRa devices broadcast their data to reachable LoRa gateways, which forward the messages on the LoRa operator network. The operator de-duplicates the messages from multiple gateways and hand over the message to the “LoRa application”. In our scenario, the “LoRa application” is Scaleway IoT Hub.
Actility is a LoRa operator which can build your public or private LoRa network.
In this tutorial we are going to:
First, we need to create a Hub. Its role will be to distribute messages from your LoRa devices to the intended targets. Please follow this procedure to create an IoT Hub. Choose any name and any plan you wish.
We now need to add a Device to the IoT Hub because the Actility platform will connect as a MQTT device to exchange data on IoT Hub. Please follow this procedure to do so. Give it the name you want. You can leave the default
deny insecure connection setting to provide maximum security to this connection.
Once it is done, copy the
Device ID and download the
private key files, you will need them to set up the Actility backend.
Now IoT Hub is ready to exchange messages with Actility, let’s configure the Actility side:
Applications > Createand choose MQTT
<prefix>/things/<LoRa device ID>/uplink. Type in
You can check the application is up and running by going to the application page and verifying the
Deployment Status box is set to
Opened. When it is, your LoRa network is now connected to your IoT Hub.
It is time to see messages flowing on IoT Hub:
allow insecure connectionsetting to keep this step simple.
Add New Topic Subscriptionin the
my-app/things/+/uplinkas the topic, this will instruct IoT Hub to send you uplink messages from all devices
Subscriptionsblock and the messages from your LoRa devices will start showing in the
Congratulations! Messages are flowing as expected.
You could leverage the power of IoT Hub to build a dashboard to display your data in a few easy steps:
loratable with the following fields:
time(timestamp type) and
my-app/things/+/uplink. Your query should look like
INSERT INTO lora (time, data) VALUES (NOW(), $PAYLOAD).
SELECT time, data->'DevEUI_uplink'->'payload'->'batteryLevel' as batteryLevel FROM lora WHERE $__timeFilter(time).
That’s it! Your LoRa devices data is now backed by a production-grade dashboard!