Le module GSM est utilisé dans de nombreux appareils de communication basés sur la technologie GSM (Global System for Mobile Communications). Il est utilisé pour interagir avec le réseau GSM à l'aide d'un ordinateur. Le module GSM ne comprend que les commandes AT et peut répondre en conséquence. La commande la plus basique est «AT», si le GSM répond OK alors il fonctionne bien sinon il répond par «ERREUR». Il existe diverses commandes AT comme ATA pour répondre à un appel, ATD pour composer un appel, AT + CMGR pour lire le message, AT + CMGS pour envoyer les sms, etc. Les commandes AT doivent être suivies par Carriage return ie \ r (0D en hexadécimal), comme «AT + CMGS \ r». Nous pouvons utiliser le module GSM en utilisant ces commandes.
Interfaçage GSM avec 8051
Au lieu d'utiliser un PC, nous pouvons utiliser des microcontrôleurs pour interagir avec le module GSM et l'écran LCD pour obtenir la réponse du module GSM. Nous allons donc interfacer le GSM avec un microcontrôleur 8051 (AT89S52). Il est très facile d'interfacer GSM avec 8051, il nous suffit d'envoyer des commandes AT depuis le microcontrôleur et de recevoir une réponse du GSM et de l'afficher sur l'écran LCD. Nous pouvons utiliser le port série du microcontrôleur pour communiquer avec le GSM, c'est-à-dire en utilisant les PIN 10 (RXD) et 11 (TXD).
Nous devons d'abord connecter l'écran LCD au 8051, vous pouvez apprendre ceci à partir d'ici: Interfaçage LCD avec le microcontrôleur 8051. Ensuite, nous devons connecter le module GSM au 8051, maintenant nous devons faire attention. Vous devez d'abord vérifier si votre module GSM est capable de fonctionner en logique TTL ou s'il ne peut fonctionner qu'avec RS232. Fondamentalement, si votre module a des broches RX et TX (avec GND) à bord, il peut fonctionner sur la logique TTL. Et s'il n'a pas de broches RX, TX et n'a qu'un port RS232 (port série avec 9), vous devez utiliser MAX232 IC pour connecter le port série au microcontrôleur. Fondamentalement MAX232utilisé pour convertir les données série en logique TTL car le microcontrôleur ne peut fonctionner que sur la logique TTL. Mais si le module GSM a des broches RX, TX, vous n'avez pas besoin d'utiliser MAX232 ou tout autre convertisseur série, vous pouvez directement connecter RX de GSM à TX (PIN 11) de 8051 et TX de GSM à RX (PIN 10) de 8051 Dans notre cas, j'ai utilisé le module SIM900A et il a des broches RX, TX donc je n'ai pas utilisé MAX232.
Le schéma de circuit pour l'interfaçage GSM avec le microcontrôleur AT89S52 est illustré dans la figure ci-dessus. Maintenant, après la connexion, nous avons juste besoin d'écrire un programme pour envoyer des commandes AT au GSM et recevoir sa réponse sur LCD. Il existe de nombreuses commandes AT comme décrit ci-dessus, mais notre objectif de cet article est simplement d'interfacer GSM avec 8051, nous allons donc simplement envoyer la commande «AT» suivie de «\ r» (0D en hexadécimal). Cela nous donnera une réponse «OK». Mais vous pouvez étendre ce programme pour utiliser toutes les fonctionnalités du GSM.
Explication du code
Outre toutes les fonctions liées à l'écran LCD, nous avons utilisé ici le port série et le registre de mode de minuterie (TMOD). Vous pouvez en apprendre davantage sur les fonctions LCD et d'autres codes en parcourant notre section de projets 8051, ici j'explique les fonctions de code liées à la communication série:
Fonction GSM_init ():
Cette fonction est utilisée pour définir le débit en bauds du microcontrôleur. Le Baudrate n'est rien d'autre que les Bits / seconde transmis ou reçus. Et nous devons faire correspondre le débit en bauds de 8051 au débit en bauds du module GSM, c'est-à-dire 9600. Nous avons utilisé la minuterie 1 en mode 2 (mode de rechargement automatique 8 bits) en réglant le registre TMOD sur 0X20 et l'octet supérieur de la minuterie 1 (TH1) à 0XFD pour obtenir la vitesse de transmission de 9600. Le registre SCON est également utilisé pour définir le mode de communication série, nous avons utilisé Mode1 (UART 8 bits) avec la réception activée.
Fonction GSM_write:
SBUF (registre de fonction spéciale de tampon série) est utilisé pour la communication série, chaque fois que nous voulons envoyer un octet à un périphérique série, nous mettons cet octet dans le registre SBUF, lorsque l'octet complet a été envoyé, le bit TI est défini par le matériel. Nous devons le réinitialiser pour envoyer l'octet suivant. C'est un indicateur qui indique que l'octet a été envoyé avec succès. TI est le deuxième bit du registre SCON. Nous avons envoyé «AT» en utilisant cette fonction.
Fonction GSM_read:
Comme pour l'envoi, chaque fois que nous recevons un octet d'un périphérique externe, cet octet est placé dans le registre SBUF, nous avons juste besoin de le lire. Et chaque fois que l'octet complet a été reçu, le bit RI est défini par le matériel. Nous devons le réinitialiser pour recevoir le prochain octet. RI est le premier bit du registre SCON. Nous avons lu la réponse «OK» en utilisant cette fonction.