Cayenne Low Power Payload (LPP) menyediakan cara yang nyaman dan mudah untuk mengirim data melalui jaringan LPWAN seperti Lorawan. Cayenne LPP sesuai dengan pembatasan ukuran payload, yang dapat diturunkan hingga 11 byte, dan memungkinkan perangkat untuk mengirim beberapa data sensor sekaligus.
Selain itu, Cayenne LPP memungkinkan perangkat untuk mengirim data sensor yang berbeda dalam frame yang berbeda. Untuk melakukan itu, setiap data sensor harus diawali dengan dua byte:
| 1 byte | 1 byte | N byte | 1 byte | 1 byte | M byte | ... |
| Data1 ch. | Jenis Data1 | Data1 | Data2 ch. | Jenis Data2 | Data2 | ... |
Jenis data sesuai dengan pedoman Objek Smart IPSO Alliance, yang mengidentifikasi setiap tipe data dengan "ID objek". Namun, seperti yang ditunjukkan di bawah ini, konversi dibuat agar sesuai dengan ID objek menjadi satu byte.
LPP_DATA_TYPE = IPSO_OBJECT_ID - 3200
Setiap tipe data dapat menggunakan 1 atau lebih byte untuk mengirim data sesuai dengan tabel berikut.
| Jenis | Ipso | LPP | Hex | Ukuran data | Resolusi data per bit |
| Input digital | 3200 | 0 | 0 | 1 | 1 |
| Output digital | 3201 | 1 | 1 | 1 | 1 |
| Input analog | 3202 | 2 | 2 | 2 | 0,01 ditandatangani |
| Output analog | 3203 | 3 | 3 | 2 | 0,01 ditandatangani |
| Sensor iluminasi | 3301 | 101 | 65 | 2 | 1 lux msb unsigned |
| Sensor Kehadiran | 3302 | 102 | 66 | 1 | 1 |
| Sensor suhu | 3303 | 103 | 67 | 2 | 0,1 ° C yang ditandatangani MSB |
| Sensor kelembaban | 3304 | 104 | 68 | 1 | 0,5 % tidak ditandatangani |
| Accelerometer | 3313 | 113 | 71 | 6 | 0,001 g MSB ditandatangani per sumbu |
| Barometer | 3315 | 115 | 73 | 2 | 0,1 hPa msb unsigned |
| Gyrometer | 3334 | 134 | 86 | 6 | 0,01 °/s yang ditandatangani MSB per sumbu |
| Lokasi GPS | 3336 | 136 | 88 | 9 | Latitude: 0,0001 ° MSB yang ditandatangani |
| Bujur: 0,0001 ° MSB yang ditandatangani | |||||
| Altitude: 0,01 meter ditandatangani MSB |
| Muatan (hex) | 03 67 01 10 05 67 00 ff | |
| Saluran data | Jenis | Nilai |
| 03 ⇒ 3 | 67 ⇒ suhu | 0110 = 272 ⇒ 27.2 ° C |
| 05 ⇒ 5 | 67 ⇒ suhu | 00ff = 255 ⇒ 25.5 ° C |
Bingkai n
| Muatan (hex) | 01 67 ff d7 | |
| Saluran data | Jenis | Nilai |
| 01 ⇒ 1 | 67 ⇒ suhu | Ffd7 = -41 ⇒ -4.1 ° C |
Bingkai n+1
| Muatan (hex) | 06 71 04 D2 FB 2E 00 00 | |
| Saluran data | Jenis | Nilai |
| 06 ⇒ 6 | 71 ⇒ Accelerometer | 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());