Shield Arduino GSM (1 / 3 étapes)

Etape 1: La GSM bibliothèque

Il s’agit de la documentation de bibliothèque de GSM_shield :

Voici une Bibliothèque GSM_shield destiné à bouclier GSM par Futura Elettronica (www.futurashop.it).

Cette bibliothèque est dérivé bibliothèque GSM http://www.hwkitchen.com de Hwkitchen et inclure la bibliothèque NewSoftSerial à communiquer en utilisant la broche 4 (RX) et 5 (TX).

Vous pouvez également utiliser la broche 0 et 1 (RX et TX) mais vous devez débrancher le module pour télécharger le croquis (donc il n’est pas très agréable), et vous devez modifier la bibliothèque.

Comment installer la bibliothèque pour Arduino

Après le téléchargement de la bibliothèque GSM_Shield, décompressez le dossier de GSM_Shield pour Arduino

Folder\libraries\ (es. C:\Programs\arduino-0022\libraries\GSM_Shield)

Dans le GSM_Shield.zip vous pouvez trouver la bibliothèque de communiquer avec le module gsm et le fichier pour utiliser le NewSoftSerial.

Description fondamentale

GSM_Shield bibliothèque est créée comme une classe standard avec les fichiers source Gsm_Shield.cpp et Gsm_Shield.h. GSM_Shield classe repose essentiellement sur la communication sérielle

entre la carte Arduino et le module GSM placé sur le bouclier de GSM. Il y a norme utilisée aux commandes pour la communication avec le Module GSM.

La version actuelle de la bibliothèque utilise la version de blocage de la communication.

Cela signifie que le programme est bloqué jusqu'à ce que la fonction de communication est terminé – donc jusqu'à ce que les données requises sont envoyées et nécessaire réponse soit reçue. L’avantage de cette approche de blocage, c’est qu’il est facile de

comprendre le déroulement du programme. En revanche, il y a aussi désavantage que nous ne pouvons pas utiliser les ressources du processeur au moment où le programme attend juste pour les données entrantes.

Remarque : faites attention au mode de communication série. Avec le matériel de série (NIP 0 et 1), vous pouvez rejoindre le baudrate par défaut du module SIM900 (115 200 bauds). Mais si vous utilisez les broches 4 et 5 que ne peuvent pas soutenir la bibliothèque NewSoftSerial (recevoir) le débit en bauds, donc vous devez choisir un plus faible taux en bauds.

Avec la commande TurnOn(baudrate), vous activez le module et fixer le débit en bauds. par exemple TurnOn(9600) ;

Méthodes

Il y décrit les fonctions importantes pour l’utilisateur final dans le présent document.

La bibliothèque GSM_Shield contient également quelques fonctions qui sont utilisées en interne

et ne sont pas décrits dans le document. Il est également possible d’utiliser ces

fonctionne par l’utilisateur final, bien sûr qu’ils sont définis comme publics mais il

Il faut vérifier le code source de la bibliothèque avec des notes.

int LibVer(void)

retourne la version de la bibliothèque au format XYY-cela signifie X.YY (par exemple 100 signifie vers. 1,00)

Exemple : GSM_Shield_LibVer

Sub TurnOn(baud)

se met en marche le module GSM en cas de module est désactivé et envoie une initialisation à commandes que l'on peut envoyer avant enregistrement -> InitParam(PARAM_SET_0)

Doit être utilisé au début de l’esquisse à la fonction setup().

Définissez également le baudrate module (Note : Si vous utilisez le numéro de série de matériel, il n’y a pas de limite à la vitesse de transmission, 115200 est possibile. Mais utilisant la broche 4 et 5 de la NewSoftSerial doit être utilisé et la limite de vitesse de transmission est 57600).

Baud valeur possibile : 4800, 9600, 19200, 38400, 57600, 115200 (inutile avec cette bibliothèque incluent NewSoftSerial)

void setup()

{

GSM. TurnOn(9600) ;

}

Exemple : GSM_Shield_LibVer

Sub InitParam(byte group)

Envoie les paramètres d’initialisation du module GSM
groupe: 0 – paramètres de groupe 0 – pas nécessaire d’être enregistré dans le GSM

AT & F

1 – les paramètres de groupe 1 – il est nécessaire d’être enregistré

AT + CLIP = 1

AT + CMEE = 0

AT + CMGF = 1

Exemple : GSM_Shield_LibVer

Sub Echo (État octets)
Fonction pour activer ou désactiver l’écho

ECHO(1) activer mode echo GSM

ECHO(0) désactiver le mode écho GSM

Exemple : GSM_Shield_LibVer

Byte CheckRegistration(void)

vérifie si le module GSM est enregistré dans le réseau GSM.

Cette méthode communique directement avec le module GSM par contraste avec la méthode IsRegistered() qui lit le drapeau de la module_status

(cet indicateur est défini à l’intérieur de cette méthode)

doit être appelée régulièrement à la seule place dans la boucle principale esquisse

(recommandation répétition de temps est de 1 s à 10 s.)

Retour à valus :

REG_NOT_REGISTERED – non enregistré

REG_REGISTERED – module GSM est inscrit

REG_NO_RESPONSE – GSM ne réponse

REG_COMM_LINE_BUSY – ligne de comm n’est pas gratuit

Exemple : GSM_Shield_Reg

Byte IsRegistered(void)

retours du pavillon si le module GSM est enregistré dans le réseau GSM

Cette méthode ne communique pas directement avec le module GSM,

contente de lire l’indicateur n’est très rapide contrairement à CheckRegistration()

qui prend plus de 20msec.

Il est recommandé d’utiliser cette fonction à chaque fois qu'il est nécessaire d’utiliser certaines fonctions GSM quels besoins module GSM est inscrit – vérification SMSs entrantes, vérification appelle etc.

Retour à valus :

0 – ne pas enregistré

> 0-module GSM est enregistré

Exemple : GSM_Shield_Reg

Byte CallStatus(void)

État des contrôles de l’appel

valeurs de retour :

CALL_NONE – aucun appel

CALL_INCOM_VOICE – appel vocal entrant

CALL_ACTIVE_VOICE – appel vocal actif

CALL_NO_RESPONSE – aucune réponse

Exemple : GSM_Shield_Call

octet CallStatusWithAuth (char * phone_number, first_authorized_pos octets, last_authorized_pos octets)

vérifie l’état de l’appel (entrant ou actif) et rend l’autorisation avec plage de positions de SIM spécifiée

paramètres et valeurs de retour :

Phone_Number : pointeur où la chaîne de numéro Tél. : appel en cours sera placée alors l’espace pour la chaîne de numéro de téléphone doit être réservé

first_authorized_pos : SIM phonebook position où commence le processus d’autorisation initiale

last_authorized_pos : dernière SIM phonebook position où termine le processus d’autorisation

Note(important) :

================

En cas first_authorized_pos = 0 et last_authorized_pos = 0, le numéro de téléphone entrant reçu n’est pas autorisé à tous, donc chaque entrant est considérée comme autorisée (CALL_INCOM_VOICE_NOT_AUTH est retourné)

retour :

CALL_NONE – aucune activité d’appel

CALL_INCOM_VOICE_AUTH – voix entrante – autorisée

CALL_INCOM_VOICE_NOT_AUTH – voix entrante – non autorisés

CALL_ACTIVE_VOICE – voix active

CALL_INCOM_DATA_AUTH – appel de données entrant – autorisée

CALL_INCOM_DATA_NOT_AUTH – appel de données entrant – non autorisé

CALL_ACTIVE_DATA – appel de données active

CALL_NO_RESPONSE – aucune réponse à la commande

CALL_COMM_LINE_BUSY – ligne de comm n’est pas gratuit

Sub PickUp(void)

ramasse l’appel entrant

Exemple : GSM_Shield_Call

Sub HangUp(void)

raccroche appel (entrant ou actif)

Exemple : GSM_Shield_Call

Sub Call(char *number_string)

appelle le numéro spécifique

par exemple, gsm. Call("+390123456789″) ;

Sub appel (int sim_position)

appelle le numéro enregistré à l’emplacement spécifié de la SIM

par exemple, gsm. Call(1) ; appelez au numéro stocké à la 1ère position de SIM

SendSMS de char (char * number_str, char * message_str)

envoie des SMS vers le numéro de téléphone spécifique

paramètres et valeurs de retour :

number_str : pointeur vers la chaîne de numéro de téléphone

message_str : pointeur vers la chaîne de texte SMS

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – module GSM a répondu « message d’erreur »

OK ret val :

———–

0 – SMS n’a été envoyé

1 – SMS a été envoyé à 9/15

exemple d’utilisation :

GSM. SendSMS ("00XXXYYYYYYYYY", « SMS text ») ;

char SendSMS (octet sim_phonebook_position, char * message_str)

envoie des SMS à la position spécifiée du répertoire SIM

paramètres et valeurs de retour :

sim_phonebook_position : position de répertoire SIM < 1..20 >

message_str : pointeur vers la chaîne de texte SMS

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – spécifié doit être > 0

OK ret val :

———–

0 – SMS n’a été envoyé

1 – SMS a été envoyé

un exemple d’utilisation :

GSM gsm ;

GSM. SendSMS (1, "SMS texte") ;

char IsSMSPresent(byte required_status)

Découvre si il est présent au moins un SMS avec l’état spécifié

s’il y a nouveau SMS avant l’exécution de IsSMSPresent() ce SMS a un statut non lu et puis après avoir appelé état de méthode IsSMSPresent() des SMS est modifié automatiquement en lecture

paramètres et valeurs de retour :

required_status :

SMS_UNREAD – nouveau SMS – ne pas encore lire

SMS_READ – déjà lire les SMS

SMS_ALL – toutes stockées SMS

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

OK ret val :

———–

0 – il n’y a pas de SMS avec l’état spécifié

1..20 – position de stockage des SMS

exemple d’utilisation :

position de char ;

phone_number Char [20] ; Tableau pour la chaîne de numéro de téléphone

char * sms_text ;

position = gsm. IsSMSPresent(SMS_UNREAD) ;

Si (position) {/ / lecture nouveau SMS

GSM. GetGSM (position, numéro_tél et sms_text) ;

}

char GetSMS (position de l’octet, char * phone_number, char * SMS_text, max_SMS_len octets)

lit les SMS de position spécifié memory(SIM)

paramètres et valeurs de retour :

position : position de SMS < 1..20 >

Phone_Number : pointeur où sera placée la chaîne de numéro de téléphone de SMS reçus

Si l’espace pour la chaîne de numéro de téléphone doit être réservée – voir exemple

SMS_text : un pointeur où SMS texte sera placé

max_SMS_len : longueur maximale du texte SMS à l’exclusion également string clôturant le caractère 0 x 00

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – spécifié doit être > 0

OK ret val :

———–

GETSMS_NO_SMS – aucun SMS a été trouvé à la position spécifiée

GETSMS_UNREAD_SMS – nouveau SMS a été trouvé à la position spécifiée

GETSMS_READ_SMS – a déjà lu SMS a été trouvé à la position spécifiée

GETSMS_OTHER_SMS-autre type de SMS a été trouvé un exemple d’utilisation :

GSM gsm ;

position de char ;

char phone_num [20] ; Tableau pour la chaîne de numéro de téléphone

char sms_text [100] ; Tableau pour la chaîne de texte SMS

position = gsm. IsSMSPresent(SMS_UNREAD) ;

Si {(position)

Il n’y a nouveau SMS = > lire

GSM. GetGSM (position, phone_num, sms_text, 100) ;

Serial.println ("numéro de téléphone SMS DEBUG:", 0) ;

Serial.println (phone_num, 0) ;

Serial.println ("\r\n SMS texto:", 0) ;

Serial.println (sms_text, 1) ;

}

char GetAuthorizedSMS (position de l’octet, char * phone_number, char * SMS_text, max_SMS_len octets, first_authorized_pos octets, last_authorized_pos octets)

lit les SMS memory(SIM) spécifié postées et rend l’autorisation-

Cela signifie que numéro de téléphone SMS est comparé avec spécifié SIM phonebook ou des postes et dans le cas où les numéros correspondent à GETSMS_AUTH_SMS est retourné, sinon GETSMS_NOT_AUTH_SMS est retourné

paramètres et valeurs de retour :

position : position de SMS à lire < 1..20 >

Phone_Number : pointeur où la chaîne de numéro de Tél. de SMS reçus est placée afin que l’espace pour la chaîne de numéro de téléphone doit être réservé – voir exemple

SMS_text : un pointeur où SMS texte sera placé

max_SMS_len : longueur maximale du texte SMS sauf résiliation de caractère 0 x 00

first_authorized_pos : SIM phonebook position où commence le processus d’autorisation initiale

last_authorized_pos : dernière SIM phonebook position où finit le proces de l’autorisation

Note(important) :

================

En cas first_authorized_pos = 0 et last_authorized_pos = 0

le numéro de téléphone SMS reçu n’est pas autorisé à tous, afin que chaque

SMS est considérée comme autorisée (GETSMS_AUTH_SMS est retourné)

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

OK ret val :

———–

GETSMS_NO_SMS – aucun SMS a été trouvé à la position spécifiée

GETSMS_NOT_AUTH_SMS – non autorisé SMS trouvés à la position spécifiée

GETSMS_AUTH_SMS – SMS autorisé trouvés à la position spécifiée

un exemple d’utilisation :

GSM gsm ;

char phone_num [20] ; Tableau pour la chaîne de numéro de téléphone 12/15

char sms_text [100] ; Tableau pour la chaîne de texte SMS

autoriser les SMS avec SIM phonebook postes 1.. 3

Si (GETSMS_AUTH_SMS == gsm. GetAuthorizedSMS(1, phone_num, sms_text, 100, 1, 3)) {}

Nouveau SMS autorisé a été détecté à la position de SMS 1

Serial.println ("numéro de téléphone SMS DEBUG:", 0) ;

Serial.println (phone_num, 0) ;

Serial.println ("\r\n SMS texto:", 0) ;

Serial.println (sms_text, 1) ;

}

n’autoriser à tous les SMS avec répertoire SIM

Si (GETSMS_AUTH_SMS == gsm. GetAuthorizedSMS(1, phone_num, sms_text, 100, 0, 0)) {}

Nouveau SMS a été détectée à la position de SMS 1

parce que l’autorisation n’était pas nécessaire

SMS est considérée comme autorisée

Serial.println ("numéro de téléphone SMS DEBUG:", 0) ;

Serial.println (phone_num, 0) ;

Serial.println ("\r\n SMS texto:", 0) ;

Serial.println (sms_text, 1) ;

}

char DeleteSMS(byte position)

supprime les SMS de position spécifiée de SMS

paramètres et valeurs de retour :

position : position de SMS < 1..20 >

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

OK ret val :

———–

0 – SMS n’était pas supprimé

1 – SMS a été supprimé

char GetPhoneNumber (position de l’octet, char * phone_number)

chaîne de numéro de position spécifiée de SIM de téléphone lectures

paramètres et valeurs de retour :

position : position de SMS < 1..20 >

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

phone_number est la chaîne vide

OK ret val :

———–

0 – il n’y a pas de numéro de téléphone sur la position

1 – Numéro de téléphone a été trouvé

phone_number est rempli par la chaîne de numéro de téléphone, terminée par 0 x 00

Il est donc nécessaire de définir la chaîne avec au moins

15 octets (incluant également le caractère d’arrêt 0 x 00)

un exemple d’utilisation :

GSM gsm ;

char phone_num [20] ; Tableau pour la chaîne de numéro de téléphone

Si (1 == gsm. GetPhoneNumber (1, phone_num)) {}

Numéro de téléphone valide sur SIM pos. #1

chaîne de numéro de téléphone est copié dans le tableau phone_num

Serial.println ("numéro de téléphone de débogage:", 0) ;

Serial.println (phone_num, 1) ;

}

else {}

Il y a pas de numéro de téléphone valide sur la SIM pos. #1

Serial.println (« DEBUG là n’est aucun numéro de téléphone », 1) ;

}

char WritePhoneNumber (position de l’octet, char * phone_number)

chaîne de numéro de téléphone écrit à la position spécifiée du SIM

paramètres et valeurs de retour :

position : position de SMS < 1..20 >

Phone_Number : chaîne numérique pour la rédaction de téléphone

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

OK ret val :

———–

0 – Numéro de téléphone n’était pas écrit

1 – Numéro de téléphone a été écrit le 14/15

char DelPhoneNumber(byte position)

Numéro de téléphone de del de la position spécifiée du SIM

paramètres et valeurs de retour :

position : position de SIM < 1..20 >

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

OK ret val :

———–

0 – Numéro de téléphone n’était pas supprimé

1 – Numéro de téléphone a été supprimée

char ComparePhoneNumber (position de l’octet, char * phone_number)

compare spécifié chaîne de numéro de téléphone avec numéro de téléphone stocké à l’emplacement spécifié de la SIM

paramètres et valeurs de retour :

position : position de SMS < 1..20 >

Phone_Number : téléphone numéro chaîne qui devrait être comparer

retour :

ERREUR RET val :

—————

-1 – comm. ligne au module GSM n’est pas gratuit

-2 – module GSM n’a pas répondu dans le délai d’attente

-3 – position doit être > 0

OK ret val :

———–

0 – les numéros de téléphone sont différents

1 – numéros de téléphone sont les mêmes

un exemple d’utilisation :

Si (1 == gsm.ComparePhoneNumber (1, "123456789″)) {}

le téléphone num. » 123456789″ est stocké sur la SIM pos. #1

chaîne de numéro de téléphone est copié dans le tableau phone_num

Serial.println (« DEBUG numéros de téléphone sont les mêmes », 1) ;

}

else {}

Serial.println (« DEBUG numéros de téléphone sont différents », 1) ;

}

Télécharger GSM_Shield_Library

Articles Liés

Comment utiliser et shield Arduino avec le Raspberry Pi

Comment utiliser et shield Arduino avec le Raspberry Pi

Ajouter Arduino boucliers pour le Pi de framboise peuvent être une très grande douleur. Vous finissez par avoir un désordre de fils courir et configuration du logiciel est un défi dans son propre droit.Voici une solution simple pour commencer à utili
Robot pilotée par manette PS3 par l’intermédiaire de shield Arduino et Wifi

Robot pilotée par manette PS3 par l’intermédiaire de shield Arduino et Wifi

il s'agit d'un robot qui utilise les deux manettes de gauche et de droite sur la manette PS3 sur disque « tank-style ». Les châssis, les roues et les moteurs sont achetés en kit. Une Arduino Uno est monté sur le châssis et un bouclier Wifi est empilé
Pantalla tactile ITDB02 2.8 Shield Arduino

Pantalla tactile ITDB02 2.8 Shield Arduino

Pantalla Touch ITDB02 2.8 Shield Arduino está diseñada para todas las tarjetas compatibles con Arduino. Funciona con 3.3V, tiene una etapa de conversión de niveles de 5V para utilizarla con tarjetas como Arduino UNO.Es una pantalla táctil con funcion
Bouclier de batterie Shield Arduino moteur

Bouclier de batterie Shield Arduino moteur

Blindage moteur batterie de Shield ArduinoVidéos YouTube
2.4" TFT LCD tactile Shield Arduino

2.4" TFT LCD tactile Shield Arduino

2.4" TFT LCD tactile Shield Arduino UNO Hello World2.4" diagonale TFT LCD tactile résistif 4 fils LED rétroéclairage de l'écranÉtape 1: Scetch#include / / bibliothèque graphique de base#include / / spécifiques au matériel bibliothèque #include#d
Shield Arduino Audio

Shield Arduino Audio

Dans cette vidéo nous montre les étapes simples pour le montage de votre dossier d'audio shield Arduino. Pour acheter un de ces cas, juste de retour mon projet kickstarter : Arduino Audio bouclierÉtape 1: Comment faire monter votre affaire de Shield
EFCom Tutorial - GPRS/GSM Shield Arduino

EFCom Tutorial - GPRS/GSM Shield Arduino

Bonjour, chaque amateur electronics, récemment nous avons terminé un tutorial sur EFCom, qui peut aider rapidement les apprenants Arduino pour envoyer un message, appeler un téléphone, pendant ce temps, réaliser la communication GPRS, y compris les g
Tutoriel de Shield Arduino moteur

Tutoriel de Shield Arduino moteur

The Shield de moteur Arduino permet de facilement contrôler le sens du moteur et la vitesse en utilisant un Arduino. En ce qui vous permet d'aborder simplement les broches de l'Arduino, il rend très simple d'intégrer un moteur dans votre projet. Il v
Arduino + GSM + PIR = génial

Arduino + GSM + PIR = génial

À l'heure actuelle maison/bureau et beaucoup d'autre endroit sécurité est plus importante. En notre absence ces endroits ne sont pas sécurisés. Pour faire ces Palais garantir des peuples nombreux gardes garder et beaucoup de gens préfèrent les systèm
Caisse en bois bricolage pour shield Arduino LCD

Caisse en bois bricolage pour shield Arduino LCD

Il s'agit d'une mise à niveau pour mon projet "Arduino DIY LCD shield "allez voir comment faire le bouclier à ma chaîne!Il s'agit d'un projet facile à faire, vous devez seulement 2 parties et quelques outils.Étape 1: pièces Vous devez seulement
Capteur + arduino + gsm bouclier

Capteur + arduino + gsm bouclier

c'est ma première fois de télécharger experimentsimplement il s'agit d'un capteur (n'importe quel type de capteur numérique) une fois son sens l'arduino enverra un SMS pour vous avec un texteÉtape 1: quoi aurez-vous besoin ? vous aurez besoin :1_ardu
Envoi de sms si la fumée est détectée (Arduino + GSM SIM900A

Envoi de sms si la fumée est détectée (Arduino + GSM SIM900A

HII tout le mondeDans mon premier instructable je vais faire un détecteur de gaz qui envoie le message à l'utilisateur si la pollution est détectée.Étape 1: Matériaux requis(1) Arduino Uno planche (ou n'importe quel carte Arduino)(2) bouclier GSM (pe
Tutoriel de Shield Arduino sans fil SD

Tutoriel de Shield Arduino sans fil SD

comme son nom l'indique, le bouclier de l'Arduino sans fil SD remplit deux fonctions. Avant tout, ce bouclier permet de vous facilement l'interface avec les modules EMETTEUR-RECEPTEUR Xbee pour créer maillez de réseaux et autres périphériques sans fi
Shield Arduino personnalisé et capteurs

Shield Arduino personnalisé et capteurs

Vue d'ensemble :Cette instructable construira une série de modules de capteur personnalisé et un bouclier d'Arduino. Ces modules sont disponibles de nombreuses sources différentes, mais les fans du site Instructables trouverait probablement satisfact