Différences entre versions de « GeekOnFire GSM/GPRS Shield FAQ »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(5 versions intermédiaires par le même utilisateur non affichées)
Ligne 17 : Ligne 17 :
  
 
La réponse est donc "oui". Notez que les messages SMS sont envoyés par GPRS (ce qui impliqué généralement un coût sensiblement plus important).
 
La réponse est donc "oui". Notez que les messages SMS sont envoyés par GPRS (ce qui impliqué généralement un coût sensiblement plus important).
 +
 +
== Compilation ==
 +
=== Conflit de compilation write(uint8_t) ===
 +
Si les messages suivant s'affichent durant la compilation
 +
C:\...libraries\NewSoftSerial/NewSoftSerial.h:73: error: conflicting return type specified for 'virtual void NewSoftSerial::write(uint8_t)'
 +
C:\...hardware\arduino\cores\arduino/Print.h:48: error:  overriding 'virtual size_t Print::write(uint8_t)'
 +
C'est parce que vous essayez de compiler une version du code NewSoftSerial sur un environnement Arduino 1.0 (ou supérieur).
 +
Depuis la version 1.0, la librairie NewSoftSerial est intégrée à l'environnement Arduino sous le nom '''SoftwareSerial'''. Vous devez juste utiliser la bonne version de l'exemple (celle correspondant à la version 1.0).
  
 
== Technique ==
 
== Technique ==
Ligne 51 : Ligne 59 :
 
'''La raison est simple et la solution tout aussi simple!''' Certaines communications peuvent engendrer une pointe de courant pouvant aller jusqu'à 2 Ampères. Si l'antenne relais est trop loin, ce sera probablement le cas. Dans pareille cas de figure, l'alimentation VIA LE PORT USB EST INSUFFISANT pour suivre la demande du GPRS Shield. Le SIM900 passe en mode de protection et s'éteint!
 
'''La raison est simple et la solution tout aussi simple!''' Certaines communications peuvent engendrer une pointe de courant pouvant aller jusqu'à 2 Ampères. Si l'antenne relais est trop loin, ce sera probablement le cas. Dans pareille cas de figure, l'alimentation VIA LE PORT USB EST INSUFFISANT pour suivre la demande du GPRS Shield. Le SIM900 passe en mode de protection et s'éteint!
  
Il suffit de munir votre Arduino d'une alimentation externe ([http://mchobby.be/PrestaShop/product.php?id_product=28 MC Hobby propose un bloc 12V externe]) et le problème est résolu (''véridique'').
+
Il suffit de munir votre Arduino d'une alimentation externe ({{pl|28|MC Hobby propose un bloc 12V externe}}) et le problème est résolu (''véridique'').
  
 
=== Comment puis-je savoir que mon shield est connecté sur un réseau mobile? ===
 
=== Comment puis-je savoir que mon shield est connecté sur un réseau mobile? ===
Ligne 74 : Ligne 82 :
 
Si vous essayez d'envoyer un message SMS à l'aide des commandes AT depuis le moniteur série d'Arduino, vous allez rencontrer un petit problème.
 
Si vous essayez d'envoyer un message SMS à l'aide des commandes AT depuis le moniteur série d'Arduino, vous allez rencontrer un petit problème.
  
En effet, la fin du texte d'un SMS est signalé à l'aide d'un CTRL + Z et seul un programme Arduino est capable d'envoyer facilement ce caractère au SIM900 (voir [[GPRS_Shield#Sending_SMS:_using_Software_UART|cet exemple]]).  
+
En effet, la fin du texte d'un SMS est signalé à l'aide d'un CTRL + Z et seul un programme Arduino est capable d'envoyer facilement ce caractère au SIM900 (voir exemple sur la page d'introduction).  
  
 
S'il est facile de produire ce caractère avec un programme Arduino (caractère 26), il n'est malheureusement pas possible de l'obtenir depuis le clavier du PC dans le Moniteur Série Arduino.
 
S'il est facile de produire ce caractère avec un programme Arduino (caractère 26), il n'est malheureusement pas possible de l'obtenir depuis le clavier du PC dans le Moniteur Série Arduino.
  
Dès que nous en aurons l'occasion, nous écrirons une nouvelle version de [[Charger_le_Sketch_sur_Arduino|Serial Relay]] acceptant une séquence d'échappement pour produire un Ctrl-Z depuis le moniteur série Arduino.   
+
Dès que nous en aurons l'occasion, nous écrirons une nouvelle version de Serial Relay (voir page d'introduction) acceptant une séquence d'échappement pour produire un Ctrl-Z depuis le moniteur série Arduino.  
   
+
 
 +
'''La nouvelle version de [[GeekOnFire GSM/GPRS Shield SerialRelay2|Serial Relay V2.0]] est maintenant disponible''' :-) <br />
 +
Avec cette nouvelle version, vous pouvez envoyer le ctrl+z depuis le moniteur serie en envoyant la séquence ~z
 +
 
 +
=== Je ne reçois pas/plus les notifications +CMTI ===
 +
Les notifications +CMTI sont des messages spontanément envoyés par le SIM900 lorsque celui-ci reçoit un SMS.<br />
 +
L'absence de la notification +CMTI est un problème que nous avons aussi rencontrés et pour lequel nous avons trouvé une solution.<br />
 +
La mémoire de votre carte SIM est limitée et sait recevoir et stocker seulement 25 messages.
 +
Lorsque cette mémoire est saturée, le module SIM900 arrête simplement réceptionner les messages (et donc plus de notifications +CMTI).<br /><br />
 +
Pour résoudre ce problème, utilisez la commande CMGL pour afficher la liste des messages stockés dans la carte SIM.
 +
  AT+CMGL="ALL" 
 +
Utilisez ensuite la commande CMGD pour effacer chacun des messages stockés.
 +
  AT+CMGD=25
 +
AT+CMGD=24
 +
AT+CMGD=23
 +
...
 +
Vous constaterez d'ailleurs que les nouveaux SMS arriverons assez vite... avant même que vous ayez terminer tous vos AT+CMGD.
 +
 
 +
 
 +
 
 
{{MCH-Accord}}
 
{{MCH-Accord}}

Version actuelle datée du 8 janvier 2014 à 21:09

Si vous avez des questions auxquelles cette rubrique ne réponds pas, merci de nous les faire parvenir à info @ MCHobby.be (en précisant qu'il s'agit d'une question relative au GPRS Shield).

Généralités

Le GPRS Shield fonctionne t'il avec tous les réseaux GSM?

Pour autant que nous sachions, c'est le cas. Le GPRS Shield est Quadri-Band (confirmé par le constructeur GeekOnFire).

A ce jour, le GPRS Shield a fonctionné avec tous les réseaux que nous avons testé. La liste de nos tests est disponible dans les articles consacrés au GPRS Shield (voir en haut a droite).

La seule condition importante est que vous disposiez d'une carte DeSimLockée (voir traduction des document de GeekOnFire).

Le GPRS Shield sait'il envoyer et recevoir des SMS?

MC Hobby à produit l'exemple SmsCommand qui permet de recevoir des commandes élémentaires par SMS.

La documentation produit également un exemple permettant d'envoyer un SMS. Il est fonctionnel, nous l'avons testé.

La réponse est donc "oui". Notez que les messages SMS sont envoyés par GPRS (ce qui impliqué généralement un coût sensiblement plus important).

Compilation

Conflit de compilation write(uint8_t)

Si les messages suivant s'affichent durant la compilation

C:\...libraries\NewSoftSerial/NewSoftSerial.h:73: error: conflicting return type specified for 'virtual void NewSoftSerial::write(uint8_t)'
C:\...hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'

C'est parce que vous essayez de compiler une version du code NewSoftSerial sur un environnement Arduino 1.0 (ou supérieur). Depuis la version 1.0, la librairie NewSoftSerial est intégrée à l'environnement Arduino sous le nom SoftwareSerial. Vous devez juste utiliser la bonne version de l'exemple (celle correspondant à la version 1.0).

Technique

Le shield GPRS n'envoi que des caractères bizarres

Avez-vous configuré votre connexion série (moniteur série Arduino) sur 19200 bauds? (8-N-1)

Le shield GPRS ne réponds pas à mes commandes AT

Avez-vous configuré votre Moniteur Serie Arduino sur "Carriage Return"?

Le shield GPRS ne s'enregistre pas sur le réseau Mobile

La Led NetLight (rouge) clignote à l'intervalle 64ms allumée/800ms éteinte. Cela correspond à "Le SIM900 n'est pas enregistré sur un réseau mobile".

Que faire?

Vérifié que votre carte SIM ne réclame pas de code PIN. Cela est identifiable à l'aide du message "+CPIN: SIM PIN" envoyé spontanément par le module SIM. Si c'est le cas, vous devez introduire votre code PIN à l'aide de la commande AT suivant:

AT+CPIN=VOTRE_CODE

C'est quoi ces caractères ÿÿÿÿÿÿÿÿ ?

Ils sont envoyés à 115000 bauds durant la séquence d'initialisation de SIM900.

Ils ne servent que lorsque le SIM900 est utilisé directement avec du matériel informatique adéquat.

Vous pouvez les simplement ignorer.

Le GPRS Shield s'éteind tout seul

Nous avons rencontré ce problème lors de nos premiers tests du GPRS Shield.

Lorsque que nous entrions notre code PIN, le shield s'enregistrait sur le réseau mobile (NetLight/rouge passant d'un clignotement rapide à un clignotement lent).

Juste après, le shield s'éteignait (y compris la LED Statut/bleu). Le module SIM900 s'était simplement coupé.

La raison est simple et la solution tout aussi simple! Certaines communications peuvent engendrer une pointe de courant pouvant aller jusqu'à 2 Ampères. Si l'antenne relais est trop loin, ce sera probablement le cas. Dans pareille cas de figure, l'alimentation VIA LE PORT USB EST INSUFFISANT pour suivre la demande du GPRS Shield. Le SIM900 passe en mode de protection et s'éteint!

Il suffit de munir votre Arduino d'une alimentation externe (MC Hobby propose un bloc 12V externe) et le problème est résolu (véridique).

Comment puis-je savoir que mon shield est connecté sur un réseau mobile?

Attendez simplement l'arrivée du message "Call Ready" envoyé spontanément par le Shield GPRS.

Technique SMS

Le message SMS n'est pas envoyé

Avez-vous vérifié que votre GPRS Shield soit connecté sur le réseau mobile? Si la carte réclame un code PIN, vous devez d'abord utiliser la commande AT+CPIN (voir section correspondante).

Les messages SMS ne sont pas lisibles

Avez-vous envoyé la commande AT permettant de passer la gestion des messages en MODE TEXTE.

Cette commande est "AT+CMGF=1"

Le contenu des messages SMS est tronqué ou inexistant

Avez-vous modifier la taille du buffer de réception de NewSoftSerial (Arduino < 1.0) ou de SoftwareSerial (Arduino >= 1.0) ?

Vous pouvez suivre les instructions décrites dans "Augmenter le buffer de NewSoftSerial".

Je n'arrive pas a terminer un Message SMS

Si vous essayez d'envoyer un message SMS à l'aide des commandes AT depuis le moniteur série d'Arduino, vous allez rencontrer un petit problème.

En effet, la fin du texte d'un SMS est signalé à l'aide d'un CTRL + Z et seul un programme Arduino est capable d'envoyer facilement ce caractère au SIM900 (voir exemple sur la page d'introduction).

S'il est facile de produire ce caractère avec un programme Arduino (caractère 26), il n'est malheureusement pas possible de l'obtenir depuis le clavier du PC dans le Moniteur Série Arduino.

Dès que nous en aurons l'occasion, nous écrirons une nouvelle version de Serial Relay (voir page d'introduction) acceptant une séquence d'échappement pour produire un Ctrl-Z depuis le moniteur série Arduino.

La nouvelle version de Serial Relay V2.0 est maintenant disponible :-)
Avec cette nouvelle version, vous pouvez envoyer le ctrl+z depuis le moniteur serie en envoyant la séquence ~z

Je ne reçois pas/plus les notifications +CMTI

Les notifications +CMTI sont des messages spontanément envoyés par le SIM900 lorsque celui-ci reçoit un SMS.
L'absence de la notification +CMTI est un problème que nous avons aussi rencontrés et pour lequel nous avons trouvé une solution.
La mémoire de votre carte SIM est limitée et sait recevoir et stocker seulement 25 messages. Lorsque cette mémoire est saturée, le module SIM900 arrête simplement réceptionner les messages (et donc plus de notifications +CMTI).

Pour résoudre ce problème, utilisez la commande CMGL pour afficher la liste des messages stockés dans la carte SIM.

AT+CMGL="ALL"   

Utilisez ensuite la commande CMGD pour effacer chacun des messages stockés.

AT+CMGD=25
AT+CMGD=24
AT+CMGD=23
...

Vous constaterez d'ailleurs que les nouveaux SMS arriverons assez vite... avant même que vous ayez terminer tous vos AT+CMGD.


Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.