Connecting SenseCAP to Datacake via Node-RED
SenseCAP K1100 - The Sensor Prototype Kit represents Seeed Studio concentrating the essence of LoRa® communication on technology and edge intelligence products, for the easiest deploying and mastering of LoRa® and IoT applications.
Upgradable to Industrial Sensors
With the SenseCAP S2110 controller and S2100 data logger, you can easily turn the Grove into a LoRaWAN® sensor. Seeed not only helps you with prototyping but also offers you the possibility to expand your project with the SenseCAP series of robust industrial sensors.
The IP66 housing, Bluetooth configuration, compatibility with the global LoRaWAN® network, built-in 19 Ah battery, and powerful support from APP make the SenseCAP S210x the best choice for industrial applications. The series includes sensors for soil moisture, air temperature and humidity, light intensity, CO2, EC, and an 8-in-1 weather station. Try the latest SenseCAP S210x for your next successful industrial project.
Datacake
Datacake is a multi-purpose, low-code IoT platform that requires no programming skills and minimal time to create custom IoT applications.
The content of this chapter will continue to use the Node-RED introduced earlier and facilitate the management of the K1100 kit in Datacake through the use of Node-RED.
If you haven't installed or don't know what Node-RED is, please refer to Node-RED & SenseCAP Tutorials.
Create MQTT Node
Step 1. Start Node-RED
Start Node-RED by typing the command node-red
in the terminal and open a browser and enter the address http://localhost:1880 in the address bar to access the editor of Node-RED.
Step 2. Create MQTT Node
We use Network -> mqtt in node and configure mqtt in the format of the SenseCAP API as requested in the previous tutorial.
Server: openstream.api.sensecap.seeed.cc
Port: 1883
Protocol: MQTT V3.1.1
Client ID: The format is
org-<Organization ID>-<Random ID>
<Orgnization ID>
Your organization ID. We have obtained it in the Get the SenseCAP API.<Random ID>
uses your own randomly generated numbers or lowercase letters.
Topic Format:
/device_sensor_data/<OrgID>/<DeviceEUI>/<Channel>/<Reserved>/<MeasurementID>
OrgID | Your organization ID. We have obtained it in the Get the SenseCAP API. |
DevEUI | Unique identification of sensor devices. This information can be found on the sticker on the back of the Grove - Wio E5, as well as in the SenseCAP console device. |
Channel | A physical interface on the device to which the sensor is connected. For the K1100 kit, the default value here is 1. |
Reserved | Reserved Fields. |
MeasurementID | Measured value ID. This ID can be found in the Measurement IDs section of the SenseCAP documentation |
Step 3. Validate MQTT nodes
Once configured, please click the Deploy button in the top right corner to check if the configuration was successful. If it is filled in correctly, then the word Connected will be displayed.
Configure Datacake
Step 1. Register or login to Datacake
If you have already registered with Datacake, then please login on the Datacake website.
If you do not use or have registered with Datacake, then please complete your registration and login here.
Step 2. New workspace
Once you have logged into Datacake, click on your account name in the top left hand corner and select Add Workspace. And come up with a name for your workspace.
Step 3. New device
After entering the newly created workspace, then create a new device.
Select API.
Select New Product. And name the product.
In this section, we will choose the free option to complete.
Step 4. Configure the device
Click into the new device you just created and select Configuration.
Locate "Fields" and click Add Field. Then enter the name of the data you want to manage in Datacake.
Note that the IDENTIFIER fields are all uppercase, and in the function node of Node RED that is configured later, the content passed in also needs to be uppercase.
Step 5. Obtain the API token
Click on your account name in the top left hand corner and select Edit Profile.
Then save the API token in the API, which we will use in Node RED in a moment.
Configure Node-RED
Step 1. Download Datacake Paletts
Click on the upper-right menu bar and select Settings.
Search and install node-red-contrib-datacake in the Paletts -> Install.
Add datacake - out from the storage bar on the left,double-click it to enter the configuration page, then click the edit button to edit datacake - out node.
Step 2. Edit datacake - out node
Please fill in the API Token with the API token we obtained in the previous configuration of Datacake. Then just click the Add button in the top right corner.
Then select the name of the workspace we created earlier.
The device will automatically be refreshed to the new device just created and the field drop down box will show the new field just created. If you don't want to set a field here, you can also modify the fieldName of the payload to configure the field via code.
Step 3. Configure the function node
Data reporting to Datacake needs to follow a specific data format, so it's necessary to add a function node to process the data format.
Drag out the function node from the function bar on the left, double-click it to enter the edit page, then copy the code to On Message.
{
var payload = msg.payload;
var topic = msg.topic;
var strs = topic.split("/");
var length = strs.length
if (length >= 2) {
var measurementId = strs[length - 1]
msg.payload = payload.value
if (measurementId == 4150) {
msg.fieldName = "ACCELX"
} else if (measurementId == 4151) {
msg.fieldName = "ACCELY"
} else if (measurementId == 4152) {
msg.fieldName = "ACCELZ"
} else if (measurementId == 4192) {
msg.fieldName = "VOLUME"
} else if (measurementId == 4193) {
msg.fieldName = "LIGHTINTENSITY"
} else if (measurementId == 4103) {
msg.fieldName = "SOILMOISTURE"
} else if (measurementId == 4195) {
msg.fieldName = "TVOC"
} else if (measurementId == 4100) {
msg.fieldName = "CO2"
} else if (measurementId == 4097) {
msg.fieldName = "AIRTEMPERATURE"
} else if (measurementId == 4098) {
msg.fieldName = "AIRHUMIDITY"
} else if (measurementId == 4175) {
msg.fieldName = "AIDETECTION1"
} else if (measurementId == 4176) {
msg.fieldName = "AIDETECTION2"
} else if (measurementId == 4177) {
msg.fieldName = "AIDETECTION3"
} else if (measurementId == 4178) {
msg.fieldName = "AIDETECTION4"
} else if (measurementId == 4179) {
msg.fieldName = "AIDETECTION5"
} else if (measurementId == 4180) {
msg.fieldName = "AIDETECTION6"
} else if (measurementId == 4181) {
msg.fieldName = "AIDETECTION7"
} else if (measurementId == 4182) {
msg.fieldName = "AIDETECTION8"
} else if (measurementId == 4183) {
msg.fieldName = "AIDETECTION9"
} else if (measurementId == 4184) {
msg.fieldName = "AIDETECTION10"
}
}
return msg;
}
Step 4. Deploy
Then we connect all the nodes and click on the Deploy button and if everything is set up correctly you will be able to see the mqtt in node showing connected.
If you want to see the logging information of the data, you can add a debug node after the function node.
Once the Wio Terminal starts powering up and working and starts sending data to SenseCAP PaaS server, then we can check the data on Node-RED debug log.
Back in the Datacake dashboard, you can see all the data information in the History section of this device.
Troubleshoot
Q1: Why can't I find the Palette in Node-RED?
A: If you cannot find the Palette in the settings, check your terminal for an error message when you start Node-RED.
The most common scenario is that your npm version is too old to start the Palette editor.
If your situation is as described above, run Powershell as administrator and enter the following command to upgrade npm.
npm install -g npm
Then just restart Node-RED.
Tech Support & Product Discussion
Thank you for choosing our products! We are here to provide you with different support to ensure that your experience with our products is as smooth as possible. We offer several communication channels to cater to different preferences and needs.