Description
Cette carte de développement GSM/GPRS est basée sur la puce SIM800C prenant en charge la fonction Bluetooth et le contrôle des commandes AT via le port série. L’emplacement pour carte SIM intégré et la prise en charge de la bande quadribande 850/900/1800/1900 MHz peuvent être utilisés dans le monde entier. Elle est équipée d’un circuit convertisseur de données 5 V/3,3 V compatible avec la plupart des cartes de dérivation MCU pour obtenir la fonction SMS et TTS.
Puce : SIM800C
Bande : 850/900/1800/1900 MHz
Classe multi-slot GPRS : 12/10
Classe de station mobile GPRS : B
Conforme à la norme GSM phase 2/2+ – Classe 4 (2 W à 850/900 MHz) – Classe 1 (1 W à 1800/1900 MHz)
Contrôle via les commandes AT (3GPP TS 27.007, 27.005 et commandes AT améliorées SIMCOM)
Taille de la carte : 30,73 x 26,56 mm/1,21 x 1,05 pouce (L x l)
Caractéristiques
- Alimentation : DC5V ou reçue par une entrée de batterie au lithium VBAT et GND.
- Prend en charge le niveau MCU : 5 V/3,3 V pour la logique TTL (comme le commun 51 et l’arduino est de 5 V, STM32 est de 3,3 V)
- Utilisation de l’antenne : interfaces d’antenne IPEX, vous pouvez utiliser la version antenne PCB ou antenne IPEX-SMA-poivrons
Premiers pas avec le module GSM GPRS SIM800C avec Bluetooth et TTS pour Arduino
Cette carte de développement GSM/GPRS est basée sur la puce SIM800C prenant en charge la fonction Bluetooth et le contrôle des commandes AT via le potentiomètre série. L’emplacement pour carte SIM intégré et la prise en charge de la bande quadribande 850/900/1800/1900 MHz peuvent être utilisés dans le monde entier.
Description de la broche
- 5V : broche d’alimentation, seule entrée DC5V, utilisée pour alimenter la carte.
- V_TTL : tension cible du cœur du microcontrôleur de la carte de contrôle d’accès de 5 V/3,3 V (selon son propre microcontrôleur, il y a beaucoup à distinguer – noyau v), cette broche est utilisée pour convertir la carte du module GSM TXD et RXD pour la logique TTL correspondante.
- GND : masse de l’alimentation
- TXD : module de port série à broche d’envoi, niveau TTL (non directement connecté au niveau RS232)
- RXD : module de port série à broche de réception, niveau TTL (non directement connecté au niveau RS232)
- DTR : Terminal de données prêt
- SPKP : broche de sortie audio principale
- SPKN : broche de sortie audio principale
- MICN : Entrée audio principale
- MICP : Entrée audio principale
- RI : Embouts de broches à noyau annulaire
- VRTC : broche RTC batterie externe
- GND : masse de l’alimentation
- PWX : cette broche peut désactiver ou éteindre le module
- GND : masse de l’alimentation
- VBAT : broche d’entrée de batterie au lithium, 3,3 V-4,4 V
Matériel requis
- Arduino uno
- Carte SIM GSM 800 avec Bluetooth
- Planche à pain
- Fils de liaison
- Batterie au lithium 3,7 V
Connexion du matériel
Carte SIM800C GSM Arduino Uno
VBAT + de la batterie
GND – de la batterie
PWX GND
Émission D3
Rx D2
Code Arduino – Test des commandes AT
Pour envoyer des commandes AT et communiquer avec le module SIM800C, nous utiliserons le moniteur série. Le schéma ci-dessous permettra à l’Arduino de communiquer avec le module SIM800C sur un moniteur série. Avant de procéder à la décomposition détaillée du code, connectez votre Arduino au PC, compilez le code ci-dessous et téléchargez-le sur l’Arduino.
Une fois que vous avez ouvert un moniteur série, assurez-vous que l’option « NL et CR » est sélectionnée !
#include <SoftwareSerial.h> //Créer un objet série logiciel pour communiquer avec SIM800C SoftwareSerial mySerial(3, 2); //SIM800C Tx & Rx est connecté à Arduino #3 & #2 configuration vide(){ //Démarrer la communication série avec Arduino et Arduino IDE (Serial Monitor) Série.begin(9600); //Démarrer la communication série avec Arduino et SIM800C monSerial.begin(9600); Serial.println("Initialisation..."); délai(1000); mySerial.println("AT"); //Une fois le test de poignée de main réussi, il reviendra à OK mettre à jourSerial(); mySerial.println("AT+CSQ"); //Test de qualité du signal, la plage de valeurs est de 0 à 31, 31 est le meilleur mettre à jourSerial(); mySerial.println("AT+CCID"); //Lire les informations de la carte SIM pour confirmer si la carte SIM est branchée mettre à jourSerial(); mySerial.println("AT+CREG?"); //Vérifie s'il est enregistré sur le réseau mettre à jourSerial(); } boucle vide(){ mettre à jourSerial(); } void updateSerial(){ délai(500); tandis que (Serial.available()){ mySerial.write(Serial.read());//Transférer le numéro de série reçu au port série du logiciel } while(mySerial.disponible()){ Serial.write(mySerial.read());//Transférer le numéro de série du logiciel reçu vers le port série } }
Maintenant que nous avons établi une connexion de base, nous allons essayer de communiquer avec le module SIM800L en envoyant des commandes AT.
AT – C’est la commande AT la plus basique. Elle initialise également le baud’er automatique. Si cela fonctionne, vous devriez voir les caractères AT résonner puis OK, vous indiquant que tout va bien et qu’il vous comprend correctement ! Vous pouvez ensuite envoyer des commandes pour interroger le module et obtenir des informations à son sujet, telles que
AT+CSQ – Vérifiez la « force du signal » – le premier chiffre correspond à la force en dB, elle doit être supérieure à environ 5. Plus c’est élevé, mieux c’est. Bien sûr, cela dépend de votre antenne et de votre emplacement !
AT+CCID – obtenir le numéro de la carte SIM – cela teste que la carte SIM est correctement trouvée et vous pouvez vérifier que le numéro est écrit sur la carte.
AT+CREG ? Vérifiez que vous êtes inscrit sur le réseau. Le deuxième numéro doit être 1 ou 5. 1 indique que vous êtes inscrit sur le réseau domestique et 5 indique le réseau itinérant. À part ces deux numéros, cela signifie que vous n’êtes inscrit sur aucun réseau.
Vous devriez voir ci-dessous la sortie sur le moniteur série.
Vous êtes désormais libre d’envoyer n’importe quelle commande via le moniteur série comme ci-dessous, qui donne plus d’informations sur la connexion réseau et l’état de la batterie :
ATI – Obtenir le nom et la révision du module
AT+COPS ? – Vérifiez que vous êtes connecté au réseau, dans ce cas BSNL
AT+COPS=? – Renvoie la liste des opérateurs présents sur le réseau.
Code Arduino – Envoi de SMS
Passons aux choses intéressantes. Programmons notre Arduino pour envoyer un SMS à n’importe quel numéro de téléphone de votre choix. Avant d’essayer le croquis, vous devez saisir le numéro de téléphone. Recherchez la chaîne ZZxxxxxxxxxx et remplacez ZZ par le code du comté et xxxxxxxxxx par le numéro de téléphone à 10 chiffres.
#include <SoftwareSerial.h> //Créer un objet série logiciel pour communiquer avec SIM800L SoftwareSerial mySerial(3, 2); //SIM800C Tx & Rx est connecté à Arduino #3 & #2 configuration vide(){ //Démarrer la communication série avec Arduino et Arduino IDE (Serial Monitor) Série.begin(9600); //Démarrer la communication série avec Arduino et SIM800C monSerial.begin(9600); Serial.println("Initialisation..."); délai(1000); mySerial.println("AT"); //Une fois le test de poignée de main réussi, il reviendra à OK mettre à jourSerial(); mySerial.println("AT+CMGF=1"); // Configuration du mode TEXTE mettre à jourSerial(); mySerial.println("AT+CMGS=\"+ZZxxxxxxxxxx\"");//remplacer ZZ par le code du pays et xxxxxxxxxxx par le numéro de téléphone par SMS mettre à jourSerial(); mySerial.print("Faranux Electronics | faranux.com"); //contenu textuel mettre à jourSerial(); monSerial.write(26); } boucle vide(){} void updateSerial(){ délai(500); tandis que (Serial.available()){ mySerial.write(Serial.read());//Transférer le numéro de série reçu au port série du logiciel } while(mySerial.disponible()){ Serial.write(mySerial.read());//Transférer le numéro de série du logiciel reçu vers le port série } }
Le schéma est presque identique au précédent, à l’exception de l’extrait de code ci-dessous. Une fois la connexion établie, nous envoyons les commandes AT ci-dessous :
AT+CMGF=1 – Sélectionne le format du message SMS en tant que texte. Le format par défaut est Protocol Data Unit ( PDU)
AT+CMGS=+ZZxxxxxxxxxx – Envoie un SMS au numéro de téléphone spécifié. Le message texte saisi suivi d’un caractère « Ctrl+z » est traité comme un SMS. « Ctrl+z » est en fait un 26e caractère non imprimable décrit comme « substitut » dans la table ASCII . Nous devons donc envoyer 26 DEC (1A HEX ) une fois que nous envoyons un message.
Code Arduino – Lecture de SMS
Programmons maintenant notre Arduino pour lire les messages entrants. Ce schéma est très utile lorsque vous devez déclencher une action lorsqu’un SMS spécifique est reçu. Par exemple, lorsque l’Arduino reçoit un SMS, vous pouvez lui demander d’activer ou de désactiver un relais. Vous avez compris l’idée !
#include <SoftwareSerial.h> //Créer un objet série logiciel pour communiquer avec SIM800C SoftwareSerial mySerial(3, 2); //SIM800C Tx & Rx est connecté à Arduino #3 & #2 configuration vide(){ //Démarrer la communication série avec Arduino et Arduino IDE (Serial Monitor) Série.begin(9600); //Démarrer la communication série avec Arduino et SIM800C monSerial.begin(9600); Serial.println("Initialisation..."); délai(1000); mySerial.println("AT"); //Une fois le test de poignée de main réussi, il reviendra à OK mettre à jourSerial(); mySerial.println("AT+CMGF=1"); // Configuration du mode TEXTE mettre à jourSerial(); mySerial.println("AT+CNMI=1,2,0,0,0"); // Décide comment les messages SMS nouvellement arrivés doivent être traités mettre à jourSerial(); } boucle vide(){ mettre à jourSerial(); } void updateSerial(){ délai(500); tandis que (Serial.available()){ mySerial.write(Serial.read());//Transférer le numéro de série reçu au port série du logiciel } while(mySerial.disponible()){ Serial.write(mySerial.read());//Transférer le numéro de série du logiciel reçu vers le port série } }
Une fois que vous avez envoyé le SMS au module GSM SIM800L, vous verrez ci-dessous la sortie sur le moniteur série.
Le forfait comprend : 1×Module SIM800C