Problème envoi de caractère

Bonjour

Mon sketch en développement transmet sur mon gsm Androïd la T° mesurée dans une pièce
Il fonctionne bien mais quand j'essaye d'envoyer ceci : Temperature = 25 °C , j'obtiens seulement : Température = 25
Si je remplace le °C par un autre caractère comme RC il s'affiche bien sur mon gsm RC
Pourquoi le caractère ° pose-t-il problème?

mon sketch :

void loop() {
  // Lecture des données
  float temperatureEnCelsius = dht.readTemperature();  // Lecture de la température, exprimée en degrés Celsius

  mySerial.println("AT+CMGF=1");                   //Sets the GSM Module in Text Mode
  delay(1000);                                     // Delay of 1 second
  mySerial.println("AT+CMGS=\"+32xxxx\"\r");  // Replace x with mobile number
  delay(1000);
  mySerial.print("Temperature = ");
  mySerial.print(temperatureEnCelsius);
  mySerial.print(" °C");  // The SMS text you want to send
  delay(100);
  mySerial.println((char)26);  // ASCII code of CTRL+Z for saying the end of sms to  the module
  delay(5000);

  // Temporisation de 2 secondes (pour rappel : il ne faut pas essayer de faire plus d'1 lecture toutes les 2 secondes, avec le DHT22, selon le fabricant)
  delay(2000);
}

Comment recevez vous le texte du côté android ?
Le symbole ° est envoyé en encodage UTF-8, il faut que le champ de réception soit capable de décoder ce glyph (Le code UTF-8 du caractère ° est codé sur 2 octets 0xC2 0xB0).

Edit: je viens de voir que c’est dans un SMS, il faut utiliser l’encodage spécial des SMS. J’avais un vieux post sur le sujet - faudrait le retrouver. Suivant votre module il faudra passer peut être en mode PDU / UCS2.

J’ai retrouvé mon vieux post - lisez la discussion (un peu difficile)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.