[iot] formatage des données

Rémi Boulle mail at remiboulle.fr
Tue Jun 19 16:46:56 CEST 2018


Le 19/06/2018 à 06:42, yves DHENAIN via iot a écrit :
> Comment faut-il les formater ?
> Pour l'instant je travaille de chez moi avec ma passerelle bricolée 
> lopy, demain matin je pourrais passer par la vraie passerelle .


Même question pour moi :) Je suis sûr qu'il y a des spécialistes en C++ 
sur cette liste ;)

Je souhaite préparer ma payload dans l'automate LMIC.

Cette payload est à la base un flottant (issue d'un capteur OneWire 
Dallas/Maxim). Dans le code d'exemple, la payload doit être définie par :

static uint8_t mydata[] = "TEXTE";

Comment convertir ce flottant (une température) en châine ASCII ?

J'ai bien testé quelques codes, la question est classique, mais une fois 
abonné au flux MQTT de mon application et en décodant base64, je ne 
retrouve pas la valeur.

La fonction problématique est ici :

void do_send(osjob_t* j){
/******************************************************************************/
         /* payload */
/******************************************************************************/

         static uint8_t mydata[] = "RB";
         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);
         // convert t variable into ASCII representation
         // FIXME

      // 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"));
     }
     // Next TX is scheduled after TX_COMPLETE event.
}

Merci,

Rémi.



More information about the iot mailing list