Dragino Water Leak Sensor Helium and Tago Tutorial
Adding Water Leak Sensor (LWL02) to the Helium Network
1. Register for a Helium Console Account
We will be using the Helium Network as our LoRaWAN network provider because of their large network coverage and low fee. You can check out more about them here.
In order to receive data from the Helium LoRaWAN network, we will create a Helium Console account here. Once you created the account and logged in, you will see the following page:
2. Adding Data Credit
Every new Helium Console account comes with 10,000 data credit which will provide about 2 months of data. However, if you want to add more, hover over the DC balance on the top right of your screen and click on "DC Balance" which will take you to the following screen. The minimum purchase with credit card is $10 which will give you plenty of data credit to use with the sensor.
3. Adding Water Leak Sensor to the Helium Network
Select "Devices" on the left column, then "Add New Device". Enter a name for your device and populate the Dev EUI, APP EUI and App Key. Once completed, proceed to "Save Device".
4. Adding Payload Decoder
Select "Functions" on the left column, then "Add New Function". Set all fields the same as seen below.
Copy and paste the following function into the custom script box.
function Decoder(bytes, port) {
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
var value = (bytes[0] << 8 | bytes[1]) & 0x3FFF;
var bat = value / 1000;//Battery,units:V
var door_open_status = bytes[0] & 0x80 ? 1 : 0;//1:open,0:close
var water_leak_status = bytes[0] & 0x40 ? 1 : 0;
var mod = bytes[2];
var alarm = bytes[9] & 0x01;
if (mod == 1) {
var open_times = bytes[3] << 16 | bytes[4] << 8 | bytes[5];
var open_duration = bytes[6] << 16 | bytes[7] << 8 | bytes[8];//units:min
if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f)
return {
BAT_V: bat,
MOD: mod,
DOOR_OPEN_STATUS: door_open_status,
DOOR_OPEN_TIMES: open_times,
LAST_DOOR_OPEN_DURATION: open_duration,
ALARM: alarm
};
}
else if (mod == 2) {
var leak_times = bytes[3] << 16 | bytes[4] << 8 | bytes[5];
var leak_duration = bytes[6] << 16 | bytes[7] << 8 | bytes[8];//units:min
if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f)
return {
BAT_V: bat,
MOD: mod,
WATER_LEAK_STATUS: water_leak_status,
WATER_LEAK_TIMES: leak_times,
LAST_WATER_LEAK_DURATION: leak_duration
};
}
else if (mod == 3)
if (bytes.length == 10 && 0x07 > bytes[0] < 0x0f) {
return {
BAT_V: bat,
MOD: mod,
DOOR_OPEN_STATUS: door_open_status,
WATER_LEAK_STATUS: water_leak_status,
ALARM: alarm
};
}
else {
return {
BAT_V: bat,
MOD: mod,
};
}
}
Setting Up Tago.IO for Data Visualization
1. Register for a Tago.IO Account
In this guide, we will use Tago.IO to display all data coming from Helium. Register for a free account with Tago and once you are logged in, you will see the following screen.
2. Add New Device to Tago
Select "Devices" on the top left corner, then select "Add Device".
Select "LoRaWAN Helium", then select "Custom Helium" as shown below.
Once you selected "Custom Helium", the following screen will appear. Give your water leak sensor a name and set the "Data Storage Type" to "Device Data Optimized". For data retention, set your desirable timeframe that you want Tago to retain data. In this example, we will set it to one month. Fill in the EUI field with the Dev EUI. Once done, press "Create My Device",
3. Add Water Leak Sensors Dashboard to Tago
Use the following link to automatically install the water leak sensor dashboard to your Tago account. Select "Install Template" when prompted as shown below.
Select the device name that you added earlier from the drop-down menu. Select "Confirm associations" once you are done.
4. Adding Tago Authorization to Helium Console
At this point, you will see the newly created dashboard on your homepage. However, the dashboard should be empty since you have not gotten any data yet due to the fact that we have not link the Tago account to our Helium Console account. To do this, select your profile name on the top right corner, then select "My account"
Select your profile name on the left, then click on "Token", set permission to "full", and to never expire, then "Generate Token". In order to copy your token, click on the copy symbol as show below.
Now log back into your Helium Console account, click on "Integrations" on the left column then add TagoIO.
Paste your newly created Tago token in the Step 2 box below.
5. Flow Diagram
Finally, we are on the last step. This step will tie everything that we did previously together and allow you to see all data output on Tago.IO.
While in Helium Console, click on "Flows", then add the following items and connect them together. In our case, we will add the water leak sensor, water leak decoder function and the TagoIO authorization.
TagoIO Dashboard Visualization
Congratulation, you are now done! Go back to your Tago dashboard and see all the data fields getting populated as more data come through!