Milesight EM500-SMTC: LoRaWAN Soil Moisture, Temperature & EC Sensor
Milesight EM500-SMTC LoRaWAN soil sensor: own ChirpStack/ThingsBoard decoder for moisture, temperature and EC, plus smart-agriculture integration.
- LoRaWAN
- Class A, OTAA
- Band / port
- EU868 / port 85
- Ingress protection
- IP67 transceiver, IP68 probe
- Moisture
- 0 to 100 % volumetric
- Temperature
- -40 to +80 °C
- Conductivity (EC)
- 0 to 20000 µS/cm
- Battery
- 19000 mAh, up to several years
What the EM500-SMTC measures
Soil moisture
Volumetric water content 0 to 100 %, with a soil calibration mode for fine and coarse soils.
Soil temperature
-40 to +80 °C, INT16 little-endian scaled by 10, with an error code on probe faults.
Electrical conductivity
0 to 20000 µS/cm, an indicator for salinity and fertiliser level in the root zone.
Battery level
Reported as a percentage, with on-device history storage and retransmission.
Integration
Sensor / controller
Measures or controls in the field and sends LoRaWAN uplinks.
LoRaWAN gateway
Receives the radio packets and forwards them to the server.
ChirpStack
Network server: manages sessions and decodes the payload.
ThingsBoard / Grafana
Dashboards, alarms, rules and reports.
function decodeUplink(input) {
var bytes = input.bytes;
var data = {};
for (var i = 0; i < bytes.length; ) {
var channel = bytes[i++];
var type = bytes[i++];
if (channel === 0x01 && type === 0x75) { // battery (%)
data.battery = bytes[i]; i += 1;
} else if (channel === 0x03 && type === 0x67) { // temperature (°C)
data.temperature = readInt16LE(bytes, i) / 10; i += 2;
} else if (channel === 0x04 && type === 0x68) { // moisture, old resolution (%)
data.moisture = bytes[i] / 2; i += 1;
} else if (channel === 0x04 && type === 0xca) { // moisture, new resolution (%)
data.moisture = readUInt16LE(bytes, i) / 100; i += 2;
} else if (channel === 0x05 && type === 0x7f) { // electrical conductivity (µS/cm)
data.ec = readUInt16LE(bytes, i); i += 2;
} else {
break;
}
}
return { data: data };
}
function readUInt16LE(b, i) {
return (b[i + 1] << 8) | b[i];
}
function readInt16LE(b, i) {
var v = readUInt16LE(b, i);
return v > 0x7fff ? v - 0x10000 : v;
}
Implemented from the published Milesight byte specification (Communication Protocol / User Guide).
Channel format: 01 75 battery (%), 03 67 temperature (INT16 little-endian, /10), 04 68 moisture (UINT8, /2) on older firmware or 04 CA moisture (UINT16 little-endian, /100) on newer firmware, 05 7F conductivity (UINT16 little-endian, µS/cm). The decoder handles both moisture resolutions. Sensor faults arrive as 0xFFFF / 0xFFFD on the affected channel, treat those as an error state in your rules. Implemented from the published Milesight byte specification. For ThingsBoard the same logic goes into an uplink converter.
Uplink (hex)
01756403671A0104CA9C0A057F2C01Decoded JSON
{ "battery": 100, "temperature": 28.2, "moisture": 27.16, "ec": 300 }Use cases
Smart agriculture
Irrigation scheduling from real root-zone moisture, temperature and EC.
MoreSmart horticulture
Substrate moisture and salinity control in greenhouses and nurseries.
MoreSoil & environment monitoring
Long-term field stations on solar or large-battery LoRaWAN nodes.
Configuration & pitfalls
NFC setup
Keys, reporting interval and threshold alarms are set over NFC with the Milesight ToolBox before rollout.
Soil calibration mode
Pick the soil type / calibration curve in the ToolBox so moisture matches the real volumetric water content of your field.
Probe burial
Bury the IP68 probe at the target root depth with firm soil contact and no air gaps, air pockets read as falsely dry.
EC vs salinity
Conductivity is in µS/cm and tracks salinity and fertiliser level; document the baseline for your soil so dashboard readings stay traceable.
How merkaio supports your EM500-SMTC
From sourcing to day-to-day operation, all from one partner on our own European infrastructure.
Pre-staging & provisioning
We configure the EM500-SMTC, set keys, intervals and alarms, and ship it ready to deploy.
Own decoder
Payload codec for ChirpStack v4 and ThingsBoard, implemented from the Milesight specification.
Dashboard integration
Data lands in your ThingsBoard or Grafana, with alarms and reports.
Operations & monitoring
We run the LoRaWAN stack and dashboards on European infrastructure, you just use the data.
Frequently asked questions
Let's discuss your infrastructure. Digital and on-site.
Whether it's IoT platform development, hardware selection, managed hosting for ChirpStack, ThingsBoard, Grafana or NetBird VPN, or migration from a self-hosted setup - we'll find the right solution for your use case. Book a free 30-minute consultation, no commitment required.
Your contact
Timo Wevelsiep
Founder, merkaio
15 minutes, no commitment, directly with Timo.
Decoder for ChirpStack v4. merkaio is an independent integrator and is not affiliated with Milesight.