Dragino LDDS75 Distance Sensor
The LDDS75 is a LoRaWAN ultrasonic distance/level detection sensor. It provides decent non-contact measurement of distance or liquid levels up to 7.5 meters (about 24', aka freedom units), with precision to a few inches. Confusingly for a new deployer, there is an optional temperature sensor you can add. If you don't add it, part of your payload will be "temperature = 0" or something similar. These work well for tank level monitoring, bin fill measurement, or any application requiring generally accurate distance sensing.
It's not precisely accurate; if you're fine with a few inches of variance this is a great solution. I've used 'em in the Vernal Pools Project.
Features
- Distance measurement range: 0-75cm
- Temperature monitoring (optional)
- Battery voltage monitoring
- Interrupt and sensor status reporting
- Class A LoRaWAN device
Codec Implementation
// Codec by MeteoScientific
// Feel free to share and modify as needed
// meteoscientific.com
function decodeUplink(input) {
var decoded = {};
try {
var bytes = input.bytes;
// Battery Voltage (naturally a float)
var batValue = (bytes[0] << 8 | bytes[1]) & 0x3FFF;
decoded.battery_voltage = parseFloat((batValue / 1000).toFixed(3)); // in V
// Distance (naturally an integer in mm)
decoded.distance = bytes[2] << 8 | bytes[3]; // in mm
// Temperature if present (naturally an integer in °C)
if (bytes.length > 6) {
var tempValue = (bytes[5] << 8 | bytes[6]);
decoded.temperature = (tempValue & 0x8000) ? tempValue - 0x10000 : tempValue; // in °C
}
// Status flags as booleans
if (bytes.length > 4) {
decoded.interrupt_status = bytes[4] === 1;
}
if (bytes.length > 7) {
decoded.sensor_status = bytes[7] === 1;
}
return {
data: decoded
};
} catch (err) {
return {
errors: [`Decoder error: ${err.message}`]
};
}
}
Output Fields
Field | Type | Unit | Description |
---|---|---|---|
battery_voltage | Float | V | Battery voltage level |
distance | Integer | mm | Measured distance in millimeters |
temperature | Integer | °C | Temperature (if enabled) |
interrupt_status | Boolean | - | Interrupt flag status |
sensor_status | Boolean | - | Sensor operation status |
Sample Output
{
"battery_voltage": 3.395,
"distance": 1248,
"temperature": 0,
"interrupt_status": false,
"sensor_status": true
}
Device Configuration
The LDDS75 can be configured using a USB-TTL adapter. Key configuration options include:
- Measurement interval
- Temperature monitoring enable/disable
- Interrupt thresholds
- LoRaWAN parameters
For detailed configuration instructions, see our device configuration guide.