Cayenne Low Power Payload
Dans les réseaux à basse consommation énergétique le nombre d'octets à transmettre a un coût, il est donc d'usage de transmettre uniquement l'information utile. Mais cela peut manquer de souplesse, et c'est là où le format Cayenne améliore la gestion des données, tout en conservant un payload minimal.
Trame Cayenne LPP
Pour transmettre nos données en utilisant le format Cayenne nous allons construire une trame (suite d'octets) qui aura la forme suivante :
1 Octet | 1 Octet | n Octets | ... |
---|---|---|---|
Canal |
Type |
Donnée |
... |
- Canal : sert à identifier de façon unique un des capteurs du périphérique.
- Type : permet de qualifier la mesure et donc sa taille. (ex : 63 pour une mesure de température qui se fera sur 2 octets signés)
Pour l'ensemble des possibilités, référez-vous aux tableaux de la documentation de Cayenne qui même en anglais reste très compréhensible.
Un des gros avantages de Cayenne est donc de pouvoir transmettre sur une même application des données de nature différente ou en cas d'absence d'une mesure de transmettre la trame.
Décodage chez TTN/TTS
Chez TTN/TTS le décodage Cayenne LPP est proposé par défaut :
Ce qui vous permet d'avoir dans les Live data le décodage de vos données pour avoir une lecture directe dans le decoded payload :
Coté arduino
Voici un code qui permet de créer une trame Cayenne puis de générer le appData et le appDataSize dans le cas de l'utilisation d'un CubeCell :
#include <CayenneLPP.h>
CayenneLPP lpp(160);
static void prepareTxFrame()
{
lpp.reset();
lpp.addAnalogInput(1, voltage / 1000);
lpp.addTemperature(2, temperature);
lpp.addRelativeHumidity(3, humidity);
appDataSize = lpp.getSize();
memcpy(appData, lpp.getBuffer(), lpp.getSize());
}