Shield Arduino GSM (1 / 3 paso)

Paso 1: La GSM biblioteca

Esta es la documentación de la biblioteca de GSM_shield:

Aquí es una Biblioteca de GSM_shield destinados a Shield GSM por Futura Elettronica (www.futurashop.it).

Esta biblioteca se deriva GSM biblioteca http://www.hwkitchen.com de Hwkitchen e incluir la biblioteca de NewSoftSerial comunicarse con el pin 4 (RX) y 5 (TX).

También puede utilizar el pin 0 y 1 (RX y TX) pero usted debe desconectar el módulo para subir el boceto (por lo que no es muy agradable), y debe modificar la biblioteca.

Cómo instalar la librería de Arduino

Después de descargar de la biblioteca GSM_Shield descomprimir la carpeta GSM_Shield para Arduino

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

En el GSM_Shield.zip usted puede encontrar la biblioteca para comunicarse con el módulo gsm y el archivo para utilizar el NewSoftSerial.

Descripción básica

Biblioteca de GSM_Shield se crea como clase estándar con los archivos de fuente de Gsm_Shield.cpp y Gsm_Shield.h. Clase de GSM_Shield se basa principalmente en la comunicación serial

la placa Arduino y el módulo GSM a GSM escudo. Hay estándar usado en los comandos para la comunicación con el módulo GSM.

La versión actual de biblioteca utiliza versión bloqueo de la comunicación.

Esto significa que el programa se bloquea hasta que termina la función de comunicación – así que hasta que los datos requeridos son enviados y necesaria se recibe respuesta. La ventaja de ese enfoque bloqueo es que es fácil de

entender el flujo del programa. Por otro lado también hay desventajas que no podemos usar los recursos de procesador en el tiempo cuando el programa sólo espera los datos entrantes.

Nota: Preste atención al modo de comunicación serial. Con el hardware de serie (pin 0 y 1) puede alcanzar la velocidad por defecto del módulo SIM900 (115200). Pero si utilizas el pin 4 y 5 que no es compatible con la biblioteca de NewSoftSerial (reciban) la velocidad de transmisión, por lo que debe elegir una velocidad en baudios inferior.

Con el comando TurnOn(baudrate) se enciende el módulo y fijar la velocidad de transmisión. por ejemplo, TurnOn(9600);

Métodos

Hay descritas funciones importantes para el usuario final de este documento.

La biblioteca de GSM_Shield contiene también algunas funciones que se utilizan internamente

y no se describen en el documento. También es posible utilizar estos

funciones por parte del usuario final claro como ellos se definen como públicos pero hay

es necesario para determinar el código de biblioteca con notas.

int LibVer(void)

Devuelve la versión de la biblioteca en formato XYY-significa X.YY (e.g. 100 significa vers 1.00).

Muestra: GSM_Shield_LibVer

void TurnOn(baud)

se enciende el módulo GSM módulo está apagado y envía algunos inicialización en los comandos que se pueden enviar antes de registro -> InitParam(PARAM_SET_0)

Debe utilizarse al principio del bosquejo en la función setup().

Establece también la velocidad de transmisión del módulo (Nota: Si utilizas el serial de hardware, no hay ningún límite a la velocidad de transmisión, 115200 es possibile. Pero utilizando el pin 4 y 5 de la NewSoftSerial debe ser el uso y el límite de velocidad es de 57600).

possibile valor de velocidad en baudios: 4800, 9600, 19200, 38400, 57600, 115200 (no uso con esta biblioteca que incluyen NewSoftSerial)

void setup()

{

GSM. TurnOn(9600);

}

Muestra: GSM_Shield_LibVer

void InitParam(byte group)

Envía los parámetros para la inicialización de módulo GSM
Grupo: 0 – parámetros del grupo 0-no es necesario estar registrado en el GSM

AT & F

1-parámetros del grupo 1 – es necesario estar registrado

AT + CLIP = 1

AT + CMEE = 0

AT + CMGF = 1

Muestra: GSM_Shield_LibVer

Eco vacío (estado bytes)
Función para activar o desactivar el eco

Echo (1) activar el modo de eco GSM

Echo(0) desactivar el modo eco GSM

Muestra: GSM_Shield_LibVer

byte CheckRegistration(void)

comprueba si el módulo GSM está inscrito en la red del G/M.

Este método se comunica directamente con el módulo GSM en contraste con el método IsRegistered() que dice la bandera de la module_status

(este indicador se encuentra dentro de este método)

debe llamarse regularmente en el lugar en el circuito del dibujo principal

(recomendación repetir tiempo es de 1 seg a 10 seg.)

valus de vuelta:

REG_NOT_REGISTERED-no registrado

REG_REGISTERED – módulo GSM está registrado

REG_NO_RESPONSE – GSM no respuesta

REG_COMM_LINE_BUSY – línea comm no es gratis

Muestra: GSM_Shield_Reg

byte IsRegistered(void)

Devuelve la bandera si el módulo GSM está registrado en la red del G/M

Este método no se comunica directamente con el módulo GSM,

sólo lee la bandera por lo que es muy rápido a diferencia de CheckRegistration()

que toma más de 20msec.

se recomienda utilizar esta función cada vez que es necesario utilizar alguna función GSM que necesita módulo GSM está registrado – comprobación de SMS entrante, control de llama etc..

valus de vuelta:

0 – no registrado

> 0 – módulo GSM está registrado

Muestra: GSM_Shield_Reg

byte CallStatus(void)

comprobaciones de estado de la llamada

valores devueltos:

CALL_NONE – ninguna llamada

CALL_INCOM_VOICE-llamada de voz entrante

CALL_ACTIVE_VOICE-llamada de voz activa

CALL_NO_RESPONSE – sin respuesta

Muestra: GSM_Shield_Call

byte CallStatusWithAuth (char * phone_number, first_authorized_pos bytes, last_authorized_pos bytes)

comprueba estado de llamada (entrante o activo) y hace de autorización con rango especificado de posiciones SIM

los parámetros y valores devueltos:

phone_number: un puntero donde se colocará la cadena Tel.: número de llamada actual por lo que debe reservarse el espacio para la cadena de número de teléfono

first_authorized_pos: inicial posición de agenda SIM donde comienza el proceso de autorización

last_authorized_pos: última posición de la agenda SIM donde termina el proceso de autorización

Note(Important):

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

En caso first_authorized_pos = 0 y last_authorized_pos = 0 el número de teléfono entrante recibida no está autorizado, por lo que se considera cada entrante autorizado (se devuelve CALL_INCOM_VOICE_NOT_AUTH)

retorno:

CALL_NONE – no hay actividad de llamadas

CALL_INCOM_VOICE_AUTH – voz entrante – autorizado

CALL_INCOM_VOICE_NOT_AUTH – voz entrante – no autorizado

CALL_ACTIVE_VOICE – voz activa

CALL_INCOM_DATA_AUTH-llamada de datos – autorizado

CALL_INCOM_DATA_NOT_AUTH-llamada de datos – no autorizado

CALL_ACTIVE_DATA-llamada de datos activa

CALL_NO_RESPONSE – no hay respuesta para el comando AT

CALL_COMM_LINE_BUSY – línea comm no es gratis

void PickUp(void)

recoge la llamada entrante

Muestra: GSM_Shield_Call

void HangUp(void)

cuelga la llamada (entrante o activo)

Muestra: GSM_Shield_Call

void Call(char *number_string)

llama al número específico

por ejemplo, gsm. Call("+390123456789″);

Convocatoria anulada (int sim_position)

llama al número almacenado en la posición especificada de la SIM

por ejemplo, gsm. Call(1); Llame al número almacenado en la posición de SIM 1

char SendSMS (char * number_str, char * message_str)

envía un SMS al número de teléfono específico

los parámetros y valores devueltos:

number_str: puntero a la cadena de número de teléfono

message_str: puntero a la cadena de texto SMS

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3 – módulo GSM ha respondido a la cadena "ERROR"

OK ret val:

———–

0 – no se envió el SMS

1 – SMS fue enviado 9/15

ejemplo de uso:

GSM. SendSMS ("00XXXYYYYYYYYY", "Texto");

char SendSMS (sim_phonebook_position byte, char * message_str)

envía SMS a la posición de agenda SIM

los parámetros y valores devueltos:

sim_phonebook_position: posición de la agenda SIM < 1..20 >

message_str: puntero a la cadena de texto SMS

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3 – especificadas la posición debe ser > 0

OK ret val:

———–

0 – no se envió el SMS

1-fue enviado SMS

un ejemplo de uso:

GSM gsm;

GSM. SendSMS (1, "Texto");

char IsSMSPresent(byte required_status)

Averigua si hay presentes al menos un SMS con estado especificado

Si hay nuevo SMS antes de ejecutar IsSMSPresent() este SMS tiene un estado de no leído y entonces después de llamar a estado de IsSMSPresent() método de SMS cambia automáticamente a modo de lectura

los parámetros y valores devueltos:

required_status:

SMS_UNREAD – nuevo SMS – no leer sin embargo

SMS_READ – ya leer SMS

SMS_ALL – todos almacenan SMS

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

OK ret val:

———–

0 – no hay ningún SMS con estado especificado

1..20 – posición donde se almacena el SMS

ejemplo de uso:

posición de Char;

phone_number Char [20]; matriz de la cadena de número de teléfono

char * sms_text;

posición = gsm. IsSMSPresent(SMS_UNREAD);

Si (posición) {/ / leer SMS nuevo

GSM. GetGSM (posición, tel_number y sms_text);

}

char GetSMS (posición de byte, char * phone_number, char * SMS_text, max_SMS_len bytes)

Lee los SMS de posición especificado memory(SIM)

los parámetros y valores devueltos:

posición: posición SMS < 1..20 >

phone_number: un puntero donde se colocará la cadena número de teléfono de SMS recibidos

así el espacio para la cadena de número de teléfono debe ser reservada – ver ejemplo

SMS_text: un puntero donde se colocará el texto

max_SMS_len: longitud máxima de SMS texto excepto string también terminación de carácter 0 × 00

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3 – especificadas la posición debe ser > 0

OK ret val:

———–

GETSMS_NO_SMS-no SMS fue encontrado en la posición especificada

GETSMS_UNREAD_SMS – SMS nuevo fue encontrado en la posición especificada

GETSMS_READ_SMS – ya leer SMS fue encontrado en la posición especificada

GETSMS_OTHER_SMS – otro tipo de SMS se encontró un ejemplo de uso:

GSM gsm;

posición de Char;

char phone_num [20]; matriz de la cadena de número de teléfono

char sms_text [100]; matriz de la cadena de texto SMS

posición = gsm. IsSMSPresent(SMS_UNREAD);

Si {} (posición)

hay nuevo SMS = > leer

GSM. GetGSM (posición, phone_num, sms_text, 100);

Serial.println ("número de teléfono SMS de depuración:", 0);

Serial.println (phone_num, 0);

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

Serial.println (sms_text, 1);

}

char GetAuthorizedSMS (posición de byte, char * phone_number, char * SMS_text, max_SMS_len bytes, first_authorized_pos bytes, last_authorized_pos bytes)

Lee los SMS de memory(SIM) especificado posición y hace autorización-

significa número de teléfono SMS es en comparación con posiciones de agenda SIM especificado y se devuelve en caso de que los números coinciden con GETSMS_AUTH_SMS, de lo contrario se devuelve GETSMS_NOT_AUTH_SMS

los parámetros y valores devueltos:

posición: posición de SMS para leer < 1..20 >

phone_number: un puntero donde se colocará la cadena Tel.: número del SMS recibido por lo que debe reservarse el espacio para la cadena de número de teléfono – ver ejemplo

SMS_text: un puntero donde se colocará el texto

max_SMS_len: longitud máxima de texto excepto terminación 0 × 00 carácter

first_authorized_pos: inicial posición de agenda SIM donde comienza el proceso de autorización

last_authorized_pos: última posición de la agenda SIM donde termina el proceso de autorización

Note(Important):

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

En caso first_authorized_pos = 0 y last_authorized_pos = 0

el número de teléfono SMS recibido no está autorizado, por lo que cada

SMS es considerado como autorizado (se devuelve GETSMS_AUTH_SMS)

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

OK ret val:

———–

GETSMS_NO_SMS-no SMS fue encontrado en la posición especificada

GETSMS_NOT_AUTH_SMS – no autorizada SMS encontrados en la posición especificada

GETSMS_AUTH_SMS – SMS autorizado se encuentra en la posición especificada

un ejemplo de uso:

GSM gsm;

char phone_num [20]; matriz de la cadena de número de teléfono 12-15

char sms_text [100]; matriz de la cadena de texto SMS

autorizar SMS con SIM agenda posiciones 1.. 3

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

nuevo SMS autorizado fue detectado en la posición de SMS 1

Serial.println ("número de teléfono SMS de depuración:", 0);

Serial.println (phone_num, 0);

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

Serial.println (sms_text, 1);

}

no autorizar SMS con agenda de la SIM en todo

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

nuevo SMS fue detectado en la posición de SMS 1

porque no se requiere autorización

SMS se considera autorizado

Serial.println ("número de teléfono SMS de depuración:", 0);

Serial.println (phone_num, 0);

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

Serial.println (sms_text, 1);

}

char DeleteSMS(byte position)

elimina SMS de la posición especificada de SMS

los parámetros y valores devueltos:

posición: posición SMS < 1..20 >

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

OK ret val:

———–

0 – no fue borrado SMS

1-se eliminó SMS

char GetPhoneNumber (posición de byte, char * phone_number)

Lee la cadena de número de la posición especificada del SIM del teléfono

los parámetros y valores devueltos:

posición: posición SMS < 1..20 >

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

phone_number es cadena vacía

OK ret val:

———–

0 – no hay ningún número de teléfono en la posición

1 – se encontró teléfono

phone_number es llenado por la cadena de número de teléfono terminada por 0 × 00

por lo que es necesario definir la cadena de al menos

15 bytes (incluyendo también el carácter de terminación 0 × 00)

un ejemplo de uso:

GSM gsm;

char phone_num [20]; matriz de la cadena de número de teléfono

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

número de teléfono válido en pos SIM #1

cadena de número de teléfono se copia en la matriz de phone_num

Serial.println ("número de teléfono de depuración:", 0);

Serial.println (phone_num, 1);

}

Else {}

no hay número de teléfono válido en la posición SIM #1

Serial.println ("DEBUG allí no es ningún número de teléfono", 1);

}

char WritePhoneNumber (posición de byte, char * phone_number)

escribe cadena número de teléfono a la posición de SIM

los parámetros y valores devueltos:

posición: posición SMS < 1..20 >

phone_number: teléfono número cadena para la escritura

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

OK ret val:

———–

0 – no estaba escrito el número de teléfono

1-número de teléfono fue escrito 14/15

char DelPhoneNumber(byte position)

del número de teléfono de la posición de SIM

los parámetros y valores devueltos:

posición: posición SIM < 1..20 >

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

OK ret val:

———–

0 – no se eliminó el número de teléfono

1-se suprimió el número de teléfono

char ComparePhoneNumber (posición de byte, char * phone_number)

compara especificado cadena de número de teléfono con número de teléfono almacenado en la posición especificada de la SIM

los parámetros y valores devueltos:

posición: posición SMS < 1..20 >

phone_number: teléfono número cadena que debe ser compara

retorno:

ERROR RET. val:

—————

-1 – línea de comunicación con el módulo GSM no es gratis

-2 – módulo GSM no respondió en tiempo de espera

-3-la posición debe ser > 0

OK ret val:

———–

0 – números de teléfono son diferentes

1 – los números son iguales

un ejemplo de uso:

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

el teléfono Nº "123456789″ se almacena en la posición SIM #1

cadena de número de teléfono se copia en la matriz de phone_num

Serial.println ("números de teléfono de depuración son los mismos", 1);

}

Else {}

Serial.println ("números de teléfono de depuración son distintos", 1);

}

Descargar GSM_Shield_Library

Artículos Relacionados

Pantalla táctil ITDB02 2.8″ Shield Arduino

Pantalla táctil ITDB02 2.8″ Shield Arduino

Compatibles con pantalla táctil ITDB02 2.8″ Shield Arduino está diseñada para todas las tarjetas 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 f
WeMo Switch de control con shield Arduino Ethernet

WeMo Switch de control con shield Arduino Ethernet

Hay muchas aplicaciones que permiten controlar dispositivos Belkin WeMo , pero hay no hay un panel de interruptor de hardware como el Matiz aprovechar para tono de Philips.Tan construir uno con un Arduino!Paso 1: materialesPara este proyecto necesita
Control Denon AVR con shield Arduino Ethernet

Control Denon AVR con shield Arduino Ethernet

En este proyecto me he construido un panel de control simple para mi Denon AVR (AVR-X4100W).La mayoría de la Denon A receptores son red, para que los puedas controlar dentro de una interfase web o una aplicación. No hay ninguna documentación oficial
Shield Arduino Audio

Shield Arduino Audio

En este vídeo mostramos los pasos para el montaje de su caso de audio shield Arduino. Para adquirir uno de estos casos, solo volver a mi proyecto de kickstarter: Arduino Audio escudoPaso 1: Cómo montar tu caso de Shield Arduino Audio DSPEl primer pas
Tutorial EFCom - GSM/GRPS Shield Arduino

Tutorial EFCom - GSM/GRPS Shield Arduino

Hola, cada aficionado de la electrónica, hace poco hemos terminado un tutorial acerca de EFCom, que puntualmente puede ayudar a los estudiantes de Arduino a enviar un mensaje, llamar a un teléfono, mientras tanto, realizar comunicación GPRS, incluyen
Sensor + arduino + gsm escudo

Sensor + arduino + gsm escudo

esta es mi primera vez para subir el experimentosimplemente se trata de un sensor (cualquier tipo de sensor digital) una vez sentido el arduino le enviará un SMS con un textoPaso 1: ¿qué se necesita? se necesita:uno de 1_arduino o duemilanove (podría
Arduino + GSM + PIR = impresionante

Arduino + GSM + PIR = impresionante

En actualidad casa u oficina y en muchos lugares la seguridad es más importante. En nuestra ausencia estos lugares no son seguros. Para hacer estos palacios segura a muchos pueblos mantienen guardias y muchas personas prefieren los sistemas de seguri
Shield Arduino sous-vide

Shield Arduino sous-vide

* Nota * este proyecto es realizado por un grupo de estudiantes de la Politécnica de SingapurLas herramientas y componentes fueron proporcionados por nuestro supervisor FYP Teo Shin Jen.Sous-vide (/ suË Ë viË d /; En francés "al vacío") [1] es u
Envío de sms si se detecta humo (Arduino + GSM SIM900A

Envío de sms si se detecta humo (Arduino + GSM SIM900A

HII todosEn mi primera instructable presentaré una alarma de gas que envía mensaje al usuario si se detecta contaminación.Paso 1: Materiales necesarios(1) Junta Directiva Arduino Uno (o cualquier placa de Arduino)(2) escudo GSM (personalmente recomen
Shield Arduino personalizado y sensores

Shield Arduino personalizado y sensores

Resumen:Este instructable construirá una serie de módulos de sensor de encargo y un escudo de Arduino. Dichos módulos están disponibles en muchas fuentes diferentes, pero los fanáticos de la Web de Instructables probablemente encontraría satisfacción
LWJM 3 x 3 x 3 led shield arduino de cubo

LWJM 3 x 3 x 3 led shield arduino de cubo

lo que debería ser en el juego:1 – PCB27-LED2 – 6 pernos para Arduino2 – 8 pernos para Arduino3-resistencias1-guía espuma1-pequeño alambre1 – media Wire1-grande alambreNecesitas: hierro, soldadura, cortadores de alambre de la soldadura, pelacables, g
Shield Arduino papel

Shield Arduino papel

Me gusta el Arduino. UNO en particular.Sin embargo, junto con muchos otros, tengo dificultad para ver fácilmente los nombres/números.No te me comenzó a leer los valores de los transistores y circuitos integrados, como no mucho que puedo hacer, aparte
DIY caja de madera para shield Arduino LCD

DIY caja de madera para shield Arduino LCD

Esta es una actualización para mi proyecto "Arduino DIY Pantalla LCD "ir comprobar hacia fuera cómo hacer el escudo en mi canal!Este es un proyecto fácil de hacer, sólo necesitas 2 partes y algunas herramientas.Paso 1: partes Solo necesitas 2 pa
Shield Arduino movimiento

Shield Arduino movimiento

¡ Hola todos! Un par de días atrás, llegó a mi manos «9 ejes movimiento escudo» de Arduino.org. En otras palabras, este bebé.Ahora, lo ha complicado un poco las instrucciones y necesita que instale el IDE Arduino.org para poder usar la biblioteca, pe