bonjour j'ai besoin de vos lumieres car la.... je deviens dingue !
je vous explique, sur un arduino uno, j'ai branché un shield carte sd afin de lire, un petit fichier texte qui contient des numéros de telephone.
numero0 est un string
je recupere le numéro via ce code
myFile = SD.open("numero.txt");
for (int i=0; i<13; i++ )
{
myFile.seek(i); // se positionne à la position i
numero0=numero0+char(myFile.peek()); // affiche le caractère courant
}
je fais le test, numero0 est donc +33781000000
je veux utliser ce numero pour envoyer un sms
j'utilise donc ce code
sim808.print("AT+CMGS="");
sim808.print(numero0);
sim808.print(""");
sim808.println("");
delay(300);
sim808.print("petit coucou de l'arduino :)");
delay(200);
sim808.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(200);
sim808.println();
delay(20000);
sim808.flush();
et bin... ca ne fonctionne pas ! ca ne s'envoie pas !
pire ! si je déclare un autre string message1
et que je l'appelle "+33700000000" bah lui il fonctionne !?!
si compare message0 et message 1.. ils sont identiques ! l'un part pas l'autre !!!
je vous donne le programme complet si vous pourriez m'indiquer ou ca plante.... merciiiiiii
#include <SD.h>
#include <SoftwareSerial.h>
const int chipSelect = 10; //pin de l'Arduino reliee au CS du module SD
SoftwareSerial sim808(5, 6); // RX,TX
Sd2Card card;
SdVolume volume;
SdFile root;
File myFile;
int val = 0;
String numero0;
String numero1;
void setup()
{
sim808.begin(9600);
Serial.begin(9600);
lecture();
}
void loop() {
demo();
}
void demo() {
Serial.println("Envoie du message...");
Serial.println(numero0);
numero1 = "+33786000000";
Serial.println(numero1);
// ICI j'affiche numero0 et numero1.... ils sont identiques ! à l'écran...
sim808.print("AT+CMGS=\"");
sim808.print(numero1); // si j'envoie le numero0 ca passe pas, le numero1..ca passe ?!?
sim808.print("\"");
sim808.println("");
delay(300);
sim808.print("petit coucou de l'arduino :)");
delay(200);
sim808.println((char)26); // End AT command with a ^Z, ASCII code 26
delay(200);
sim808.println();
delay(20000);
sim808.flush();
Serial.println("Message envoyé");
}
void lecture() {
Serial.print("\nRecherche de la carte SD...");
pinMode(10, OUTPUT);
if (!card.init(SPI_HALF_SPEED, chipSelect)) // Pas de carte ?
{
Serial.println("pas de carte?");
return;
}
if (!volume.init(card)) // Carte formatée ?
{
Serial.println("La carte n'est pas formatee?");
return;
}
if (!SD.begin(chipSelect)) // Défaut initialisation ?
{
Serial.println("Echec de l'initialisation");
return;
}
Serial.println("Initialisation OK.");
myFile = SD.open("numero.txt");
if (myFile) {
Serial.println("Contenu du fichier:");
for (int i = 0; i < 13; i++ )
{
myFile.seek(i); // se positionne à la position i
numero0 = numero0 + char(myFile.peek()); // affiche le caractère courant
}
for (int i = 13; i < 27; i++ )
{
myFile.seek(i); // se positionne à la position i
numero1 = numero1 + char(myFile.peek()); // affiche le caractère courant
}
myFile.close(); // ON FERME
}
else {
Serial.println("impossible d'ouvrir le fichier pour la lecture"); // Défaut de fichier
}
}