Tutoriel connexion GPRS avec Arduino
Tutoriel connexion GPRS avec Arduino
...
Le bouclier GPRS vous permet d’utiliser le réseau de téléphonie mobile GSM pour recevoir des données d’un lieu distant. Le bouclier vous permet d'y parvenir via l'une des trois méthodes suivantes:
- Service de messages courts
- L'audio
- GPRS
Le bouclier GPRS est compatible avec toutes les cartes ayant le même facteur de forme (et brochage) qu'une carte Arduino standard. Le bouclier GPRS est configuré et contrôlé via son UART à l'aide de simples commandes AT. Basé sur le module SIM900 de SIMCOM, le bouclier GPRS est comme un téléphone cellulaire sans le
Interface Homme-machine. Outre les fonctions de communication, le bouclier GPRS est doté de 12 GPIO, de 2 PWM et d’un CAN.
Nouveautés de la version 1.0 à la version 1.2
Le "Soft-Switch" a été ajouté de GPRS Shield Ver1.0 à Ver1.2:
Vous pouvez ouvrir / fermer le bouclier en appuyant sur le bouton de l’interrupteur ou dans votre micrologiciel.
Au moment de l'activation / de la désactivation, une impulsion> 1 s était nécessaire pour déclencher la canalisation, et un délai> 3,2 s était nécessaire pour que la synchronisation soit stable. ajoutez le code suivant dans votre firmware pour allumer / éteindre le bouclier sans appuyer sur le bouton:
pinMode (9, OUTPUT); digitalWrite (9, FAIBLE); délai (1000); digitalWrite (9, HAUT); retard (2500); digitalWrite (9, FAIBLE); retard (3500);
Fonctionnalités:
- Basé sur le module SIM900 de SIMCom
- Quad-Band 850/900/1800/1900 MHz - fonctionnerait sur les réseaux GSM dans tous les pays du monde.
- GPRS multi-slot classe 10/8
- station mobile GPRS classe B
- Conforme à la phase GSM 2/2 +
- Classe 4 (2 W à 850/900 MHz)
- Classe 1 (1 W à 1800 / 1900MHz)
- Contrôle via les commandes AT - Commandes standard: GSM 07.07 & 07.05 | Commandes améliorées: € ¢ Commandes AT de SIMCOM.
- Short Message Service - pour pouvoir envoyer de petites quantités de données sur le réseau (ASCII ou hexadécimal brut).
- Pile TCP / UDP intégrée - vous permet de télécharger des données sur un serveur Web.
- Prises Haut-parleur et Casque - pour pouvoir envoyer des signaux DTMF ou lire un enregistrement comme un répondeur.
- Porte-carte SIM et antenne GSM - présents à bord.
- 12 GPIO, 2 PWM et un CAN (logique 2,8 volts) - pour augmenter votre Arduino.
- Faible consommation d'énergie - 1.5mA (mode veille)
- Plage de température industrielle - -40 ° C à +85 ° C
Idées d'application:
- Applications M2M (Machine 2 Machine) - Pour transférer des données de contrôle par SMS ou GPRS entre deux machines situées dans deux usines différentes.
- Télécommande des appareils - Envoyez des SMS lorsque vous êtes au bureau pour allumer ou éteindre votre lave-linge à la maison.
- Station météo distante ou réseau de capteurs sans fil - Associez-le à Seeeduino Stalker et créez un nœud de capteur capable de transférer des données de capteur (telles que celles d'une station météo - température, humidité, etc.) vers un serveur Web (tel que pachube.com).
- Système de réponse vocale interactif - Associez le blindage GPRS à un décodeur MP3 et à un décodeur DTMF (en plus d'un Arduino) pour créer un système de réponse vocale interactif (IVRS).
- Système de suivi des véhicules - Associez le bouclier GPRS à un module Arduino et GPS, installez-le dans votre voiture et publiez votre position en direct sur Internet. Peut être utilisé comme alarme antivol.
Précautions
- Assurez-vous que votre carte SIM est déverrouillée.
- Le produit est fourni en l'état sans enveloppe isolante. Veuillez observer les précautions contre les décharges électrostatiques, spécialement par temps sec (faible humidité).
- Le réglage par défaut de l’UART pour le blindage GPRS est 19200 bps 8-N-1. (Peut être changé en utilisant les commandes AT).
- Lorsque vous utilisez GPRS Shield avec Seeeduino Stalker v2.0, n'oubliez pas de démonter OK_READ.
Cavalier (c'est-à-dire l'ouvrir). Cela déconnectera la broche OK du circuit intégré du chargeur de batterie du broche numérique 7 du microcontrôleur et permettra ainsi une communication sans entrave avec le bouclier GPRS à l'aide de la bibliothèque NewSoftSerial.
Schémas
Usage
...
Mise en route - Amusement avec les commandes AT
Le GPRSShield est livré avec tous les accessoires dont vous auriez besoin pour commencer à envoyer des données sur le réseau GSM, à l'exception bien sûr d'une carte Arduino et d'une carte SIM GSM avec un abonnement de plan de données actif. Si vous souhaitez faire des appels vocaux, vous aurez également besoin d'un casque avec microphone.
Étape 1: création d'une configuration de test pour le bouclier GPRS
Donc, vous avez reçu votre bouclier GPRS, quelle serait la première chose que vous voudriez en faire? Envoyer un SMS sur votre téléphone portable? ou appeler quelqu'un (casque requis)? Vous pouvez faire tout cela en parlant au bouclier GPRS à l'aide des commandes AT, un langage spécial qu'il comprend. Les commandes AT sont de simples commandes textuelles envoyées au modem GPRS via son interface série (UART). Vous pouvez donc utiliser pratiquement n'importe quel logiciel de terminal série pour communiquer avec ce dernier: HyperTerminal intégré de Window, Serial Monitor ou Bray ++ de Arduino IDE.
Pour expérimenter avec les commandes AT, vous avez besoin d’un moyen d’allumer et de communiquer avec votre bouclier GPRS. La meilleure façon de faire cela en utilisant une carte Arduino Duemilanove est décrite ci-dessous.
Les mêmes étapes sont applicables pour Seeeduino ou Seeeduino Stalker.
- Installez la carte SIM dans votre bouclier GPRS. Vous n'avez besoin d'un plan de données actif si vous souhaitez utiliser le GPRS. Si vous souhaitez uniquement envoyer des messages texte (SMS) ou émettre des appels vocaux, cela n’est pas nécessaire.
- Connectez l'antenne au blindage GPRS. Reportez-vous aux notes de connexion ci-dessous.
- Prenez une carte Arduino Duemilanove (ou Seeeduino) et installez le bouclier GPRS dessus.
- Assurez-vous que les cavaliers GPRS_TX et GPRS_RX du bouclier GPRS sont montés en position SWSerial. Nous voulons que GPRS_TX soit connecté à D7 (RX) et GPRS_RX à D8 (TX).
- Connectez l’Arduino Duemilanove (ou Seeeduino) à votre ordinateur à l’aide d’un câble USB.
- Le microcontrôleur ATmega328P à bord de Duemilanove ne possède qu'un seul UART utilisé pour la communication avec le PC. Ce dont nous avons besoin, c’est d’un Arduino Sketch fonctionnant à l’intérieur de l’ATmega328P, qui émule un deuxième port série (UART) à l’aide d’un logiciel sur les broches numériques D8 et D7 et qui applique toutes les communications entre ce deuxième port série logiciel et le port série matériel. En faisant cela, toutes les données provenant de l’ordinateur (connecté au UART matériel) seraient relayées telles quelles au Bouclier GPRS (connecté au logiciel UART) et nous serions en mesure d’émettre des commandes AT pour contrôler le Bouclier GPRS. Le schéma de principe décrivant ce schéma est présenté ci-dessous.
Pour développer un tel programme, nous avons besoin de l’installation d’une nouvelle bibliothèque Arduino - NewSoftSerial. Ceci utilise le TIMER sur puce de ATmega328P en mode interruption pour émuler un deuxième port série. La bibliothèque peut être obtenue ici. Ce serait un fichier ZIP portant un nom tel que NewSoftSerial10c.zip. Extrayez le dossier NewSoftSerial à partir de ce fichier .zip et installez-le en le plaçant dans votre dossier d’installation Arduino, qui devrait ressembler à "C: \ arduino-0022 \ libraries". Assurez-vous de redémarrer l'IDE Arduino après la bibliothèque.
- Une fois la bibliothèque installée, créez une nouvelle esquisse avec le code suivant et téléchargez-la sur votre carte Arduino.
// Relais série - Arduino corrigera une
// liaison série entre l'ordinateur et le bouclier GPRS
// à 19200 bps 8-N-1
// l'ordinateur est connecté au matériel UART
// GPRS Shield est connecté au logiciel UART
#include <NewSoftSerial.h>
NewSoftSerial mySerial (7, 8);
void setup()
{
mySerial.begin (19200); // le débit en bauds GPRS
Serial.begin (19200); // le débit en bauds GPRS
}
boucle vide ()
{if (Serial.available ())
{
mySerial.print ((unsigned char) Serial.read ());
}
else if (mySerial.available ())
{
Serial.print ((unsigned char) mySerial.read ());
}
}
- Après avoir téléchargé l'esquisse sur la carte Arduino, appuyez sur le bouton d'alimentation du bouclier GPRS pour l'activer. Attendez une demi-minute pour que le bouclier GPRS se connecte au réseau (le voyant D1 commencera à clignoter).
- Lancez votre logiciel de terminal série préféré, choisissez le port COM pour Arduino, configurez-le pour fonctionner à
19200 8-N-1 et tapez et envoyez "AT" (sans les guillemets) suivi du retour chariot (touche Entrée) à la carte Arduino. Le bouclier GPRS devrait répondre en renvoyant un message "OK". Cela signifie que vous avez réussi à configurer votre bouclier GPRS et que vous pouvez maintenant jouer avec diverses commandes AT.
Étape 2: Envoi d'un message texte (SMS)
Maintenant que notre configuration de test est prête, jouons avec quelques commandes AT avant de passer à la programmation de l'Arduino pour qu'il le fasse tout seul, au lieu de le faire manuellement. Pour commencer, essayons d'envoyer un SMS
- Créez la configuration comme décrit à l'étape 1 ci-dessus.
- Par le biais de votre logiciel de terminal série, envoyez AT + CMGF = 1 et appuyez sur la touche Entrée. Le bouclier GPRS peut envoyer des SMS dans deux modes: le mode texte et le mode PDU (ou binaire). Puisque nous voulons envoyer un message lisible par l'homme, nous allons sélectionner le mode texte. Le bouclier GPRS répondra par un message OK.
- Envoyez AT + CMGS = "+ 918446043032" et appuyez sur la touche Entrée (incluez les guillemets). Cela ordonnera au bouclier GPRS de commencer à accepter le texte d'un nouveau message destiné au numéro de téléphone spécifié (remplacez le numéro par le numéro du téléphone cible). Le bouclier GPRS envoie un> signalant que vous commencez à taper le message. Veuillez noter que les numéros de téléphone spécifiés comme paramètres dans toute commande AT doivent être au format E.123.
- Commencez à taper votre message et lorsque vous avez terminé, appuyez sur les touches Ctrl + Z de votre clavier lorsque le curseur se trouve à la fin du message. Le modem acceptera le message et répondra par OK. Quelques instants plus tard, le message doit être reçu sur le combiné dont vous avez spécifié le numéro.
REMARQUE: Si, malgré les étapes décrites ci-dessus, vous ne pouvez pas recevoir le message sur le combiné cible, il se peut que vous deviez définir le numéro du centre de messagerie SMS. Envoyez la commande AT + CSCA = "+ 919032055002" et appuyez sur la touche Entrée. Envoyez cette commande entre les commandes AT + CMGF et AT + CMGS. Remplacez le numéro de téléphone spécifié dans la commande ci-dessus par le numéro de centre SMS de votre fournisseur de service GSM. Le numéro du centre de messagerie est spécifique à chaque fournisseur de service (par exemple, +919032055002 est le numéro du centre de messagerie de Tata DoCoMo, Pune, Inde). Vous pouvez obtenir le numéro du centre de messagerie en appelant le centre de service à la clientèle du fournisseur de service GSM et en le lui demandant.
Étape 3: Explorer plus avant
Maintenant que vous avez une idée du fonctionnement des commandes AT, vous pouvez en essayer d’autres avant de commencer à développer des croquis pour que Arduino utilise le bouclier GPRS. Cela implique la création d'un croquis pour l'envoi de la même séquence de commandes AT (en votre nom) par le port série au bouclier GPRS afin d'effectuer la même tâche d'envoi et de SMS, de passer un appel ou d'envoyer des données via une connexion GPRS. Vous pouvez consulter le manuel de référence des commandes AT pour déterminer la séquence de commandes requise pour effectuer une tâche particulière. Si, lors du développement d'un croquis Arduino, vous vous rendez compte que le bouclier GPRS n'est pas ce que vous espériez, alors vous devrez vérifier vos commandes AT et leur séquence. Pour ce faire, rechargez l'esquisse de relais série jointe ci-dessus dans la section Mise en route dans ATmega328P, tapez les commandes AT manuellement et vérifiez le résultat. Les réponses envoyées par le bouclier GPRS vous aideront à déboguer la séquence de commandes AT.
REMARQUE: Un programme C exécutant la même tâche que l'esquisse de relais série présentée ci-dessus a également été développé et joint: Fichier: Relais Softuart atmega328p.zip. Le programme a été développé sur un PC Windows. AVRStudio4 a été utilisé comme IDE et WinAVR a été utilisé comme compilateur. Le fichier ZIP contient un projet AVRStudio4. Le compilateur C (WinAVR) générera un Intel Hex (.hex). Pour charger ce fichier .hex sur une carte Arduino en dehors de l’EDI Arduino, il faudrait un programme capable de communiquer avec le chargeur de démarrage des cartes Arduino. XLoader est un programme fonctionnant sous Windows pouvant télécharger des fichiers .hex générés par divers compilateurs sur une carte Arduino.