Différences entre versions de « RASP-GOF-GSM-GPRS-SerialPython »
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 == | ||
+ | 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. | ||
== Ressources == | == Ressources == |
Version du 17 novembre 2013 à 21:42
Introduction
Maintenant que nous avons réussit à utiliser le port série matériel du Raspberry Pi et et à échanger des commandes AT à l'aide de minicom, ce qui serait vraiment chouette, c'est de pouvoir communiquer avec le module SIM900 avec un programme en Python.
Cela est rendu possible grâce à la libraire Python pySerial.
pySerial
Qu'est ce que pySerial?
pySerial est un projet OpenSource disponible sur SourceForge.Net.
Ce module encapsule l’accès au port série. Il fournit un support matériel (backends) pour Python fonctionnant sur Windows, Linux, BSD (tou les système répondant à la norme POSIX), Jython and IronPython (.NET et Mono).
Ce qui est génial pour nous, c'est de pySerial peut également être installé sur Raspberry-Pi :-)
Vous pouvez accéder directement au site du projet sur pyserial.sourceforge.net.
Easy-Intall & pip
Il existe des logiciel qui facilitent grandement l'installation de librairies Pythons.
Il s'agit des utilitaires pip et/ou easy_install.
easy_install devrait déjà être présent sur votre Pi puisqu'il fait partie intégrante de la distribution de Python.
Par contre, il est préférable d'installer l'utilitaire pip, à l'aide de la commande:
sudo apt-get install python-pip
Installer pySerial
Nous allons maintenant installer la librairie.
La méthode la plus simple consiste à utiliser l'utilitaire easy_install
sudo easy_install pySerial
Si vous rencontrer des problèmes avec easy_install ou si vous préférez pip, utilisez alors la commande
sudo pip install pySerial
pySerialTest.py
Nous vous proposons maintenant de tester la communication série depuis un programme Python.
Pour se faire, nous allons utiliser une particularité du module SIM900.
Si on lui envoi une commande "AT" sans rien d'autre avec un retour à la ligne alors le module SIM900 répond "OK".
C'est une astuce utilisée pour savoir si le module SIM900 est bien sous tension ;-)
le programme pySerialTest.py
Créez le répertoire pySerialTest
cd ~ mkdir pyGsmGPRS_Test cd pyGsmGPRS_Test mkdir pySerialTest cd pySerialTest
Créez maintenant le programme pySerialTest.py à l'aide de l'éditeur nano.
nano pySerialTest.py
et ajouter le code Python suivant:
#!/usr/bin/env python # -*- coding: latin-1 -*- # Ce programme teste la connexion avec un GSM/GPRS actif # Il envoi une commande AT sur le port série à laquelle il attend une réponse OK # Voir le tutoriel MCHobby sur # http://mchobby.be/wiki/index.php?title=RASP-GOF-GSM-GPRS # Où acheter le module GSM/GPRS # http://mchobby.be/PrestaShop/product.php?id_product=63 import serial, time ser = serial.Serial( port='/dev/ttyAMA0', baudrate=19200, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=1 ) ser.open # Envoyer la commande AT ser.write( "AT\r\n" ) # 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) # Lecture de la réponse octet par octet out = '' while ser.inWaiting() > 0: out += ser.read(1) print (out) # --- Envoyer une 2ieme commande AT ser.write( "AT\r\n" ) time.sleep(0.3) out = '' while ser.inWaiting() > 0: out += ser.read(1) print out
Saisissez la commande suivante pour rendre le programme exécutable
chmod +x pySerialTest.py
Tester pySerialTest.py
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.
Ressources
- Le site du projet pyserial.sourceforge.net
Réalisé par Meurisse D. pour MCHobby.be
Traduit avec l'autorisation de Geek On Fire - Translated with the permission from Geek On Fire - [1]
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.