CayenneLPP
1.0.0
Cayenne Low Power Payload (LPP) ให้วิธีที่สะดวกและง่ายในการส่งข้อมูลผ่านเครือข่าย LPWAN เช่น Lorawan Cayenne LPP นั้นสอดคล้องกับการ จำกัด ขนาดน้ำหนักบรรทุกซึ่งสามารถลดลงเหลือ 11 ไบต์และอนุญาตให้อุปกรณ์ส่งข้อมูลเซ็นเซอร์หลายตัวในครั้งเดียว
นอกจากนี้ Cayenne LPP ยังอนุญาตให้อุปกรณ์ส่งข้อมูลเซ็นเซอร์ที่แตกต่างกันในเฟรมที่แตกต่างกัน เพื่อที่จะทำเช่นนั้นข้อมูลเซ็นเซอร์แต่ละตัวจะต้องนำหน้าด้วยสองไบต์:
| 1 ไบต์ | 1 ไบต์ | n ไบต์ | 1 ไบต์ | 1 ไบต์ | M BYTES | - |
| data1 ch. | ประเภท data1 | data1 | Data2 Ch. | ประเภทข้อมูล 2 | data2 | - |
ประเภทข้อมูลสอดคล้องกับแนวทาง Objects Smart ของ IPSO Alliance ซึ่งระบุประเภทข้อมูลแต่ละประเภทด้วย "ID วัตถุ" อย่างไรก็ตามดังที่แสดงด้านล่างการแปลงถูกสร้างขึ้นเพื่อให้พอดีกับ ID วัตถุเป็นไบต์เดียว
LPP_DATA_TYPE = IPSO_OBJECT_ID - 3200
แต่ละประเภทข้อมูลสามารถใช้ 1 ไบต์ขึ้นไปเพื่อส่งข้อมูลตามตารางต่อไปนี้
| พิมพ์ | ipso | LPP | hex | ขนาดข้อมูล | ความละเอียดข้อมูลต่อบิต |
| อินพุตดิจิตอล | 3200 | 0 | 0 | 1 | 1 |
| เอาต์พุตดิจิตอล | 3201 | 1 | 1 | 1 | 1 |
| อินพุตอะนาล็อก | 3202 | 2 | 2 | 2 | 0.01 ลงนาม |
| เอาต์พุตอะนาล็อก | 3203 | 3 | 3 | 2 | 0.01 ลงนาม |
| เซ็นเซอร์ส่องสว่าง | 3301 | 101 | 65 | 2 | 1 Lux MSB ที่ไม่ได้ลงนาม |
| เซ็นเซอร์การแสดงตน | 3302 | 102 | 66 | 1 | 1 |
| เซ็นเซอร์อุณหภูมิ | 3303 | 103 | 67 | 2 | 0.1 ° C ที่ลงนาม MSB |
| เซ็นเซอร์ความชื้น | 3304 | 104 | 68 | 1 | 0.5 % ไม่ได้ลงนาม |
| เครื่องเร่งความเร็ว | 3313 | 113 | 71 | 6 | 0.001 g ที่ลงนาม MSB ต่อแกน |
| บารอมิเตอร์ | 3315 | 115 | 73 | 2 | 0.1 hpa msb ที่ไม่ได้ลงนาม |
| เครื่องวัดความยาว | 3334 | 134 | 86 | 6 | 0.01 °/s ที่ลงนาม MSB ต่อแกน |
| ตำแหน่ง GPS | 3336 | 136 | 88 | 9 | ละติจูด: 0.0001 °ที่ลงนาม MSB |
| ลองจิจูด: MSB ที่ลงนาม 0.0001 ° | |||||
| ระดับความสูง: 0.01 เมตรลงนาม MSB |
| น้ำหนักบรรทุก (ฐานสิบหก) | 03 67 01 10 05 67 00 ff | |
| ช่องข้อมูล | พิมพ์ | ค่า |
| 03 ⇒ 3 | 67 ⇒อุณหภูมิ | 0110 = 272 ⇒ 27.2 ° C |
| 05 ⇒ 5 | 67 ⇒อุณหภูมิ | 00ff = 255 ⇒ 25.5 ° C |
เฟรม n
| น้ำหนักบรรทุก (ฐานสิบหก) | 01 67 FF D7 | |
| ช่องข้อมูล | พิมพ์ | ค่า |
| 01 ⇒ 1 | 67 ⇒อุณหภูมิ | ffd7 = -41 ⇒ -4.1 ° C |
เฟรม n+1
| น้ำหนักบรรทุก (ฐานสิบหก) | 06 71 04 D2 FB 2E 00 00 | |
| ช่องข้อมูล | พิมพ์ | ค่า |
| 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());