Utiliser un shield GSM/GPRS sur un ordinateur
Ce week-end, nous voulions tenter d'utiliser notre shield GPRS directement depuis un ordinateur... histoire de voir si nous pourrions ensuite l'utiliser avec un Raspberry Pi.
Nos premiers résultats avec PC sont probant... et donc, voici un nouveau tutoriel :-)
Nous avons utiliser un câble convertisseur USB vers TTL série pour piloter le SIM900 à partir d'un ordinateur en nous connectant directement sur l'UART du SIM900.
Si vous vous posez des questions au sujet du shield GPRS/GSM de GeekOnFire, notre tutoriel Arduino pour ce shield GSM/GPRS regorge d'informations utiles concernant ce module, les commandes AT, etc. Pensez à le consulter, il répondra probablement à l'une de vos questions.
Branchement
Voici un extrait de notre tutoriel présentant le raccordement sur l'UART
Ne reste plus qu'à installer les pilotes du convertisseur USB vers Série TLL (installation requise pour Mac et Windonws) et identifier le port série (voir tuto pour linux).
Sous Linux/Debian/Ubuntu/Raspberry, le convertisseur est reconnu nativement, ce qui facilite vraiment la tâche.
Tester la communication
de ce côté la, le plus simple est encore d'utiliser le logiciel Multi-Platforme PuTTY.
Une fois configurer correctement et le GPRS allumé, la communication est établie directement avec l'UART de SIM900.
Il ne vous reste plus qu'a envoyer des commandes AT (voir nos ressources) directement depuis votre clavier... et cela fonctionne
En Python
Maintenant que nous savons communiquer directement avec le SIM900 (voir aussi notre exemple "A la main" pour tester quelques commandes), ce qui serait vraiment bien, c'est de pouvoir le faire à l'aide d'un programme.
Comme nous sommes orienté Open-Source et Raspberry, nous avons opté d’emblée pour Python.
Voici donc un programme rudimentaire (n'oubliez pas de déconnecter PuTTY) qui envoi un AT (soit un "SIM900, es tu la?") à laquelle le GPRS répond "OK"... puisqu'il est là :-)
Ce qui produit la réponse suivante une fois le programme Python démarré
Et pour Raspberry-Pi?
Puisque cela fonctionne parfaitement sur notre système Linux (Linux Mint, dérivé d'Ubuntu), nous avons fait quelques tests avec notre Raspberry.
Tous les éléments du tutoriel fonctionnent parfaitement sur notre Pi. Cependant nous avons rencontré un problème de stabilité dans l'environnement graphique.
La raison:
le module SIM900 communique à 19200 bauds sur le port USB... c'est rapide, trop même pour Raspberry qui dispose d'une faiblesse au niveau de sa stack USB (voir notre article consacré à ce point).
Conséquences:
blocage USB, blocage Ethernet (qui utilise aussi la stack USB) et blocage du clavier (lui aussi en USB).
Nous avons donc deux options à tester:
cet article ne présente uniquement quelques éléments clés de notre tuto... vous trouverez tout le teste sur notre wiki.
MCHobby investi du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Où acheter
Pour réaliser ce tutoriel et l'utiliser sur votre ordinateur, nous avons utilisé le matériel suivant:
Nos premiers résultats avec PC sont probant... et donc, voici un nouveau tutoriel :-)
Utilisation d'un shield GPRS sur un PC - Tutoriel MCHobby |
Si vous vous posez des questions au sujet du shield GPRS/GSM de GeekOnFire, notre tutoriel Arduino pour ce shield GSM/GPRS regorge d'informations utiles concernant ce module, les commandes AT, etc. Pensez à le consulter, il répondra probablement à l'une de vos questions.
Branchement
Voici un extrait de notre tutoriel présentant le raccordement sur l'UART
connexion directs sur l'UART du GSM/GPRS de GeekOnFire |
Sous Linux/Debian/Ubuntu/Raspberry, le convertisseur est reconnu nativement, ce qui facilite vraiment la tâche.
Tester la communication
de ce côté la, le plus simple est encore d'utiliser le logiciel Multi-Platforme PuTTY.
Une fois configurer correctement et le GPRS allumé, la communication est établie directement avec l'UART de SIM900.
Configuration du canal de communication dans PuTTY |
Il ne vous reste plus qu'a envoyer des commandes AT (voir nos ressources) directement depuis votre clavier... et cela fonctionne
Console Putty - réponse du SIM900 |
Maintenant que nous savons communiquer directement avec le SIM900 (voir aussi notre exemple "A la main" pour tester quelques commandes), ce qui serait vraiment bien, c'est de pouvoir le faire à l'aide d'un programme.
Comme nous sommes orienté Open-Source et Raspberry, nous avons opté d’emblée pour Python.
Voici donc un programme rudimentaire (n'oubliez pas de déconnecter PuTTY) qui envoi un AT (soit un "SIM900, es tu la?") à laquelle le GPRS répond "OK"... puisqu'il est là :-)
#!/usr/bin/env python # -*- coding: utf-8 -*- # # FirstRead.py - Programme rudimentaire pour tester la communication # avec le SIM900 en Python # # Envoi une commande AT sur le SIM900 et attend une réponse (entre # autre le OK). # # Le module SIM900 doit donc être actif, le plus simple est de le # préparer et l'initialiser avec PuTTY puis de déconnecter Putty # pour permettre a ce charmant programme de faire ses essai. # # Copyright 2013 Meurisse D. pour MCHobby.be # MCHobby - vente de kit et composant pour Arduino/Raspberry Pi, etc #CC-BY-SA # import serial,time def main(): ser = serial.Serial( port = '/dev/ttyUSB0', \ baudrate = 19200, \ parity=serial.PARITY_NONE, \ stopbits=serial.STOPBITS_ONE, \ bytesize = serial.EIGHTBITS, \ timeout = 0.100 ) ser.open() print( "connected to: " + ser.portstr ) ser.write( "AT"+chr(13) ) line = ser.readline() print( line ) line = ser.readline() print( line ) line = ser.readline() print( line ) line = ser.readline() print( line ) line = ser.readline() print( line ) return 0 if __name__ == '__main__': main()
Ce qui produit la réponse suivante une fois le programme Python démarré
connected to: /dev/ttyUSB0 AT OKBon, il n'y a pas de quoi fouetter un chat... mais avec cela, nous savons que nous pouvons nous lancer dans l'aventure en toute sérénité.
Et pour Raspberry-Pi?
Puisque cela fonctionne parfaitement sur notre système Linux (Linux Mint, dérivé d'Ubuntu), nous avons fait quelques tests avec notre Raspberry.
Tous les éléments du tutoriel fonctionnent parfaitement sur notre Pi. Cependant nous avons rencontré un problème de stabilité dans l'environnement graphique.
La raison:
le module SIM900 communique à 19200 bauds sur le port USB... c'est rapide, trop même pour Raspberry qui dispose d'une faiblesse au niveau de sa stack USB (voir notre article consacré à ce point).
Conséquences:
blocage USB, blocage Ethernet (qui utilise aussi la stack USB) et blocage du clavier (lui aussi en USB).
Nous avons donc deux options à tester:
- Ralentir le débit du SIM à 9600 bauds... pour moins stresser la stack USB du PI
- Passer en communication matérielle série directement sur le GPIO du Raspberry PI (UART SIM900 <--> UART Raspberry PI) en espérant qu'il tienne mieux le coup.
cet article ne présente uniquement quelques éléments clés de notre tuto... vous trouverez tout le teste sur notre wiki.
MCHobby investi du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Où acheter
Pour réaliser ce tutoriel et l'utiliser sur votre ordinateur, nous avons utilisé le matériel suivant:
- Un shield GSM/GPRS
- Un câble convertisseur USB vers TTL Série pour permettre de dialoguer directement avec le port série de l'UART en utilisant un port USB du PC.
- Une alimentation stabilisée de 5 Volts car il faut bien alimenter la logique et l'étage de transmission.
Nous avons utilisé une alimentation de 5V 2Amp avec une capacité polarisée de additionnelle de 47uF - Un bornier adaptateur...si vous voulez préserver la fiche de votre alimentation.
- Quelques PinHeader droit (voir préparation du GPRS Shield ci-dessous)
Écrire un commentaire