Bonjour,
J'utilise le programme donné par la bibliothèque GSM d'Arduino pour envoyer un sms, cependant j'aimerai l'envoyer automatiquement, sans devoir appuyer sur entrée et taper manuellement le numéros et le message, j'ai essayer plusieurs variable en mettant le numéros dedans mais rien.
Voici le code :
Code:// Inclure la bibliothèque GSM #include <GSM.h> #define PINNUMBER "0000" // initialiser l'instance de bibliothèque GSM gsmAccess; GSM_SMS sms; // Fonction d'initialisation de la carte (se fait qu'une seule fois) void setup() { // initialiser les communications série et attendre l'ouverture du port: Serial.begin(9600); // Vitesse de donnée : 9600 bits/s while (!Serial) { ; // Attendre que le port série se connecte. } Serial.println("Préparation à l'envoie du message "); // Etat de la connexion boolean notConnected = true; // Démarrer le bouclier GSM while (notConnected) { if (gsmAccess.begin(PINNUMBER) == GSM_READY) { notConnected = false; } else { Serial.println("GSM non connecter"); delay(1000); } } Serial.println("GSM initialisé"); delay(1000); } // Fonction principale, elle se répète à l'infini (boucle infini) void loop() { Serial.print("Entrer le numéros de téléphone: "); char remoteNum[20]; // telephone number to send sms readSerial(remoteNum); Serial.println(remoteNum); // sms text Serial.print("Maintenant entrer le Message à envoyer: "); char txtMsg[200]; readSerial(txtMsg); Serial.println("Patientez"); Serial.println(); Serial.println("Message:"); Serial.println(txtMsg); // Envoyer le Message sms.beginSMS(remoteNum); sms.print(txtMsg); sms.endSMS(); Serial.println("\nCOMPLETE!\n"); } int readSerial(char result[]) { //Compteur qui indique combien de caractères ont déjà été ajoutés // à la chaîne, sert aussi d'indice pour écrire le caractère courant avec [] int i = 0; // boucle infinie (qui peut être interrompue par break, ou ici, par return) while (1) { while (Serial.available() > 0) { // Lit un caractère sur le port série char inChar = Serial.read(); // si c'est un saut de ligne, on termine la chaîne avec un '\0' // (le caractère '\0' est un indicateur de fin de chaîne C) // puis on quitte la fonction avec return if (inChar == '\n') { result[i] = '\0'; Serial.flush();// Ne sert à rien depuis Arduino 1.0 pour la lecture. // flush() sert à attendre que les données dans le // buffer d'écriture soient envoyées sur le port série return 0; } // Tous les autres caractères sont ajoutés à la chaîne // en incrémantant le compteur. // Sauf le caractère retour chariot qui est juste ignoré. // ('\r' fait généralement partie de la séquence "\r\n" qui indique la // fin d'une ligne) if (inChar != '\r') { result[i] = inChar; i++; } } } }
-----