Bonjour à vous,
Voici mon problème. Actuellement je suis en train de comprendre le protocole GSM.
J'ai aujourd'hui réussit à envoyer un texto à un numéro et le faire de manière interactive.
Le but de mon projet est de lire des SMS et de les interprétées.
J'ai bien le code pour lire les SMS et qui lis mon SMS en 1ere position pour le supprimer derrière.
Le problème que j'ai aujourd'hui et que par exemple lorsqu'il reçois un SMS je veut qu'il regarde si le SMS == valeur.
J'ai le code pour faire un Grep du SMS mais je n'arrive pas à le mettre dans mon code de lecture de SMS et je comprend pas pourquoi.
Pouvez-vous m'aidez à comprendre svp ?
Voici mon code
// If you have a pin code please put that code before setup :
// String SIM_PIN_CODE = String( "XXXX" );
// And put that code on setup :
// sim800l.print("AT+CPIN=");
// sim800l.println( SIM_PIN_CODE );
// Import of library.
#include <SoftwareSerial.h>
SoftwareSerial sim800l(7, 8); // RX, TX
String text; // to storage the text of the sms
char inchar;
void setup() { // Start of setup.
Serial.begin(9600); // Start of modem.
sim800l.begin(9600); // Initialisation of serie communication.
sim800l.print("AT+CMGF=1\r");
delay(500);
text=sim800l.print("AT+CMGL=ALL\r");
Serial.println(text);//do nothing
}
void loop() {
if (sim800l.available())
Serial.write(sim800l.read());
if (Serial.available()) {
while(Serial.available()){
sim800l.write(Serial.read());
}
sim800l.println();
}
// put your main code here, to run repeatedly:
String ledOn = "Result command of AT+CMGR=1"; HERE IS MY PROBLEM
Serial.println(ledOn);
// substring(index) looks for the substring from the index position to the end:
if (ledOn.substring(100,102) == "on") {
Serial.println("You did it");
}
// you can also look for a substring in the middle of a string:
if (ledOn.substring(100, 103) == "off") {
Serial.println("You did it");
}
}
J'ai fait le test en mettant du texte dans la string ledOn et fait le grep dans un autre sketch cela fonctionne sans problème. Mais avec la lecture du SMS impossible.
Savez-vous pourquoi ?
J'ai tenté de mettre à String ledOn = simm800l.println("AT+CMGR=1\r"); mais cela ne compile pas.
Cela fait 3 mois que je cherche comment grep le SMS pour ensuite allumer une LED.
PS : Avec ce code en sortie sur le COM5 j'ai juste la lecture du SMS qui se fait.
Comme ce sont des tests je met la plupart du code en setup pour l'exécuter une seul fois. J'ai souvent mis en erreur le module SMS
J'ai tenté aussi plusieurs code pour SMS, tenté de prendre des bouts par ci et par là. Je pense que je dois me tromper dans la compréhension du code.
Si une âme gentil pourrais m'expliquer sa serais sympas
Ici un exemple du retour que j'ai dans la console.
Merci pour votre aide.