Die Cayenne Low Power Payload (LPP) bietet eine bequeme und einfache Möglichkeit, Daten über LPWAN -Netzwerke wie Lorawan zu senden. Die Cayenne LPP entspricht der Beschränkung der Nutzlastgröße, die auf 11 Bytes gesenkt werden kann, und ermöglicht es dem Gerät, mehrere Sensordaten gleichzeitig zu senden.
Darüber hinaus ermöglicht das Cayenne LPP das Gerät, verschiedene Sensordaten in verschiedenen Rahmen zu senden. Dazu müssen jede Sensordaten mit zwei Bytes vorangestellt werden:
| 1 Byte | 1 Byte | N Bytes | 1 Byte | 1 Byte | M Bytes | ... |
| Data1 ch. | Datentyp | Daten1 | Data2 ch. | Data2 -Typ | Daten2 | ... |
Datentypen entsprechen den Richtlinien für Smart -Objekte der IPSO Alliance, die jeden Datentyp mit einer „Objekt -ID“ identifiziert. Wie unten gezeigt, wird jedoch eine Konvertierung für die Objekt -ID in ein einzelnes Byte eingebaut.
LPP_DATA_TYPE = IPSO_OBJECT_ID - 3200
Jeder Datentyp kann 1 oder mehr Bytes verwenden, um die Daten gemäß der folgenden Tabelle zu senden.
| Typ | IPSO | LPP | Verhexen | Datengröße | Datenauflösung pro Bit |
| Digitale Eingabe | 3200 | 0 | 0 | 1 | 1 |
| Digitale Ausgabe | 3201 | 1 | 1 | 1 | 1 |
| Analogeingabe | 3202 | 2 | 2 | 2 | 0,01 signiert |
| Analogausgang | 3203 | 3 | 3 | 2 | 0,01 signiert |
| Beleuchtungssensor | 3301 | 101 | 65 | 2 | 1 lux nicht signiertes MSB |
| Präsenzsensor | 3302 | 102 | 66 | 1 | 1 |
| Temperatursensor | 3303 | 103 | 67 | 2 | 0,1 ° C Signiertes MSB |
| Feuchtigkeitssensor | 3304 | 104 | 68 | 1 | 0,5 % nicht signiert |
| Beschleunigungsmesser | 3313 | 113 | 71 | 6 | 0,001 g signierte MSB pro Achse |
| Barometer | 3315 | 115 | 73 | 2 | 0,1 hPa nicht signiertes MSB |
| Gyrometer | 3334 | 134 | 86 | 6 | 0,01 °/s signierte MSB pro Achse |
| GPS -Standort | 3336 | 136 | 88 | 9 | Breitengrad: 0,0001 ° Signiertes MSB |
| Länge: 0,0001 ° Signiertes MSB | |||||
| Höhe: 0,01 Meter signiertes MSB |
| Nutzlast (Hex) | 03 67 01 10 05 67 00 ff | |
| Datenkanal | Typ | Wert |
| 03 ⇒ 3 | 67 ⇒ Temperatur | 0110 = 272 ⇒ 27,2 ° C |
| 05 ⇒ 5 | 67 ⇒ Temperatur | 00ff = 255 ⇒ 25,5 ° C |
Rahmen n
| Nutzlast (Hex) | 01 67 ff D7 | |
| Datenkanal | Typ | Wert |
| 01 ⇒ 1 | 67 ⇒ Temperatur | Ffd7 = -41 ⇒ -4.1 ° C |
Rahmen N+1
| Nutzlast (Hex) | 06 71 04 D2 FB 2E 00 00 | |
| Datenkanal | Typ | Wert |
| 06 ⇒ 6 | 71 ⇒ Beschleunigungsmesser | X: 04d2 = +1234 ⇒ +1,234g |
| Y: fb2e = -1234 ⇒ -1.234g | ||
| Z: 0000 = 0 ⇒ 0g | ||
#include 'CayenneLPP.h';
#define MAX_SIZE 200; // depends on spreading factor and frequency used
CayenneLPP Payload(MAX_SIZE);
float celsius = -4.1;
float accel[] = {1.234, -1.234, 0};
float rh = 30;
float hpa = 1014.1;
float latitude = 42.3519;
float longitude = -87.9094;
float altitude:10
int size = 0;
Payload.reset();
size = Payload.addTemperature(0, celsius);
if (size == 0) {
// not enough byte left to add the data
}
else {
// add function returned current payload size
}
Payload.addAccelerometer(1, accel[0], accel[1], accel[2]);
Payload.addRelativeHumidity(3, rh);
Payload.addBarometricPressure(4, hpa);
Payload.addGPS(5, latitude, longitude, altitude);
// Call LoRaWAN library to send the frame
LORA_SEND(Payload.getBuffer(), Payload.getSize());