Bonjour, je débute en arduino et j’ai fait un code qui permet d’envoyer des sms/appels téléphonique. Mon code n’est pas parfait et je vous demmande un peu d’aide pour l’améliorer :
déja je voudrais remplacer Serial.read() == ’p’ par un comme Serial.read() == ’p numero_telephone’ Au lieu d’envoyer à mon arduino la lettre p pour passer un appel, je voudrais lui envoyer p + le numero de téléphone à appeler (ma fonction send_call prendra un argument numero_telephone) Meme chose avec sms avec en plus du numero le message J’ai regardé la doc normalement je devrais utiliser la fonction readstring mais arduino m’affiche une erreur comme quoi il veut un int et pas un const char *
Je ne sais pas comment faire pour en récupérer un sms/apeels téléphonique par contre. Je voudrais afficher les sms que je reçois dans la fonction void Get_SMS(), la par contre j’ai trouvé 2-3 trucs sur le net mais j’ai rien compris a comment faire. si quelqu’un pouvais m’aiguiller.
Si vous regardez dans la très longue discussion AQUABOUN'S /// GESTION D'AQUARIUM RECIFAL il y a un moment où on a exploré l’envoie et réception de sms et analyse du contenu
reste plus qu'a trouve pour les appels vocaux
c'est plus compliqué car comme l'ai compris dans les commande at faut d'abord lancer l'alarm avec AT+CALA avant d'&accepter l'appel (je n'arrive pas à trouvé la command AT pour accepter l'appel)
Je me suis mal exprimé, oui il m'affiche bien "ring" dans la console mais ma question c'est comment accepter l'appel au moment ou il y'a le ring ?
voila ma fonction get_call qui est appeler dans le loop :
void Get_Call() {
SIM900.println("ATA"); //prendre l'appel
SIM900.print("AT+CLIP=1\r\n");
while(Serial.read() != '1') { // si j'envioie 1 je termine l'apelle
delay(100);
}
SIM900.println("ATH");*/
}
la ou je bloque c'est que je voudrais que get_call() soit appeler quand y'a le ring, la actuellement il execute ma fonctiion a chaque itération de la boucle loop et donc mon programme s’arrête à ma boucle while. Je voudrais executer ma boucle while et la commande ath qui suit uniquement si j'ai un appel.
Depuis mon smarthpone je lance l'apelle et sa sonne.
Sur mon arduino j'ai le message ring qui s'affiche mais rien ne passe, je n'arrive pas à accepter l’appelle.
Apres avoir téléverser mon code à l'arduino, je lance mon appel et la mon programme décroche bien.
Moi je voudrais mettre une condition if dans ma fonction get_call.
Je voudrais quelque chose dans ce style =>"si quelqu'un m'appelle" alors execute la fonction get call
Je ne sais pas quoi mettre pour avoir cette condition, quelqu'un le saurais t'il ?
je vous l'ai dit plus haut: vous devez écouter ce que vous dit votre GSM. Quand vous recevez RING alors vous savez que vous avez un appel et vous décrochez
cf le références de posts précédents sur comment écouter le port Série du GSM et prendre des décisions
Bonjour,
ayant eu le même problème, voici les solutions que j'ai trouvé :
1- bien définir le mode de réception des sms : GPRS.println("AT+CNMI=2,1,0,0,0"); qui permet de recevoir des sms stockés (+CMTI) en mémoire et non GPRS.println("AT+CNMI=2,2,0,0,0");
2-le nombre de sms stockés est limités, il faut donc les supprimer après réception. j'en suis là, et j'ai un peu de mal à les supprimer après réception... GPRS.println("AT+CMGD=ALL,4"); ou GPRS.println("AT+CMGD=1,3"); ou GPRS.println("AT+CMGL="ALL",0 "); mais rien ne marche...
amicalement,
Vincent