Gsm SIM808

a marqué ce sujet comme résolu.

Bonjour. J’ai soucis avec la gestion d’un module gsm SIM808. je ne sais pas comment faire pour vérifier si le message a été envoyé ou pas. Dans mon code j’ai utilisé l’instruction : if (Serial1.find ("+CMGS: ")){ lcd.print ("message envoyé"); } else if (Serial1.find ("+CMS ERROR: 21")){ lcd.print ("echec d’envoie"); } Mais ça ne fonctionne pas. Merci d’avance pour votre aide

Je ne connais pas ce module mais j’ai l’impression que tu lis deux fois depuis le Serial1. Je te conseillerai plutôt de récupérer le message d’erreur et de vérifier s’il correspond à une erreur.

auto message = Serial1.readString(); // On ne lit qu'une seule fois depuis Serial1

if (message == "+CMGS: ")
    lcd.print("message envoyé");
else if (message == "+CMS ERROR: 21") // Ou CMGS?
    lcd.print("echec d'envoie");
else
    lcd.print(message.toCharArray());

Bon, tu notera que j’ai pas testé ce code et que je ne connaissais pas trop cette API donc il peut contenir des erreurs. D’ailleurs, je viens de remarquer que tu utilisais pour les messages le préfix CMGS puis CMS en cas d’erreur, ce qui me paraît aussi étrange.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte