Introduction
Cette bibliothèque inclue une seule classe : PayloadFormatter.
Elle permet de construire une trame contenant : le nombre total de trames à transmettre, le numéro de la trame transmise, le nombre de lignes de températures, le nombre de colonnes de températures, la date et l'heure,
la température extérieure, les températures de la matrice aux nombre de lignes * colonnes.
Cette trame peut ensuite être décodée via le décodeur de trame écrit en javascript disponible ici.
Ce décodeur peut être intégré à TTN.
Attention, il faut préalablement installer la bibliothèque RTClib-master dans le dossier Documents\Arduino\libraries téléchargeable ici.
Elle est nécessaire car elle définit l'objet DateTime.
Voici un code d'exemple de l'utilisation de l'objet PayloadFormatter :
#include <PayloadFormatter.h>
double temperatureExterne = 28.58;
double temperatureInternes[2][4] = {{15.21,16.18,12.45,18.42},{18.58,11.49,22.38,9.73}};
DateTime dt(2020, 5, 14, 12,39);
uint8_t *buffer(NULL);
uint16_t size(0);
void setup()
{
Serial.begin(115200);
Serial.println("Démarrage d'une session de construction de 2 trames");
formatter.startSession(2);
size = formatter.buildPayload(&buffer, &dt, temperatureExterne, temperatureInternes[0]);
Serial.print("Trame construite : ");
for(int i(0); i < size; i++)
{
buffer[i] <= 0x0F ? Serial.print("0") : Serial.print(""); Serial.print(buffer[i], HEX); Serial.print(" ");
}
Serial.printf(" de taille : %u\n Session terminee ? %s\n", size, formatter.endSession() ? "OUI" : "NON");
size = formatter.buildPayload(&buffer, &dt, temperatureExterne, temperatureInternes[1]);
Serial.print("Trame construite : ");
for(int i(0); i < size; i++)
{
buffer[i] <= 0x0F ? Serial.print("0") : Serial.print(""); Serial.print(buffer[i], HEX); Serial.print(" ");
}
Serial.printf(" de taille : %u\n Session terminee ? %s\n", size, formatter.endSession() ? "OUI" : "NON");
Serial.println("Fin de l'exemple");
}
void loop()
{
}
- Auteur
- Anatole SCHRAMM-HENRY
- Date
- 15 Jan 2020
- Copyright
- All Right Reserved