[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