[iot] formatage des données

yves DHENAIN yves.dhenain at free.fr
Tue Jun 19 17:00:05 CEST 2018


Le 19/06/2018 à 16:46, Rémi Boulle via iot a écrit :
> 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.
tu la décodes comment ?

> 
> 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.
J'ai trouvé ça,
     // Prepare upstream data transmission at the next possible time.
         //lecteure du capteur

         // Put together the data to send
     char packet[40] = "";

     // Get temperature event and print its value.
     float temperature;
     sensors_event_t event;
     bmp.getEvent(&event);
     bmp.getTemperature(&temperature);
     if (temperature) {
         char floatStr[10];
         dtostrf(temperature, 3, 2, floatStr);
         strcat(packet, "Temp: ");
         strcat(packet, floatStr);
         strcat(packet, "*C\n");
     } else {
         Serial.println("Error reading temperature!");
     }
> 
> _______________________________________________
> iot mailing list
> iot at lists.tetaneutral.net
> https://lists.tetaneutral.net/listinfo/iot

Ma question c'était plutôt tu envoies quoi, les valeurs séparées par un 
caractère spécial ?


More information about the iot mailing list