How to

How to Connect Seeed SenseCAP Sensors to TagoIO

How to connect Seeed SenseCAP LoRaWAN sensors to TagoIO. Covers SenseCAP S21xx series, the SenseCAP portal bypass via TTN, payload decoding, and use cases for smart agriculture, environmental monitoring, and smart buildings.

TagoIO Team ·
How to Connect Seeed SenseCAP Sensors to TagoIO

Seeed SenseCAP produces some of the most widely deployed industrial LoRaWAN sensors on the market. The S21xx series covers temperature, humidity, CO2, light, barometric pressure, soil moisture, and more, all in weatherproof enclosures rated for outdoor deployment.

SenseCAP sensors come pre-configured to join any standard LoRaWAN network. While Seeed operates its own SenseCAP portal, you can bypass it entirely and send data straight to TagoIO via The Things Network or any LoRaWAN network server that supports HTTPS webhooks.

This guide covers the full integration: from registering a SenseCAP sensor on TTN to seeing clean, decoded data in a TagoIO dashboard.

What you need before you start

  • A TagoIO account (free plan available)
  • A Seeed SenseCAP sensor (S2101, S2103, S2104, S2105, S2107, or similar S21xx device)
  • A LoRaWAN gateway compatible with TTN or your preferred network server
  • A The Things Network (TTN) account at console.cloud.thethings.network

How SenseCAP sensors communicate

SenseCAP S21xx sensors use standard LoRaWAN Class A communication. They send uplinks at configurable intervals (default 15 minutes, adjustable down to 1 minute via AT commands or the SenseCAP Mate app).

Each uplink is a binary payload. The payload format is documented in the Seeed SenseCAP decoder repository on GitHub. You will need this decoder to write the TagoIO payload parser.

Step 1: Register the SenseCAP sensor on TTN

  1. Log in to console.cloud.thethings.network.
  2. Open or create an Application.
  3. Click Register end device.
  4. Select Enter end device specifics manually.
  5. Set the frequency plan for your region (EU868, US915, etc.).
  6. Set LoRaWAN version to 1.0.3 (used by SenseCAP S21xx).
  7. Enter the JoinEUI (AppEUI), DevEUI, and AppKey from the SenseCAP sensor label or SenseCAP Mate app.
  8. Save the device.

The sensor will join the TTN network on its next transmission.

Step 2: Create a device in TagoIO

  1. Log in to admin.tago.io.
  2. Click Devices → Add Device.
  3. Search for The Things Network v3 and select it.
  4. Name the device to match your SenseCAP sensor.
  5. Copy the Webhook URL and Authorization Token that TagoIO generates.

Device documentation: docs.tago.io/docs/tagoio/devices

Step 3: Connect TTN to TagoIO via webhook

  1. In your TTN application, go to Integrations → Webhooks.
  2. Click Add webhook → Custom webhook.
  3. Set Base URL to the TagoIO webhook URL.
  4. Add header: Authorization: <your_token>.
  5. Enable Uplink message events.
  6. Save.

Step 4: Write the Payload Parser

SenseCAP S21xx sensors send a structured binary payload. If you configure a TTN payload formatter using the Seeed-provided decoder, TTN will decode the payload before sending it to TagoIO. In that case, the decoded fields arrive in payload.uplink_message.decoded_payload.

Option A: Use TTN’s payload formatter + TagoIO parser

Configure the Seeed decoder as a TTN Application-level payload formatter. Then in TagoIO, your parser simply maps the decoded fields:

const decoded = payload.uplink_message.decoded_payload;

if (!decoded || !decoded.messages) {
  payload = [];
  return;
}

payload = decoded.messages.map(msg => ({
  variable: msg.measurementId.toString().toLowerCase().replace(/ /g, "_"),
  value: msg.measurementValue,
  unit: msg.unit || ""
}));

Option B: Decode raw bytes in TagoIO

If you prefer to keep all decoding in TagoIO, read the raw base64 payload from payload.uplink_message.frm_payload and implement the Seeed binary format parser in JavaScript.

For a SenseCAP S2101 (Temperature + Humidity):

const raw = Buffer.from(payload.uplink_message.frm_payload, "base64");
// Seeed S2101 measurement payload starts at byte 3
const temperature = raw.readInt16LE(3) / 10;
const humidity = raw.readUInt16LE(5) / 10;

payload = [
  { variable: "temperature", value: temperature, unit: "C" },
  { variable: "humidity", value: humidity, unit: "%" }
];

Adjust byte offsets based on the sensor model using the official Seeed decoder spec.

Payload Parser documentation: docs.tago.io/docs/tagoio/devices/payload-parser

Step 5: Verify in the Live Inspector

Open the Live Inspector tab on your TagoIO device page. Wait for the next sensor uplink (or force one by pressing the button on the SenseCAP device). Confirm that decoded variables appear correctly before building the dashboard.

Live Inspector docs: docs.tago.io/docs/tagoio/devices/live-inspector

Step 6: Build the dashboard

From Dashboards → +, create a new dashboard. For a SenseCAP environmental deployment:

  • Line charts for temperature, humidity, and CO2 over time
  • Gauge widgets showing current readings
  • Alert status card showing whether the environment is in range
  • Map widget if you have multiple sensors across a site

For multi-sensor deployments, use a Blueprint Dashboard to apply one layout across all devices. Each sensor gets its own dashboard view via device tags, no duplication needed.

Dashboard docs: docs.tago.io/docs/tagoio/dashboards

Step 7: Set up threshold alerts

Use Actions to notify your team when values go out of range. Common SenseCAP alert patterns:

  • CO2 above 1000 ppm in a meeting room → email occupants
  • Soil moisture below 15% → SMS to irrigation team
  • Temperature above 35°C in a greenhouse → trigger a cooling relay via API call

Actions documentation: docs.tago.io/docs/tagoio/actions

Use case examples

Smart agriculture

SenseCAP S2105 (soil moisture + temperature) and S2101 (air temperature + humidity) nodes deployed across crop rows. Readings every 15 minutes to TagoIO. Analysis scripts calculate vapor pressure deficit (VPD) and write it back as a computed variable. Irrigation triggers automatically when soil moisture and VPD conditions are met.

Environmental monitoring in offices and schools

SenseCAP S2103 (CO2, temperature, humidity) in classrooms and conference rooms. A Blueprint Dashboard gives building managers a per-room view. Actions send a Slack notification when CO2 levels in a room exceed 1000 ppm, prompting ventilation.

Industrial outdoor sensing

SenseCAP S2101 in weatherproof enclosures on a construction site or logistics yard. TagoIO stores readings and shows trend charts. The facility team uses the mobile-responsive dashboard to check conditions on their phones.

Taking it further with AI

TagoIO’s MCP server lets AI assistants like Claude query your SenseCAP data directly. Ask questions like “Which zone had the highest CO2 last week?” or “Show me temperature anomalies across all sensors in the last 48 hours” without writing a query manually.

MCP documentation: docs.tago.io/docs/tagoio/getting-started/tagoio-mcp-ai-powered-iot-data-integration

Summary

SenseCAP sensors connect to TagoIO through TTN in four steps: register on TTN, create a TagoIO device with the TTN connector, configure the webhook, and write the payload parser. The hardest part is getting the binary decode right: Seeed’s open-source decoder takes most of the guesswork out of that.

Once the data flows, TagoIO handles storage, visualization, and alerting with no additional infrastructure needed.