- Created by Werkstatt, last modified by Theodor Rohde on Nov 07, 2020
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 20 Next »
Multiple different Variants
There are different kinds of Pressure Probes that use very different kinds of communication. As a consequence there exist different Variants of our Hardware for using Pressure Probes. Please take care that you only install the correct Variant of firmware on your device.
Consider using the latest firmware on your hardware
Target Measurement / Purpose
Precise liquid level measurement, e.g. for tanks, via LoRaWAN.
Features
- Cable length 15m
- 0…15 mH2O (15m water level, 1.5 Bar)
- Resolution: ± 0.5% FSO (Full Scale Output)
- Waterproof IP66 Housing
- Multi-year Battery life, ultra low power design
Order Information
- Type: LOB-S-PR-LW-BOX
- Articlenumber: 8000089
The (initial) configuration is normally done using our free Lobaro Maintenance Tool and the USB PC configuation adapter.
Beside this the configuration can also be changed or read remotely in the field using LoRaWAN downlink messages, see Downlinks description.
LoRaWAN
Advanced Lobaro LoRaWAN Stack
Some of the features listed here (LoRaWAN 1.1, Remote Configuration, ...) are only implemented for recent versions of our firmware. For the Lobaro Sensor this starts with v0.2.1, for the Keller Sensor it starts with v0.3.0. If possible, you should update your devices to our most recent firmware.
The connection to the LoRaWAN network is defined by multiple configuration parameters. This need to be set according to your LoRaWAN network and the way your device is supposed to be attached to it, or the device will not be able to send any data.
For a detailed introduction into how this values need to be configured, please refer to the chapter LoRaWAN configuration in our LoRaWAN background article.
Name | Description | Type | Values |
---|---|---|---|
OTAA | Activation: OTAA or ABP | bool | true = use OTAA, false = use ABP |
DevEUI | DevEUI used to identify the Device | byte[8] | e.g. 0123456789abcdef |
JoinEUI | Used for OTAA (called AppEUI in v1.0) | byte[8] | e.g. 0123456789abcdef |
AppKey | Key used for OTAA (v1.0 and v1.1) | byte[16] | |
NwkKey | Key used for OTAA (v1.1 only) | byte[16] | |
SF | Initial / maximum Spreading Factor | int | 7 - 12 |
ADR | Use Adaptive Data Rate | bool | true = use ADR, false = don't |
TimeSync | Days after which to sync time | int | days, 0 =don't sync time |
RndDelay | Random delay before sending | int | max seconds |
RemoteConf | Support Remote Configuration | bool | true =allow, false =deactivate |
LostReboot | Days without downlink before reboot | int | days, 0 =don't reboot |
Operation
Configuration values defining the behaviour of the device. The Min and Max values will be preconfigured when receiving the device. In case of using "Restore Default" they will be reset to standard values and have to be set again using the values printed on the sensor or given separately.
name | description | example value |
---|---|---|
sendCron | Cron expression defining when to read and send | 0 0/15 * * * * for every 15 minutes |
rangeMin | min range in mh2o | in most cases 0 |
rangeMax | max range in mh2o | in most cases 15 |
outputMin | min digital output value of the sensor | in most cases 819 |
outputMax | max digital output value of the sensor | in most cases 11664 |
See also our Introduction to Cron expressions.
Payload Format
Port: 1 Payload: 8 Bytes
Temperature is transmitted in 1/100°C, battery voltage in Millivolt and pressure in Bar.
PRESSURE | Temperature | Battery Voltage | |||||
---|---|---|---|---|---|---|---|
float32 | float32 | float32 | float32 | int16 | int16 | int16 | int16 |
Byte 0 | Byte 1 | Byte 2 | Byte 3 | LSB | MSB | LSB | MSB |
Dimensions
Parser
Element-IoT: https://github.com/ZennerIoT/element-parsers/blob/master/lib/lobaro_pressure26d.ex
The Things Network
function decodeFloat32(bytes) { var sign = (bytes & 0x80000000) ? -1 : 1; var exponent = ((bytes >> 23) & 0xFF) - 127; var significand = (bytes & ~(-1 << 23)); if (exponent == 128) return sign * ((significand) ? Number.NaN : Number.POSITIVE_INFINITY); if (exponent == -127) { if (significand == 0) return sign * 0.0; exponent = -126; significand /= (1 << 22); } else significand = (significand | (1 << 23)) / (1 << 23); return sign * significand * Math.pow(2, exponent); } function decodeInt16(bytes) { if ((bytes & 1 << 15) > 0) { // value is negative (16bit 2's complement) bytes = ((~bytes) & 0xffff) + 1; // invert 16bits & add 1 => now positive value bytes = bytes * -1; } return bytes; } function int16_LE(bytes, idx) { bytes = bytes.slice(idx || 0); return bytes[0] << 0 | bytes[1] << 8; } function int32_LE(bytes, idx) { bytes = bytes.slice(idx || 0); return bytes[0] << 0 | bytes[1] << 8 | bytes[2] << 16 | bytes[3] << 24; } function Decoder(bytes, port) { // Decode an uplink message from a buffer // (array) of bytes to an object of fields. var decoded = { pressure: decodeFloat32(int32_LE(bytes, 0)), temp: decodeInt16(int16_LE(bytes,4)) / 100, v_batt: decodeInt16(int16_LE(bytes,6)) / 1000, }; // if (port === 1) decoded.led = bytes[0]; return decoded; }
CE Declaration of Conformity
CE Declaration of Conformity (pdf).
Disposal / WEEE / Entsorgung
- No labels