Contrôle de charge Arduino via GSM. Alarme GSM économique avec cerveau Arduino. Connexion via le blindage GSM-GPRS

Je veux vous présenter un moyen très simple télécommande alimentation
Nous utiliserons du prêt à l'emploi prises radiocommandées, nous n'avons donc pas besoin de souder quoi que ce soit. C'est très cool, car il vaut mieux ne pas toucher au 220 V (pour les débutants).

Code

Si vous n'utilisez pas GSMSHIELD, mais une autre bibliothèque, alors le code sera bien sûr différent, mais le principe sera le même. A certains intervalles, nous vérifions si nous avons des SMS non lus, les analysons, et si une commande valide provient d'un numéro autorisé, nous envoyons un signal radio avec les fonctions mySwitch.switchOff ou mySwitch.switchOn, en leur transmettant l'adresse de la prise. .
Note dans mon cas, pour le bouclier de Seeedstudio, je devais aller dans GSM.cpp et changer les broches spécifiées en 7 et 8./* Exemple de code Arduino GSM-switch Allumer/éteindre les prises radiocommandées Auteur : Vladislav Ross, 2014 Contact : [email protégé] Vous devez télécharger : 1. rc-switch https://code.google.com/p/rc-switch/ 2. GSMSHIELD http://www.gsmlib.org/ Pour GSMSHIELD : * Pour modifier les broches du logiciel série, utilisez les deux lignes dans GSM.cpp. * Si vous utilisez Mega, décommentez la ligne "#define MEGA" dans HWSerial.h * Vous pouvez activer les messages de débogage sur le port série en définissant DEBUG_ON */ #include "SIM900.h" #include #include "sms.h" #include "call.h" #include<= 21; i++) { sms.DeleteSMS(i); } mySwitch.enableTransmit(RCpin); }; void loop() { //hang up all incoming calls /*stat=call.CallStatus(); if(stat==CALL_INCOM_VOICE) { call.HangUp(); }*/ position = sms.IsSMSPresent(SMS_UNREAD); //get new SMS if (position) { sms.GetSMS(position, number, smsText, 10); sms.DeleteSMS(position); if(strcmp(number, adminNumber) == 0) //accept SMS only from defined number { for (i = 0; i < sizeof(smsText) - 1; i++) { if(deviceLetterIdx != -1) { //got letter, now expecting 0 or 1 if(smsText[i] == "0") { mySwitch.switchOff(groupAddress, deviceAddresses); delay(500); } if(smsText[i] == "1") { mySwitch.switchOn(groupAddress, deviceAddresses); delay(500); } deviceLetterIdx = -1; } else { //waiting for letter A,B,C... for(j = 0; j < sizeof(smsLetters) - 1; j++) { if(smsLetters[j] == smsText[i]) { deviceLetterIdx = j; break; } } } } } } delay(10000); }; GitHub .

// octet const de broche d'émetteur 433 MHz RCpin = 12 ; char groupAddress = "11111"; char smsLetters = "ABC"; char* deviceAddresses = ( "10000", //A "01000", //B "00100" //C ); char adminNumber = "+74991356235"; //votre numéro de téléphone AppelerAppel GSM ; SMS SMSGSM ; RCSwitch monSwitch = RCSwitch(); numéro de caractère ; octet statistique = 0 ; char smsText ; position de l'octet ; int périphériqueLetterIdx = -1; octet i, j ; void setup() ( gsm.begin(2400); delay(10000); for(i = 1; i

Des problèmes ?

Si les prises ne veulent basculer sur aucune, vous pouvez essayer de recevoir un signal de la télécommande d'origine vers le récepteur. rc-switch a un exemple de code.

Quelle est la prochaine étape ?
Premièrement, il nous reste encore un tas de broches sur l'Arduino lui-même et sur le blindage GSM. Vous pouvez y connecter certains capteurs ou appareils. Par exemple, surveillez la température à distance ou arrosez les fleurs.
Deuxièmement, nous n'avons utilisé que les SMS et le module peut également transmettre la voix et le GPRS. Le GPRS peut transférer beaucoup plus de données. De plus, vous n’êtes pas obligé de raccrocher lorsque vous appelez, mais, par exemple, acceptez l’appel et laissez-les écouter ce qui se passe sur place.
Il est également possible que vous souhaitiez recevoir des SMS de contrôle non pas d'un numéro, mais de plusieurs. Dans ce cas, je recommanderais de stocker les numéros dans le carnet d'adresses ; la bibliothèque dispose des fonctions appropriées.

Le module GSM et GPRS des projets Arduino vous permet de vous connecter à des appareils autonomes distants via des communications cellulaires régulières. Nous pouvons envoyer des commandes à l'appareil et en recevoir des informations à l'aide de commandes SMS ou via une connexion Internet ouverte via GPRS. Dans cet article, nous examinerons les modules les plus populaires pour Arduino, comprendrons la connexion et examinerons des exemples de programmation.

Modules GSM-GPRS

Module GSM utilisé pour étendre les capacités des cartes Arduino classiques - envoyer des SMS, passer des appels, échanger des données via GPRS. Il existe différents types de modules, les plus couramment utilisés sont SIM900, SIM800L, A6, A7.

Description du module SIM900

Le module SIM900 est utilisé dans divers systèmes automatisés. Grâce à l'interface UART, les données sont échangées avec d'autres appareils. Le module offre la possibilité de passer des appels et d'échanger des messages texte. Le module est implémenté sur le composant SIM900, créé par SIMCom Wireless Solution.

Caractéristiques:

  • Plage de tension 4,8-5,2 V ;
  • En mode normal, le courant atteint 450 mA, le courant maximum en mode impulsion est de 2 A ;
  • Prise en charge 2G ;
  • Puissance d'émission : 1 W 1800 et 1900 MHz, 2 W 850 et 900 MHz ;
  • Intégré Protocoles TCP et UDP ;
  • GPRS multi-slot classe 10/8 ;
  • Température de fonctionnement de -30C à 75C.

À l'aide de l'appareil, vous pouvez suivre l'itinéraire d'un véhicule avec un appareil GLONASS ou GPS. La possibilité d'envoyer des messages SMS est utilisée dans alarme sans fil et divers systèmes de sécurité.

Description du module SIM800L

Le module est basé sur le composant SIM800L et permet d'envoyer des SMS, de passer des appels et d'échanger des données via GPRS. Une carte micro SIM est installée dans le module. L'appareil dispose d'une antenne intégrée et d'un connecteur auquel vous pouvez connecter une antenne externe. L'alimentation du module est fournie par une source externe ou via un convertisseur DC-DC. Le contrôle s'effectue à l'aide d'un ordinateur via UART, Arduino, Raspberry Pi ou des appareils similaires.

Caractéristiques:

  • Plage de tension 3,7 V – 4,2 V ;
  • Prise en charge du réseau 4 bandes 900/1 800/1 900 MHz ;
  • GPRS classe 12 (85,6 Ko/s) ;
  • Courant maximum 500 mA ;
  • Prise en charge 2G ;
  • Recherche automatique dans quatre gammes de fréquences ;
  • Température de fonctionnement de –30C à 75C.

Description du module A6

Le module A6 a été développé par AI-THINKER en 2016. L'appareil est utilisé pour échanger des messages SMS et échanger des données via GPRS. La carte se caractérise par une faible consommation d'énergie et une petite taille. L'appareil est entièrement compatible avec les opérateurs mobiles russes.

Caractéristiques:

  • Plage de tension 4,5 – 5,5 V ;
  • Alimentation 5V ;
  • Plage de température de fonctionnement de -30 °C à 80 °C ;
  • Consommation de courant maximale 900 mA ;
  • GPRS classe 10 ;
  • Prend en charge les protocoles PPP, TCP, UDP, MUX.

Le module prend en charge les cartes microsim.

Description du module A7

A7 est le dernier module d'AI-THINKER. Par rapport à son prédécesseur, l’A6 dispose d’un GPS intégré, permettant une conception simplifiée de l’appareil.

Caractéristiques:

  • Plage de tension de fonctionnement 3,3 V-4,6 V ;
  • Tension d'alimentation 5V ;
  • Fréquences 850/900/1800/1900 MHz ;
  • GPRS Classe 10 : Max. 85,6 kbits ;
  • Suppression de l'écho et du bruit.

L'appareil prend en charge les cartes microSIM. Le module prend en charge l'échange d'appels, l'échange de messages SMS, la transmission de données via GPRS, la réception de signaux via GPS.

Où acheter des modules GSM pour Arduino

Comme d'habitude, avant de commencer, voici quelques conseils et liens utiles vers les vendeurs Aliexpress.

Module KEYES SIM900 GSM GPRS de très haute qualité Module SIM800C pour Arduino d'un fournisseur de confiance
Shield pour le développement, compatible avec Arduino, basé sur le module SIM900 GPRS/GSM Module GSM mini A6 GPRS bon marché

Connexion du blindage GSM GPRS à Arduino

Dans cette section, nous examinerons les problèmes de connexion des modules GSM à la carte Aduino. Presque tous les exemples sont basés sur Arduino Uno, mais pour la plupart, les exemples fonctionneront également pour les cartes Mega, Nano, etc.

Connexion du module SIM800

Pour vous connecter, vous avez besoin d'une carte Arduino, d'un module SIM800L, d'un convertisseur abaisseur de tension, de fils de connexion et d'une batterie 12V. Le module SIM800L nécessite une tension Arduino non standard de 3,7 V ; cela nécessite un convertisseur de tension abaisseur.

Le brochage du module SIM800 est illustré sur la figure.

La carte Arduino doit être connectée à l'ordinateur via un câble USB. Connectez une batterie 12V via un convertisseur : -12V à la masse Arduino, de la masse au convertisseur négatif, +12V au convertisseur positif. Les sorties du module TX et RX doivent être connectées aux broches 2 et 3 de l'Arduino. Plusieurs modules peuvent être connectés à n'importe quelle broche numérique.

Module de connexion A6

Le module A6 est moins cher que le SIM900 et est très simple à connecter à Arduino. Le module est alimenté par une tension de 5 V, la connexion ne nécessite donc pas d'éléments réducteurs de tension supplémentaires.

Pour vous connecter, vous aurez besoin d'une carte Arduino (en dans ce cas testé Arduino UNO), module GSM A6, fils de connexion. Le schéma de connexion est présenté sur la figure.

La broche RX du module GSM doit être connectée à TX sur la carte Arduino, la broche TX doit être connectée à la broche RX sur l'Arduino. La masse du module est connectée à la masse du microcontrôleur. La broche Vcc du module GSM doit être connectée à PWR_KEY.

Connexion via le blindage GSM-GPRS

Avant de procéder au branchement, il est important de faire attention à la tension d'alimentation du blindage. Le courant au moment d'un appel ou de l'envoi de données peut atteindre des valeurs de 15-2 A, vous ne devez donc pas alimenter le blindage directement depuis l'Arduino.

Avant de vous connecter à Arduino, vous devez installer une carte SIM sur le blindage GSM-GPRS. Vous devez également installer les cavaliers TX et RX, comme indiqué sur la figure.

La connexion s'effectue comme suit : le premier contact (fil jaune sur la figure) du blindage doit être connecté au TX sur l'Arduino. La deuxième broche (fil vert) se connecte au RX sur l'Arduino. La terre du bouclier est reliée à la terre de l'aruino. L'alimentation est fournie au microcontrôleur via un câble USB.

Le schéma de connexion entre le blindage et la carte Arduino est illustré sur la figure.

Pour travailler, vous devrez installer la bibliothèque GPRS_Shield_Arduino.

Pour vérifier l'exactitude du circuit assemblé, vous devez procéder comme suit : connectez RESET et GND sur l'Arduino (cela entraînera le transfert des données directement du bouclier à l'ordinateur), insérez la carte SIM dans le bouclier et allumez la puissance du bouclier. La carte Arduino doit être connectée à l'ordinateur et le bouton d'alimentation enfoncé. Si tout est correctement connecté, la LED rouge s'allumera et la LED verte clignotera.

Brève description de l'interaction via les commandes AT

Les commandes AT sont un ensemble de commandes spéciales pour le modem, constituées de courtes chaînes de texte. Pour que le modem reconnaisse la commande qui lui est donnée, les lignes doivent commencer par les lettres at. La chaîne sera acceptée lorsque le modem sera en mode commande. Les commandes AT peuvent être envoyées en utilisant soit une communication logiciel, et manuellement à partir du clavier. Presque toutes les commandes peuvent être divisées en 3 modes : test, dans lequel le module répond s'il prend en charge la commande ; lire – paramètres de commande de courant de sortie ; écrire – de nouvelles valeurs seront écrites.

Liste des commandes AT les plus utilisées :

  • AT – pour vérifier si le module est correctement connecté. Si tout va bien, OK est renvoyé.
  • A/ – répétez la commande précédente.
  • AT+IPR ? – obtenir des informations sur la vitesse du port. La réponse sera +IPR : 0 OK (0 dans ce cas est automatique).
  • AT+ICF ? – réglage de la transmission. La réponse sera +ICF : bit, parité.
  • AT+IFC ? – la commande des transmissions. La réponse sera +IFC : terminal depuis le module, module depuis le terminal (0 – pas de contrôle, 1 – contrôle logiciel, 2 – contrôle matériel).
  • AT+GCAP – montre les capacités du module. Un exemple de réponse est +GCAP:+FCLASS,+CGSM.
  • AT+GSN – obtention du module IMEI. Exemple de réponse 01322600XXXXXXXXX.
  • AT+FLIC ? – affiche les opérateurs disponibles.
  • AT+CPAS – état du module. Réponse + CPAS : 0. 0 – prêt à travailler, 3 – appel entrant, 4 – connexion vocale, 2 – inconnu.
  • AT+CCLK ? – des informations sur l’heure et la date actuelles.
  • AT+CLIP=1 – activer/désactiver l’identification de l’appelant. 1 – activé, 0 – désactivé.
  • AT+CSCB=0 – réception de messages SMS spéciaux. 0 – autorisé, 1 – désactivé.
  • AT+CSCS= « GSM » – Encodage des messages SMS. Vous pouvez sélectionner l'un des codages suivants : IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – réception d’informations d’erreur.
  • AT+CPIN=XXXX – saisissez le code PIN de la carte SIM.
  • AT&F – réinitialiser les paramètres d’usine.
  • AT+CPOWD=1 – arrêt urgent (0) ou normal (1) du module.
  • ATD+790XXXXXXXX – appelez le numéro +790XXXXXXXX.
  • ATA – réponse à l'appel.
  • AT+CMGS=”+790XXXXXXXX”>Test sms – envoi d’un message SMS au numéro +790XXXXXXXXX.

Dans ce cas, nous avons considéré commandes de base pour module SIM900. Les commandes peuvent varier légèrement selon les modules. Les données du module seront fournies via programme spécial"terminal" qui doit être installé sur votre ordinateur. Vous pouvez également envoyer des commandes au module via le moniteur de port dans EDI Arduino.

Croquis pour travailler avec le module GSM

Envoi de SMS en utilisant le SIM900 comme exemple

Avant d'envoyer un message, vous devez configurer le module. Tout d'abord, vous devez convertir en format de texte message transmis. Il existe une commande AT+CMGF=1 pour cela. Vous devez convertir l'encodage en GSM à l'aide de la commande AT+CSCS="GSM". Cet encodage est le plus pratique, puisque les caractères sont représentés en code ASCII, facilement compréhensible par le compilateur.

Ensuite, vous devez composer un message SMS. Pour ce faire, une commande est envoyée avec le numéro d'abonné AT+CMGS=»+79XXXXXXXXXX» r, en réponse il vous est demandé de saisir un texte SMS. Vous devez envoyer un message. Une fois terminé, vous devez envoyer le code combiné Ctrl+Z, le module permettra d'envoyer du texte au destinataire. Lorsque le message est envoyé, OK sera renvoyé.

L'interaction avec le module est basée sur des indices attribués à chaque nouveau message. À l'aide de cet index, vous pouvez spécifier quel message supprimer ou lire.

Réception de SMS. Pour lire un message SMS, utilisez la commande AT + CNMI = 2,2,0,0,0. Quand le module arrivera-t-il ? SMS, il enverra à port série+CMTI : « SM »,2 (dans ce cas 2 est le numéro de séquence du message). Pour le lire, vous devez envoyer la commande AT+CMGR=2.

Réception appel vocal. Tout d'abord, pour avoir une conversation, vous devez connecter un haut-parleur et un microphone au module. Lorsqu'un appel est reçu, le numéro à partir duquel il a été émis sera affiché. Pour travailler, vous devez activer la bibliothèque GSM :

#inclure

Si la carte SIM est bloquée, vous devez saisir son code PIN. Si un code PIN n'est pas requis, ce champ doit rester vide.

#define PINNUMBER ""

Dans setup(), le transfert de données vers l'ordinateur doit être initialisé. L'étape suivante consiste à créer une variable locale pour suivre l'état de la connexion réseau. Le croquis ne fonctionnera pas tant que la carte SIM ne sera pas connectée au réseau.

booléen notConnected = true ;

La fonction gsmAccess.begin() permet de se connecter au réseau. Lorsque la connexion est établie, la valeur GSM_READY sera renvoyée.

vcs.hangCall(); – une fonction indiquant que le modem est prêt à recevoir des appels.

getvoiceCallStatus() – détermine l'état de l'esquisse. Si quelqu'un appelle, il renvoie RECEIVINGCALL. Pour enregistrer un numéro, vous devez utiliser la fonction retrieveCallingNumber(). Lorsque l’on répond à l’appel, TALKING reviendra. Le sketch attendra alors le personnage nouvelle ligne pour interrompre la conversation.

Établissez une connexion GPRS et envoyez des données à un serveur distant

Vous devez d'abord installer la bibliothèque SoftwareSerial, qui vous permet d'assurer le transfert d'informations en série et de connecter le module GSM et le microcontrôleur Arduino.

Pour envoyer des données au serveur, vous devez envoyer les commandes suivantes :

AT+SAPBR=1,1 – ouverture du transporteur.

Les trois commandes suivantes sont liées à la définition des paramètres de connexion réseau.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – choix opérateur mts, nom du point d'accès.

AT+SAPBR=3,1,\”USER\”,\” mts \” – sélectionnez l'utilisateur mts.

AT+SAPBR=3,1,\”PWD\”,\” mts\”

AT+SAPBR=1,1 – établissement de la connexion.

AT+HTTPINIT – initialisation http.

AT+HTTPPARA=”URL”, – adresse URL.

AT+HTTPREAD – en attente d'une réponse.

AT+HTTPTERM – arrête http.

Si tout est fait correctement, des lignes avec des commandes AT apparaîtront dans le moniteur de port. S'il n'y a pas de connexion avec le modem, il affichera une ligne à la fois. Lorsque la connexion GPRS est établie avec succès, la LED du module commence à clignoter.

Cette bibliothèque permet d'effectuer la plupart des opérations de base effectuées par un téléphone GSM : travailler avec appels vocaux, envoyez et recevez des SMS et connectez-vous à Internet via GPRS.

La carte d'extension GSM contient un modem qui transmet les données reçues via un port série au réseau GSM. Toutes les opérations sont effectuées par le modem sous la forme d'une séquence de commandes AT. Pour améliorer la lisibilité du code, la bibliothèque résume les fonctions de bas niveau qui fonctionnent avec le modem et la carte SIM. Le modem GSM interagit avec Arduino via interface série en utilisant la bibliothèque SoftwareSerial.

En règle générale, chaque commande exécutée par le modem est un fragment d'une séquence de commandes visant à exécuter une fonction. La bibliothèque GSM est conçue dans cet esprit et est capable de recevoir/retourner des informations à n'importe quelle étape de la séquence de commandes.

Structure de la bibliothèque

Les fonctionnalités de la bibliothèque GSM sont assez larges, elle combine donc plusieurs classes différentes :

  • Classe GSM est responsable du contrôle du modem radio. Cette classe contient des fonctions de bas niveau pour connecter et enregistrer une carte d'extension dans un réseau GSM. Une instance de cette classe doit être déclarée dans tous les programmes utilisant GSM/GPRS.
  • Classe Appel vocal GSM responsable des appels vocaux.
  • Classe GSM_SMS est responsable de l’envoi et de la réception des messages SMS.
  • Classe GPRS est responsable de la connexion à Internet.
  • En classe Client GSM client mis en œuvre, semblable à un client dans les bibliothèques Ethernet et WiFi.
  • En classe Serveur GSM un serveur similaire au serveur des bibliothèques Ethernet et WiFi a été implémenté. Remarque : Certains FAI/opérateurs bloquent les connexions entrantes depuis réseau Internet mondial, autorisant uniquement les connexions intranet. Vérifiez auprès de votre opérateur restrictions actuelles pour le transfert de données.
  • Beaucoup de classes d'assistance comme Scanner GSM, Modem GSM etc.

Compatible avec la bibliothèque Ethernet

Les développeurs ont tout mis en œuvre pour que la bibliothèque GSM soit la plus compatible possible avec la bibliothèque Ethernet. Grâce à cela, transférer du code à l'aide de bibliothèques Ethernet ou WiFi vers un Arduino avec une carte d'extension GSM devrait être assez simple. Cependant, pour exécuter des programmes écrits pour Ethernet sur une carte d'extension GSM, il ne suffit pas de simplement copier le code. Cela peut nécessiter des modifications mineures dans le programme, telles que la connexion des bibliothèques GSM et GPRS, l'obtention des paramètres réseau auprès du fournisseur, etc.

Exemples

Tous les exemples de travail avec une carte d'extension GSM peuvent être divisés en deux groupes. Le premier groupe est constitué d'exemples démontrant les capacités du tableau (par exemple, envoi de messages SMS, connexion à Internet, etc.). Le deuxième groupe est constitué d'outils avec lesquels vous pouvez déboguer les fonctionnalités de la bibliothèque et du matériel Arduino à un niveau bas.

Bouclier GPRS/GSM SIM900 avec antenne
Kit quadri-bande de carte de développement de bouclier SIM900 GPRS/GSM PourArduino Compatible

Module pour le fonctionnement du microcontrôleur Appareils Arduino et similaire dans les réseaux communications cellulaires selon les normes GSM et GPRS. Axé sur l'utilisation dans les systèmes d'automatisation et de contrôle. L'échange de données avec d'autres modules s'effectue via l'interface UART. Shield GPRS/GSM SIM900 avec antenne peut s'interfacer directement avec le microcontrôleur via l'interface UART ou fonctionner en conjonction avec ordinateur personnel lors de l'utilisation d'un convertisseur d'interface portPC-UART. Ceci est possible grâce à compatibilité logicielle au niveau de la classe de commandes utilisée pour contrôler les modems - commandes AT.
Les objets sont surveillés et contrôlés grâce à l'échange de données à portée de main communications mobiles. Fourni communication vocale, envoi de SMS, MMS et bien d'autres fonctions et services. Le fonctionnement du module est basé sur le composant SIM900.

Article en russe d'un magazine sur le composant SIM900. Le composant a été développé par SIMCom Wireless Solutions. Le site SIMCom a une version russe. La carte module GSM côté composant contient des connecteurs pour connecter une antenne, un casque et un microphone. Sur le côté soudure de la carte se trouve un support de pile CR1220 de 3 volts qui prend en charge le fonctionnement de l'horloge du module et un conteneur pour l'installation d'une carte SIM.
L'une des applications de l'appareil est un système de suivi des mouvements des véhicules en conjonction avec un appareil GLONASS ou GPS. L'envoi de messages SMS vous permet d'utiliser le module dans les systèmes de répartition, d'alarmes sans fil et de sécurité. Suite aux événements en cours, divers SMS peuvent être envoyés : « Arrêt d'urgence de l'ascenseur 2 du bâtiment n°34 », « La porte de la voiture est ouverte », « Le sous-sol est ouvert », « La tension 220 V est coupée », « Porte d'entrée La datcha est ouverte", "L'éclairage est allumé", "La température dans la serre est en dessous du point critique." Le module est indispensable pour surveiller et contrôler des objets en mouvement se déplaçant sur de longues distances. Ou en cas de suppression de l'opérateur sur longue distanceà partir d'un objet immobile.

Shield GPRS/GSM SIM900 avec antenne donne de nombreuses opportunitésétudier le fonctionnement du composant SIM900. L'installation du composant SIM900 s'effectue selon les technologies modernes pourquoi souder à circuit imprimé SIM900 dans des conditions de laboratoire est très difficile. Ayant un module avec SIM900 installé, vous pouvez mener des expériences sur l'utilisation du composant SIM900. Lorsqu'il est utilisé dans propres développements Le composant SIM900 permet de déboguer le logiciel et de vérifier les solutions de circuits.

Caractéristiques

Nutrition
tension, V
nominale 5
plage 4,8-5,2
actuel
mode normal 50-450 mA
en mode veille 1,5 mA
impulsion maximale 2 A
Prend en charge les cartes SIM alimentées par 1,8 et 3 V
Bandes de communication 850, 900, 1 800, 1 900 MHz
Prend en charge le réseau 2G
Puissance de transmission dans différentes bandes
1 W 1 800 et 1 900 MHz
2 W 850 et 900 MHz
Conforme Norme GSM phases 2/2+
Protocoles TCP et UDP intégrés
Classe de transmission Données GPRS classe multi-slot 10/8
Codecs audio HR, FR, EFR, AMR, annulation d'écho
CSD jusqu'à 14,4 kbit/s
Pile PPP
MUX (07.10)
Protocoles HTTP et FTP
Il est possible d'envoyer des signaux DTMF et de lire des enregistrements comme sur un répondeur
Prise en charge de l'horloge en temps réel RTC
Température, ℃
air pendant le fonctionnement -30...75
stockage -45...90
dimensions 86 x 58 x 19 mm

Composants de contrôle

Le commutateur de sélection d'alimentation définit la source d'alimentation : externe, connectée à un connecteur coaxial ou la source d'alimentation du module microcontrôleur Arduino.

La touche Marche/Arrêt allume ou éteint l'appareil lorsqu'elle est enfoncée et maintenue enfoncée pendant 2 secondes.

Indication

L'état du module est indiqué par 3 LED :
PWR (vert) - indicateur d'alimentation du module,
Statut (rouge) - Indicateur d'alimentation du composant SIM900,
Net Light (vert) - connexion au réseau.
Messages LED de lumière nette.
Éteint - SIM900 ne fonctionne pas.
Clignote à intervalles, indiqués en secondes :
0,064 activé et 0,8 désactivé - réseau non détecté,
0,064 activé et 0,3 désactivé - réseau détecté,
0,064 activé, 0,03 désactivé - GPRS connecté.

Contacts

Le composant SIM900 contient Port UART, ses signaux sont émis vers les broches du composant et connectés à des cavaliers qui déterminent à quels contacts du module Shield GPRS/GSM SIM900 le port UART du composant SIM900 sera connecté à D0, D1 ou D7, D8.
UART Shield GPRS/GSM peut être connecté à : interface matérielle MK via les contacts TXD et RXD du module Shield GPRS/GSM, D0, D1 sont utilisés pour cela. Ou à un Arduino émulé par logiciel, pour cela, les contacts D7 et D8 du module Shield GPRS/GSM sont utilisés. L'interface UART complète dispose de 10 signaux émis vers les broches situées dans le coin de la carte : R1, DCD, DSR, CTS, RTS, GND, 2V8, TX, RX, DTR.
12 contacts signés lignes numériques Les E/S GPIO sont situées dans le coin de la carte. Il y a 2 broches de signal de sortie avec modulation de largeur d'impulsion PWM1, PWM2. Entrée CAN Contact ADC. L'interface de compteur de temps intégrée dispose de 4 contacts. Désignations des broches : DISP_CLK, DISP_DATA, DISP_D/C, DISP_CS.
La broche D9 est utilisée pour contrôler par programme si le SIM900 est allumé ou éteint.
La carte dispose d'un connecteur pour connecter une antenne.

Affectation des broches du composant SIM900.

Alimentation externe allumée et éteinte

Vous pouvez allumer ou éteindre le module à l’aide du signal à l’entrée de commande D9. Pour changer d'état, une impulsion d'une durée de 1 s est envoyée à D9. Le changement d'état se produit 3,2 s après le début de l'impulsion.

Activation du module. Graphiques de la tension d'alimentation du module, de l'impulsion de commande externe et de l'indicateur d'alimentation STATUS.

Lors du contrôle du module avec un appareil de commande, la mise sous tension doit s'effectuer sans utiliser Boutons d'alimentation clé, c'est-à-dire immédiatement après la mise sous tension. Pour ce faire, plusieurs commandes doivent être ajoutées au programme MK.

Annuler powerUpOrDown()
{
pinMode(9, SORTIE);
digitalWrite(9,FAIBLE);
retard (1000);
digitalWrite(9,ÉLEVÉ);
retard(2000);
digitalWrite(9,FAIBLE);
retard (3000);
}

Ce groupe de commandes dans le programme peut également être utilisé pour éteindre le module. Vous pouvez également désactiver le module GSM en envoyant une commande AT.

GSM-lib est écrit pour l'IDE Arduino version 1.0. Téléchargez la dernière version de la bibliothèque depuis exemples prêts à l'emploi peut être utilisé à partir du référentiel du projet. Pour l'installer, décompressez l'archive GSM dans le répertoire des bibliothèques (/arduino-1.0/libraries/GSM). Après avoir démarré l'environnement Développement Arduino, dans le menu du programme « Fichier -> Exemples », l'élément GSM apparaîtra, avec des exemples de croquis.

La bibliothèque GSM est conçue pour fonctionner avec le bouclier « ». Il s'agit d'un matériel compatible avec Cartes Arduino(Uno, Duemilanove et autres analogues). Lorsque vous utilisez d'autres cartes, vous devrez peut-être apporter des modifications au fichier GSM.cpp pour indiquer le port correct auquel la ligne d'activation du modem est connectée depuis le blindage.

DANS moment présent La bibliothèque implémente la fonctionnalité suivante.

  • Inscription au réseau GSM
  • Envoi de SMS
  • Réception et analyse de SMS
  • Recevoir des appels entrants
  • Vérifier l'état de la connexion avec Réseau GSM, restauration du réseau en cas de perte de signal

Inscription au réseau GSM

Pour enregistrer le modem sur le réseau, vous devez spécifier le code PIN de la carte SIM. Il est important de se rappeler que si vous précisez mauvais numéro, la carte SIM est peut-être bloquée, car la fonction d'initialisation sera répétée périodiquement jusqu'à ce que bonne chance. Le processus d'initialisation prend généralement environ 1 minute.

L'initialisation principale est effectuée dans la fonction setup().

#inclure #inclure const char PIN PROGMEM = "0000"; // Configuration du code PIN() ( while (GSM.Init(PIN)<0); // Регистрация в сети GSM.NewSMSindic(); // Настройка индикатора новых SMS GSM.WaitCall(); // Ждем входящие вызовы GSM.WaitSMS(); // Ждем входящих SMS }

Envoi de SMS

Pour envoyer des messages texte, utilisez la fonction SendSMS(), qui transmet 2 paramètres : le numéro du destinataire du SMS et le message lui-même.

Tandis que(GSM.SendSMS(RemoteID, "Bonjour d'Arduino !")< 0);

Où RemoteID est le numéro du destinataire. Il est préférable de placer cette constante dans l'entête du programme.

Const char RemoteID PROGMEM = "+79280000000";

Le texte du message peut également être généré dynamiquement.

Chaîne texteMessage ; textMessage += "Capteur1" ; textMessage += "Capteur2" ; char Out; textMessage.toCharArray(Out,(textMessage.length())+1); while(GSM.SendSMS(RemoteID, Out)< 0);

Réception et analyse de SMS

Pour lire les messages SMS entrants, utilisez la fonction ReadSMS(), à laquelle sont transmis 2 paramètres : l'index SMS et le pointeur où le texte sera copié. Vous trouverez ci-dessous un fragment d'un croquis qui analyse le texte d'un message entrant. Lorsque SMS est égal à 1, nous effectuons une action, et lorsqu'il est égal à 2, nous effectuons une autre action. Pour un exemple complet de l’esquisse SmsCheck.ino, consultez les exemples.

If (GSM.CheckSMS()== 1) ( //Il y a un nouveau SMS GSM.ReadSMS(NewSMS_index, (char*) SMStxt); GSM.DeleteAllSMS(); // Supprimer le SMS (nous n'accumulerons pas !) strSMS = String( SMStxt); if(strSMS == "1") ( // effectue l'action 1 ici) if(strSMS == "2") ( // effectue l'action 2 ici) GSM.WaitCall();

Note. La bibliothèque GSM ne peut fonctionner qu'avec les caractères latins ; le cyrillique n'est actuellement pas pris en charge.

Recevoir des appels entrants

Cette fonctionnalité est utile lorsque vous avez besoin d'obtenir une réponse assez rapide du bouclier. Même si les messages SMS peuvent être envoyés avec un léger retard, les appels entrants se produisent presque instantanément. De plus, l'utilisation de cette fonctionnalité sera gratuite si vous ne décrochez pas le téléphone.

Par exemple, vous pouvez appeler le bouclier, vérifier le numéro de l'appelant sur Arduino et s'il correspond au numéro du modèle, lui envoyer un SMS avec les lectures du capteur. Le fragment suivant implémente une fonctionnalité similaire. Pour la version complète du croquis CallCheck.ino, voir les exemples.

If (IncomingCall == 1) ( //un appel est arrivé ! while (GSM.TerminateCall()<0); // Ложим трубку IncomingCall = 0; // Проверяем, если номер звонящего CallerID совпал с шаблоном RemoteID if (strstr_P(CallerID, RemoteID)) { while(GSM.SendSMS(RemoteID, "Hello from Arduino!") < 0);// SMS из SRAM памяти } GSM.WaitCall(); }

Vérification de l'état de la connexion avec le réseau GSM

Il existe des situations où la connexion au réseau est perdue. Pour détecter la perte du réseau, utilisez la fonction CheckStatus(), qui renvoie 0 lorsque la connexion au réseau est perdue. Un exemple d'utilisation est donné dans le bloc de code suivant.

// À certains intervalles, nous vérifions l'état de la connexion GPRS ! if(currentMillis - previousMillis > interval) ( if ((GSM.CheckStatus() != 1)) ( // Connexion GPRS non établie ! while (GSM.Init(PIN)<0); // Делаем инициализацию } GSM.WaitCall(); currentMillis = previousMillis = millis(); }

Exécuter des commandes AT arbitraires à partir d'une esquisse

Pour exécuter des commandes AT à partir d'une esquisse, la fonction WriteStr_P() est utilisée.

GSM.WriteStr_P(PSTR("AT\r\n"));



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :