Probleme de format de données envoi sigfox

Bonjour,
je reviens vers vous concernant l'envoi de données (l'eternel poids d'une ruche) vers sigfox.
j'ai eu des soucis que je croyais d'emission/reception pour finalement decouvrir que j'envoyer des données de type "25000", cela créait une erreur de data et donc pas de retour.

j'ai modifié mon poids avec 2 chiffres apres la virgule, multiplié par 100 pour l'envoi.
le poids actuel restant dans une plage de 4 chiffres (equivalent 2 octets) tout va bien.

mais pour des raisons pratiques, je voudrais obtenir en grammes et la forcement, plus de données.

j'ai trouvé un article ou la donnée est verifiée et un zero est ajouté à gauche..........mais je rame.

voici mon programme de base :

#include "HX711.h"
#include <SoftwareSerial.h>

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;

#define RxNodePin 10
#define TxNodePin 11

HX711 scale;
SoftwareSerial Sigfox =  SoftwareSerial(RxNodePin, TxNodePin);

void setup() {
  Serial.begin(9600);
  //Serial.println("HX711 Demo");

  pinMode(RxNodePin, INPUT);
  pinMode(TxNodePin, OUTPUT);
 
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
 
  scale.set_scale(35010.f);                      // cette valeur est obtenue en calibrant la balance avec des poids connus
  scale.tare();				        // remettre la balance à 0
  //scale.set_offset(485518);
}

void loop() {

  Sigfox.begin(9600);
  delay(100);
  
  float pesee = (scale.get_units(5), 3); // moyenne de 5 pesées avec 3 chiffres apres la virgule
 
  int pesee_finale = (scale.get_units())*1000; je multiplie pour me debarasser de la virgule ( conversion Kg en gr)
 
    Serial.print("Envoi de données vers le site Sigfox, j'envoie : ");
   // Serial.print(", Valeur envoyée: ");
   Serial.println(pesee_finale);
   
   Sigfox.print("AT$SF=");
   Sigfox.println(pesee_finale);

  scale.power_down();			        // met l'ADC en mode veille

  delay(900000);
  scale.power_up();
}

je n'ai pas de librairy particuliere, j'utilise le module LSM100A

mes données sont recuperées dans une application de gestion de ruches.

J'espere etre clair.

Merci pour votre retour.
Cordialement

ceci devrait être dans le setup, pas à chaque tour de loop


ceci est erroné, l'opérateur virgule évalue deux expressions et retourne la valeur de la seconde

➜ vous mettez 3 dans pesee...

mais bon vous ne l'utilisez pas puisque ensuite vous faites

  int pesee_finale = (scale.get_units())*1000; je multiplie pour me débarrasser de la virgule ( conversion Kg en gr)

et c'est ce que vous essayez d'envoyer

la doc pour AT$SF que j'ai vue dit

Envoyer un message SIGFOX: AT$SF=XXXXXXXXXXXX (Valeur Hexadécimal)
Envoyer un message SIGFOX avec trame de reception: AT$SF=XXXXXXXXXXXX,1 (Valeur Hexadécimal)

il semble y avoir 12 X (octets) dans le message car c'est le payload que peut envoyer sigfox

l'intérpreteur de commande AT de votre module attend quoi comme caractère de validation de la commande AT (rien, "\n" ou "\r\n") ?

Bonjour et merci pour le retour
Concernant la partie pesée, je prends en compte vos remarques.
mon probléme est plus le fait d'ajouter un "0" à gauche afin d'obtenir si mon poids engr est de 25760 -> 025760 car je voudrais recuoeré un poids en gr, actuellement je m'arrange pour envoyer 2576, sinon sur 5 chiffres plantage. je vais me documenter sur la mise en forme des données.

Concernant l'initialisation de sigfox dans le setup, le programme plante à cet endroit sur cette ligne, apres plusieurs test, le plantage ne s'est plus fait dans le "loop" !?

je continue à gratter, merci encore
Cordialement

C’est l’activation de la classe SoftwareSerial donc ce n’est sans doute pas la que ça plante.

Pouvez vous partager votre dessin de circuit et les alimentations et détails sur les modules utilisés ?

Bonjour, desolé pour le manque de reponse. j'ai bossé hier et j'ai resolu mon probléme.

Encore merci d'avoir pris quelques moments pour m'accompagner dans cette recherche.

Cordialement

OK bonne continuation