CayenneLPP
1.0.0
يوفر حمولة Cayenne Low Power (LPP) طريقة مريحة وسهلة لإرسال البيانات عبر شبكات LPWAN مثل Lorawan. يتوافق Cayenne LPP مع تقييد حجم الحمولة ، والذي يمكن خفضه إلى 11 بايت ، ويسمح للجهاز بإرسال بيانات مستشعر متعددة في وقت واحد.
بالإضافة إلى ذلك ، يسمح Cayenne LPP للجهاز بإرسال بيانات مستشعر مختلفة في إطارات مختلفة. من أجل القيام بذلك ، يجب أن تسبق كل بيانات مستشعر ببايت: بايت:
| 1 بايت | 1 بايت | ب بايت | 1 بايت | 1 بايت | م بايت | ... |
| Data1 ch. | نوع البيانات 1 | Data1 | Data2 ch. | نوع Data2 | Data2 | ... |
تتوافق أنواع البيانات مع إرشادات كائنات IPSO Alliance الذكية ، والتي تحدد كل نوع بيانات مع "معرف الكائن". ومع ذلك ، كما هو موضح أدناه ، يتم إجراء تحويل لتناسب معرف الكائن في بايت واحد.
LPP_DATA_TYPE = IPSO_OBJECT_ID - 3200
يمكن لكل نوع بيانات استخدام 1 بايت أو أكثر لإرسال البيانات وفقًا للجدول التالي.
| يكتب | IPSO | LPP | عرافة | حجم البيانات | حل البيانات لكل بت |
| المدخلات الرقمية | 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 لوكس غير موقعة MSB |
| مستشعر التواجد | 3302 | 102 | 66 | 1 | 1 |
| مستشعر درجة الحرارة | 3303 | 103 | 67 | 2 | 0.1 درجة مئوية موقعة MSB |
| مستشعر الرطوبة | 3304 | 104 | 68 | 1 | 0.5 ٪ غير موقعة |
| التسارع | 3313 | 113 | 71 | 6 | 0.001 جم موقعة MSB لكل محور |
| مقياس | 3315 | 115 | 73 | 2 | 0.1 HPa غير موقعة MSB |
| Gyrometer | 3334 | 134 | 86 | 6 | 0.01 °/s موقعة MSB لكل محور |
| موقع GPS | 3336 | 136 | 88 | 9 | Latitude: 0.0001 ° وقع MSB |
| خط الطول: 0.0001 درجة موقعة MSB | |||||
| الارتفاع: 0.01 متر توقيع MSB |
| حمولة (عرافة) | 03 67 01 10 05 67 00 FF | |
| قناة البيانات | يكتب | قيمة |
| 03 ⇒ 3 | 67 ⇒ درجة الحرارة | 0110 = 272 ⇒ 27.2 درجة مئوية |
| 05 ⇒ 5 | 67 ⇒ درجة الحرارة | 00FF = 255 ⇒ 25.5 درجة مئوية |
إطار ن
| حمولة (عرافة) | 01 67 FF D7 | |
| قناة البيانات | يكتب | قيمة |
| 01 ⇒ 1 | 67 ⇒ درجة الحرارة | FFD7 = -41 ⇒ -4.1 درجة مئوية |
إطار N+1
| حمولة (عرافة) | 06 71 04 D2 FB 2E 00 00 | |
| قناة البيانات | يكتب | قيمة |
| 06 ⇒ 6 | 71 ⇒ مقياس التسارع | 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());