comment envoyer un entier (une pression) via sim900 et arduino uno

BOnjour tout le monde!
Je suis sur un projet où je dois envoyer des messages avec un shield sim900 et arduino uno. Je dois envoyer des alertes sms après que certaines valeurs de pressions aient été atteintes.
J'arrive à envoyer les alertes, mais j'aimerais aussi envoyer les valeurs des pressions obtenues à partir des capteurs de pression.
J'ai vu après recherches qu'il fallait d'abord convertir la valeur entière de la pression en in string, j'ai essayé la fonction itoa mais cela ne marche pas.
Pourriez vous m'aider s'il vous plais?

Bonjour,

Pourquoi itoa ne fonctionne pas?

  • Mets ton code entre balises
  • La conversion doit fonctionner pour peu que P1_apres_cpr_str soit correctement défini (ce qu'on ne voit pas ici). D'après ton code P1_apres_cpr semble pluto être un float.
  • S'il t'indique error sur le moniteur série c'est que l'émission du 1er sms se passe mal et non que la conversion se passe mal.

betichoum:
SI l'envoie du premier message se passait mal je ne l'aurais pas reçu néanmoins je le reçois c'est pourquoi je me suis dis que la conversion se passait mal

Dans le bout de code que tu as posté, le seul message 'error' envoyé sur la liaison série est suite à l'envoi du 1er sms.

J'ai fais en sorte que la pression ne soit plus en float mais en int et ç ane marche toujours pas

Oui, c'est normal que ca ne change rien car lors de l'appel à itoa() il y avait une conversion autmatique.
Affiche la valeur de P1_apres_cpr_str

 itoa(P1_apres_cpr, P1_apres_cpr_str, 10);
 Serial.println(P1_apres_cpr_str);

Voici mon code complet, j'ai affiché comme tu as suggéré et ça ne marche, ya surement une gaff que je fais:

Qu'est ce que ça veut dire 'ça ne marche pas?'? Ça n'affiche rien? Si c'est le cas, c'est que je te dis depuis le début in il a une erreur retournée par

  if(sms.SendSMS("+3362331XXXX", "Degradation de performance de l'UPA (blocs vis ou le niveau d'huile), intervenez le plus tot possible (moins de 7 jours)"))

et on n'entre pas dans le if{}

Ca y est ça marche, il y avait bien une erreur apres envoi du premier mais c'était dû au fait que la fonction sms.SendSMS () je n'avais précisé le numéro de téléphone, j'avais juste mis le format... Merci Kamill

avec itoa() tu convertis des entiers et tu perds les décimales. Si tu veux convertir une valeur flottante en chaine de caractères tu peux utiliser dtostrf().

Ah wehh génial, comme ça :slight_smile: je gagne en précicion!! Merci!!!

Une petite question: Est ce que c'est possible de lui envoyer un sms contenant un autre numéro et que par la suite il envoi les informations dont on a parlé non seulement à mon numéro mais à celui que je lui ai envoyé dans mon sms?

kamill:
Qu'est ce que ça veut dire 'ça ne marche pas?'? Ça n'affiche rien? Si c'est le cas, c'est que je te dis depuis le début in il a une erreur retournée par

[/quote]