[iot] Quel type de données pour la payload en C++ ?
Rémi Boulle
mail at remiboulle.fr
Tue Jun 19 18:45:45 CEST 2018
Bonjour,
Nouveau fil pour plus de clarté
Ma fonction send est ici :
====
void do_send(osjob_t* j){
static uint8_t mydata[] = "1";
Serial.print("Requesting temperatures...");
sensors.requestTemperatures(); // Send the command to get
temperatures
Serial.println("DONE");
// After we got the temperatures, we can print them here.
// We use the function ByIndex, and as an example get the
temperature from the first sensor only.
Serial.print("Temperature for the device 1 (index 0) is: ");
float temperature = sensors.getTempCByIndex(0);
Serial.println(temperature);
mydata[0] = (uint8_t) temperature;
mydata[1] = '\0';
Serial.print("Taille de mydata: "); Serial.println(sizeof(mydata));
for(int i=0; i<4; i++){
Serial.println(mydata[i]);
}
// Prepare upstream data transmission at the next possible time.
// Check if there is not a current TX/RX job running
if (LMIC.opmode & OP_TXRXPEND) {
Serial.println(F("OP_TXRXPEND, not sending"));
} else {
// Prepare upstream data transmission at the next possible time.
LMIC_setTxData2(1, mydata, sizeof(mydata)-1, 0);
Serial.println(F("Packet queued"));
}
=====
Sur le moniteur série Arduino, je vois bien :
=====
20244653: EV_TXCOMPLETE (includes waiting for RX windows)
Requesting temperatures...DONE
Temperature for the device 1 (index 0) is: 26.19
Taille de mydata2
26 -> c'est bien la température !
0
0
0
=====
Dans la trame MQTT, abonné au flux
application/5/node/010203040506070b/#, je reçois un champ data valant :
"data":"Gg=="
Et la commande : echo "Gg==" | base64 -d ne renvoie pas 26 mais un
caractère non affichable...
Voyez-vous où est le soucis ?
Merci :)
Rémi.
More information about the iot
mailing list