Ligne 66 : |
Ligne 66 : |
| et ajouter le code Python suivant: | | et ajouter le code Python suivant: |
| | | |
− | <nowiki>#!/usr/bin/env python | + | <nowiki>#!/usr/bin/python |
− | # -*- coding: latin-1 -*- | + | # -*- encoding: utf8 -*- |
| | | |
| # Ce programme teste la connexion avec un GSM/GPRS actif | | # Ce programme teste la connexion avec un GSM/GPRS actif |
Ligne 73 : |
Ligne 73 : |
| | | |
| # Voir le tutoriel MCHobby sur | | # Voir le tutoriel MCHobby sur |
− | # http://mchobby.be/wiki/index.php?title=RASP-GOF-GSM-GPRS | + | # http://wiki.mchobby.be/index.php?title=RASP-GOF-GSM-GPRS |
| # Où acheter le module GSM/GPRS | | # Où acheter le module GSM/GPRS |
− | # http://mchobby.be/PrestaShop/product.php?id_product=63 | + | # http://shop.mchobby.be/product.php?id_product=63 |
| | | |
| import serial, time | | import serial, time |
Ligne 99 : |
Ligne 99 : |
| out += ser.read(1) | | out += ser.read(1) |
| print out</nowiki> | | print out</nowiki> |
| + | |
| + | Saisissez la commande suivante pour rendre le programme exécutable |
| + | |
| + | chmod +x pySerialTest.py |
| + | |
| + | == Tester pySerialTest.py == |
| + | === Démarrer le SIM900 === |
| + | Assurez-vous que le module SIM900 soit sous tension avant de lancer le programme de test. |
| + | |
| + | En effet, vous n'obtiendrez aucune réponse si ce dernier est éteint. |
| + | |
| + | [[Fichier:RASP-GOF-GSM-GPRS-UART-02.jpg]] |
| + | |
| + | Si votre module est allumé alors: |
| + | * La led PWR: Alimentation (<font color="green">Vert</font>) est allumée. |
| + | * La led Statut: <font color="blue">Bleu</font> est allumée. |
| + | * La led Netlight: Réseau <font color="red">Rouge</font> clignote. |
| + | |
| + | [[File:GSM-Shield-02-fr.jpg|center]] |
| + | |
| + | === Démarrez pySerialTest.py === |
| + | |
| + | Démarrez maintenant votre programme de test en Python à l'aide de la commande: |
| + | |
| + | ./pySerialTest.py |
| + | |
| + | Et vous devriez voir apparaitre le résultat suivant dans votre fenêtre terminal. |
| + | |
| + | [[Fichier:RASP-GOF-GSM-GPRS-SerialPython-testResult.jpg]] |
| + | |
| + | Voici quelques informations complémentaires sur les réponses produites par le programme |
| + | |
| + | '''Pourquoi les commandes AT sont-elles visibles?''' |
| + | |
| + | Si le programme ne fait que lire les réponses, pourquoi voit-on aussi les "AT" dans les messages de réponses!?!? |
| + | |
| + | Simplement parce que le module SIM900 est configuré en ''mode echo'', ce qui implique que le module SIM900 renvoi aussi sur la sortie série toutes les commande qu'il reçoit. |
| + | |
| + | '''Beaucoup de ligne vide!!!''' |
| + | |
| + | Après le AT, il y a une ligne vide puis un OK puis une ligne vide. |
| + | C'est étonnant d'avoir autant de ligne vide. |
| + | |
| + | {{ambox-stop|text=Après une recherche scrupuleuse, on remarquera que seule le \r est utile en fin de commande. Le \r\n est interprété comme un double retour à la ligne.}} |
| + | |
| + | ser.write( "AT\r" ) |
| + | |
| + | '''C'est quoi ce caractère "?" bizarre avant le premier AT?''' |
| + | |
| + | Probablement produit par l'état indéfini/quelconque/flottant de la ligne série au moment de l'initialisation de la communication. |
| + | |
| + | Une analyse plus scrupuleuse de la réponse à l'aide du code suivant: |
| + | <nowiki>ser.write( "AT\r" ) |
| + | # Attendons un moment avant de lire la réponse |
| + | # (ce qui donne aux périphérique le temps de nous fournir une réponse) |
| + | time.sleep(0.3) |
| + | out = '' |
| + | aChar = 0 |
| + | while ser.inWaiting() > 0: |
| + | aChar = ser.read(1) |
| + | print( ord( aChar )) |
| + | out += aChar |
| + | print (out)</nowiki> |
| + | |
| + | Permet de s'apercevoir que la réponse est |
| + | |
| + | <nowiki>255 |
| + | 65 |
| + | 84 |
| + | 13 |
| + | 13 |
| + | 10 |
| + | 79 |
| + | 75 |
| + | 13 |
| + | 10 |
| + | �AT |
| + | OK |
| + | </nowiki> |
| + | |
| + | Ce caractère bizarre correspond chr(255) qui correspond à un octet/byte où tous les bits sont à 1. 255 correspond à la notation 0b11111111 |
| | | |
| == Ressources == | | == Ressources == |