Go Down

Topic: [partage]Transmetteur d'alarme téléphonique version 2.0 (Read 13423 times) previous topic - next topic

matth122

je reviens vers vous car je sèche...
mon shield fonctionne bien s'il est sur l'arduino mais pas lorsque je le déporte (sans doute un pb de cablage).
De quel shield tu parle , le mp3 ou le gsm
Pour le gsm une alime, les deux fils RX et TX et un fil sur la broche 8(du gsm) pour l'allumer devrais suffir.

Ne sachant pas ce que tu utilise comme shield mp3 je ne peux pas t'aider plus .


matth122

tu trouvera toutes les infos sur le shield ici https://learn.sparkfun.com/tutorials/mp3-player-shield-hookup

Les broches a utilisé sont 2,6,7,8,9,11,12,13  sans oublier l'alime GND et +5v

moacc95

Bonjour merci pour les réponses.
Pour info mon shield prend bien en charge le DTMF.

matth122

De rien .
Tu a utilisé quel sketch pour tester le dtmf ?

moacc95

Voilà,
je t'ai mis le script. Assures toi bien d'avoir la librairie GSMSHIELD.

http://www.upsilonaudio.com/arduino/sim900-sim908-bibliotheque-arduino/partie-4-gestion-appels/

moacc95

Salut,
j'ai réussi à faire fonctionner le programme (pas le shield MP3 pour le moment car pas besoin). Maintenant je cherche à utiliser le DTMF mais j'avoue que je ne comprends pas trop le prog de base pour le réadapter.

matth122

Mon shield n'étant pas compatible je ne me suis pas penché sur la question !

le sketche donné plus haut ne fonctionne pas,( je l'avais déjà essayé en fait ).
 
il faut faire attention car les librairies du gsm et du mp3 ne sont pas compatibles entre elle, (il y a surement une modification a faire, mais j'ai pas trouvé), c'est pourquoi j'ai fait mon sketch que avec des commande AT  pour le gsm du coup il faut addapter en fonction pour le DTMF

avec la librairie je pense que tout ce passe la
 
while(stat==CALL_ACTIVE_VOICE) {
          for (int k=0; k<100; k++) {
               DTMF_char=call.DetDTMF();
               if(DTMF_char!='-')
                    Serial.println(DTMF_char);
          }

il suffi d'éditer la librairie pour voir ce qui est fait avec.

après je pourrais pas plus t'aider je suis débutant aussi  dans le domaine. 



moacc95

Bonsoir,
j'ai un petit problème avec a fonction decroche(). voila ce que j'obtiens lorsque je décroche. comment dois-je interpréter ça ?
+COLP: "++336xxxxxxx",145,"",0,""

OK

AT+CLCC?

+CLCC: 0

OK

AT+CLCC?

+CLCC: 0

OK

AT+CLCC?

+CLCC: 0

OK

NO CARRIER

auriez-vous une idée ?


matth122

Bonjour,

Tu peut détailler un peut ton problème, car la comme ça a froid je vois pas trop
Quel commande tu envoie pour obtenir ces réponses ?
Quand tu décroche l'arduino exécute t'il bien la suite du programme ?

moacc95

Bonjour, merci pour la reponse. voici mon code en detail

while(envoyer_Commande_AT("AT+CLCC?", "+CLCC: 1,0,0,0,0", 5000) == 0);
      Serial.println("appel en cours");
      delay(500);
   if (envoyer_Commande_AT("AT+CLCC?", "OK", 1000) == 1)
    {
      Serial.println(" telephone decroche");
 
"envoyer_commande_AT" dépend d'une autre fonction que j'ai pioché dans ton programme.
Les retour que j'ai sont des erreur pour la plupart. j'ai essayé avec la commande AT+CPAS qui me permet aussi de voir l'état de la ligne mais j'ai des retour d'erreur.

matth122

En effet "envoyer_commande_AT" dépend d'une autre fonction qui est vers la fin du programme sur la V1 et sur la V2 vers la ligne 717
en fait il ne suffit pas d'envoyer une comande AT il faut aussi pourvoir lire la réponse que donne le module gsm (sim900), et l'interpréter c'est ce que fait la fonction. Je dirais que les deux sont indissociable tel que c'est programmé.

j'avais pas mal cherché au début pour savoir comment détecter le décroché, il y a trois commande AT qui se ressemble mais la CLCC est je pense la plus approprié.( en tout cas dans mon programme elle fonctionne tres bien ) 

tu parle d'erreur mais quelle sont t'elle?


 

moacc95

alors, lorsqu'on utilise "ATD" on devrait avoir un retour du style "no carrier" en cas de non réponse ou bien "ok" en cas de téléphone décroché. je n'ai rien.
Pour le CLCC, j'obtiens +CLCC : 0 et OK en boucle.

matth122

ATD ne se préoccupe pas de savoir si le téléphone a été décroché , ça envoie au module "l'ordre" d'appeler un numéro c'est tout. Regarde dans le manuel des commande AT ces assez instructif même quand on y connais rien
quand tu envoie une commande clcc  tu a comme réponse ok lors du décroché, ce que tu semble avoir , si tu la en boucle c'est que ta commande  continue à être envoyé, tu a bien lu dans le moniteur la réponse mais le programme lui ne la pas lu et continue sa demmande

(envoyer_Commande_AT("AT+CLCC?", "+CLCC: 1,0,0,0,0", 5000))== 0) ce code envoie la commande AT (AT+CLCC?)  et demmande que la réponse soit  1,0,0,0,0 correspondant au décroché tu recevra ok en réponse, 5000 est le délais d'attente de la réponse

   if (envoyer_Commande_AT("AT+CLCC?", "OK", 1000) == 1) ce code demande si la réponse est ok il continue le programme dans mon sketch ça met en route le mp3

 Tous ces code ne servent à rien si tu écris pas un code pour lire les réponses et les interpréter
Dans mon sketche c'est la rubrique "mise en mémoire commande AT " 

moacc95

J'ai pourtant lu que sa retourné un connect ou no carrier

Go Up