Anda di halaman 1dari 17

Caracteristicas

 Quad-Band 850/900/1800/1900 MHz - funcionaría en redes GSM en todos los países de todo el mundo.
 GPRS multi-slot clase 10/8
 GPRS estación móvil de clase B
 Cumple con la fase GSM 2/2 +
 Clase 4 (2 W @ 850/900 MHz)
 Clase 1 (1 W @ 1800 / 1900MHz)
 Control a través de comandos AT - Comandos estándar: GSM 07.07 y 07.05 | Enhanced Comandos: SIMCOM
comandos AT.
 Servicio de mensajes cortos - por lo que se puede enviar pequeñas cantidades de datos a través de la red
(ASCII o hexadecimal en bruto).
 TCP Embedded / pila UDP - le permite cargar datos a un servidor web.
 RTC compatible.
 puerto serie seleccionable.
 jacks altavoces y auriculares
 Bajo consumo de energía - 1,5 mA (modo de espera)
 Rango de temperatura industrial - -40 ° C a +85 ° C
Presupuesto

Ideas de aplicación
 M2M (Machine 2 Machine) Applicatoions.
 El control remoto de aparatos.
 Estación meteorológica remota o una red de sensores inalámbricos.
 Sistema de seguimiento de vehículos con un módulo GPS.

precauciones
 Asegúrese de que su tarjeta SIM está desbloqueado.
 El producto se proporciona tal cual sin un recinto aislante. Tenga en cuenta las precauciones ESD
especialmente en tiempo seco (baja humedad).
 El ajuste de fábrica para el GPRS Escudo UART es 19200 bps 8-N-1. (Se puede cambiar mediante comandos
AT).

Diagrama de hardware
 Poder seleccionar - seleccionar la fuente de alimentación para el escudo GPRS (alimentación externa o 5V de
Arduino)
 Toma de alimentación - conectado a la fuente de alimentación externa de 5 V CC 4.8 ~
 interfaz de antena - conectado a la antena externa
 puerto serie seleccione - seleccionar cualquiera de los puertos serie del software o un puerto serie hareware
para ser conectado a GPRS Escudo
 De serie del hardware - D0 / D1 de Arduino
 de serie del software - D7 / D8 de Arduino
 LED de estado - dice si el poder de SIM900 está en
 La luz neta - dirá el estado sobre SIM900 une a la red
 UART del SIM900 - pines UART ruptura de SIM900
 Micrófono - para responder a la llamada de teléfono
 Altavoz - para responder a la llamada de teléfono
 GPIO, PWM y ADC de SIM900 - GPIO, pines PWM y ADC ruptura de SIM900
 tecla de encendido - el poder arriba y hacia abajo para SIM900

 el uso de pines en Arduino


 D0 - Sin usar si se selecciona el puerto serie de software para comunicarse con GPRS Escudo
 D1 - Sin usar si se selecciona el puerto serie de software para comunicarse con GPRS Escudo
 D2 - Sin usar
 D3 - no utilizado
 D4 - Sin usar
 D5 - Sin usar
 D6 - Sin usar
 D7 - Se utiliza si se selecciona el puerto serie de software para comunicarse con GPRS Escudo
 D8 - Se utiliza si se selecciona el puerto serie de software para comunicarse con GPRS Escudo
 D9 - Se utiliza para el control del software de la potencia hacia arriba o abajo de la SIM900
 D10 - Sin usar
 D11 - Sin usar
 D12 - Sin usar
 D13 - Sin usar
 D14 (A0) - Sin usar
 D15 (A1) - No utilizado
 D16 (A2) - Unused
 D17 (A3) - Sin usar
 D18 (A4) - Sin usar
 D19 (A5) - Sin usar
 Nota: A4 y A5 están conectados a los pines I2C en el SIM900. El SIM900 sin embargo no se puede acceder a
través de la I2C.

Empezando
 Pulse la tecla de potencia de unos 2 segundos para encender el escudo GPRS
indicadores LED
Hay tres indicadores LED (PWR (verde), staus (azul), Netlight (rojo)) en el escudo de GPRS, los usuarios pueden
conocer el estado de trabajo del escudo basado en los tres indicadores LED. información detallada, por favor
refiérase a la tabla siguiente:

Encender y apagar el escudo GPRS


Encienda el escudo GPRS
El escudo de GPRS se puede activar de dos maneras:

 1, Hardware Triger ; Presione el botón ON / OFF Botón de energía alrededor de dos escenarios segundos.El
ilustra la siguiente figura:
 2, Software Triger ; Si utilizar esta manera de alimentar el escudo GPRS, JP necesita ser soldada, entonces
Digital Pin 9 de la Arduino actuará como puerto de Software Triger y Digital Pin 9 no pueden ser usados como
otro propósito. A continuación, dar Digital Pin 9 a Encienda el impulso puede encender el escudo GPRS. Los
escenarios de potencia de hasta ilustra de la siguiente figura:
El código siguiente es el encendido subrutina para Arduino si se utiliza el software Triger:

PowerUp vacío ()
{
pinMode (9, OUTPUT);
digitalWrite (9, LOW);
retardo (1000);
digitalWrite (9, HIGH);
retardo (2000);
digitalWrite (9, LOW);
retardo (3000);
}

Cuando el poder sobre el procedimiento se completa, el SIM900 enviará siguiente código de resultado para indicar
el escudo GPRS está listo para funcionar; Cuando se establece como velocidad de transmisión fija, el SIM900
enviará código de resultado: RDY Este código de resultado no aparece cuando la velocidad de transmisión
automática está activa.
Apagado el Escudo GPRS
El escudo de GPRS se puede apagar por maneras siguientes:

 1, apagado Procedimiento normal : Apague el escudo GPRS usando hardware Triger; Presione el botón ON
/ OFF Botón de unos dos segundos.
La potencia abajo escenarios ilustra de la siguiente figura:
2, apague Procedimiento normal : Si JP se suelda, a continuación, dar Digital Pin 9 del Arduino (actúan como
software Triger) a Apague impulso puede apagar el escudo GPRS. La potencia abajo escenarios ilustra de la
siguiente figura:

El código siguiente es apagar subrutina para Arduino si se utiliza el software Triger:

POWERDOWN anular ()
{
pinMode (9, OUTPUT);
digitalWrite (9, LOW);
retardo (1000);
digitalWrite (9, HIGH);
retardo (2000);
digitalWrite (9, LOW);
retardo (3000);
}

 3, apague Procedimiento normal : Apague el escudo GPRS mediante el envío de comandos AT “AT +
CPOWD = 1” a SIM900 módulo.
Cuando GPRS Escudo dowm de energía en el procedimiento normal de apagado, el procedimiento permite a los
SIM900 finalizar una sesión en la red y permite que el software para entrar en un estado seguro y guardar los datos
antes de desconectar completamente la fuente de alimentación. Antes de la finalización del procedimiento apague
el SIM900 enviará código de resultado: POWER DOWN NORMAL
 4, de la sobretensión o subtensión de apagado automático : SIM900 hará un seguimiento continuo de la
tensión aplicada en el VBAT.
①If el 3,3 V ≤ voltaje, se presentará la siguiente URC:

BAJO VOLTAJE Warnning


②If la tensión ≥ 4,7 V, se presentará la siguiente URC:
Warnning SOBRETENSIÓN
③The rango de tensión acrítica es 3.2V a 4.8V. Si la tensión> 4,8 V o <3.2V, SIM900 será apagado automático
pronto. Si la tensión de <3,2 V, la siguiente URC se presentará:
BAJO VOLTAJE POWER DOWN
④If la tensión> 4,8 V, se presentará la siguiente URC:
SOBRE-VOLTAJE ABAJO

 5, exceso de temperatura o Sub-automática de la temperatura de apagado : SIM900 hará un seguimiento


continuo de la temperatura del módulo.
①If la temperatura> 80 ℃, se presentará la siguiente URC:
+ CMTE: 1
②If la temperatura <-30 ℃, se presentará la siguiente URC:
+ CMTE: -1
③The intervalo de temperatura no crítica es -40 ℃ a + 85 ℃. Si la temperatura> 85 ℃ o <-40 ℃, el módulo será
automática de apagado pronto. Si la temperatura> + 85 ℃, se presentará la siguiente URC:
+ CMTE: 2
④If la temperatura <-40 ℃, se presentará la siguiente URC:
+ CMTE: -2
Cuando el escudo se encuentra con GPRS descenso asistido escenario, los comandos AT no se pueden
ejecutar. El SIM900 cierra la sesión en la red y entra en el modo de apagado, sólo el RTC está todavía
activo. ABAJO de potencia también puede ser indicado por LED STATUS (azul), que es apagado en este modo.
Nota :

 Para controlar la temperatura, los usuarios pueden utilizar el comando “AT + CMTE” para leer la
temperatura cuando GPRS escudo está encendido.
 Para controlar la tensión de alimentación, los usuarios pueden utilizar el comando “AT + CBC”, que
incluye un parámetro: valor de voltaje (en mV) cuando GPRS escudo está encendido.
Puerto serie (UART) Comunicación
El escudo GPRS se utiliza el protocolo UART para comunicarse con un clon de Arduino / Arduino; Los usuarios
pueden utilizar los puentes para conectar (RX, TX) de la protección de software, ya sea de serie (D8, D7) o
Hardware Serie (D1, D0) de la información Arduino.Detailed se mostró como el cuadro siguiente:

Nota:
 No todas las placas Arduino apoyan serial software en D7 y D8, por ejemplo Arduino Mega y Mega 2560 sólo
soportan los siguientes pines para RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65 , 66, 67, 68, 69. Así Mega
Arduino no es compatible de serie suave en D7 y D8 Pin. Si se utiliza el escudo GPRS con Ardiuno Mega, por
favor utilice la serie del hardware o utilizar los cables de puente cableado GPRS TX y RX a los pasadores de
soporte interrumpir el Ardiuno Mega. Y no todas las patillas de las interrupciones de cambio de apoyo
Leonardo, por lo que solamente la siguiente se puede utilizar para RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16
(MOSI). Más información sobre la biblioteca Softserial visite http://arduino.cc/en/Reference/SoftwareSerial

 Los usuarios pueden utilizar “AT + IPR =?” Comando para ver velocidad de transmisión soportada, respuesta
en una lista de velocidad de transmisión soportado.
 Los usuarios pueden utilizar “AT + IPR = x” (x es el valor de velocidad de transmisión soportado) para ajustar
una velocidad de transmisión fija y guardar la configuración en la memoria flash no volátil.
Sube Boceto para Arduino

El siguiente esquema configura Arduino / Arduino clon como enlace serie entre el PC y el Escudo GPRS (puentes
en el lado SWserial). PC se necesita un software de terminal serie para comunicarse con ella - Ventana de una
función de HyperTerminal, Serial Monitor de Arduino IDE, terminales serie (sscom32) o Bray Terminal ++ .
El escudo GPRS viene con todos los accesorios que usted necesita para comenzar con el envío de datos a través
de la red GSM, excepto una placa Arduino y una tarjeta SIM GSM. Si desea realizar llamadas de voz, que también
requeriría un auricular con micrófono.
Paso 1: Creación de una configuración de prueba para el Escudo de GPRS
Los comandos AT son comandos simples de texto enviados al módem GPRS a través de su interfaz en serie
(UART), por lo que se puede utilizar cualquier software de terminal serie para comunicarse con él.
Nota: Casi todos los comandos AT debe ser enviada seguido de retorno de carro y hay que seleccionar la opción
"+ CR" en el experimento terminal.To puerto serie con comandos AT, que requeriría una forma de encender y
comunicarse con sus GPRS Proteger. La mejor manera de hacer esto utilizando una placa Arduino Duemilanove.

1. Siga los pasos de instalación de hardware descritos anteriormente para configurar el sistema de hardware;
2. Asegúrese de que el GPRS_TX y GPRS_RX puentes en el Escudo GPRS están montados en posición
SWSerial - es decir que queremos GPRS_TX a ser conectado a D7 (RX) y GPRS_RX a D8 (TX).
3. Conectar el Arduino Duemilanove al ordenador mediante un cable USB.
4. El microcontrolador ATmega328P a bordo Duemilanove sólo tiene un UART que se utiliza para la
comunicación con el PC. Lo que necesitamos es un Arduino Boceto se ejecuta dentro de la ATmega328P
que emular un segundo puerto serie (UART) usando el software en los pines digitales D8 y D7 y de la
corrección a través de toda la comunicación entre este segundo puerto de serie del software y el puerto de
serie del hardware real. De esta manera, todos los datos que llegan desde el ordenador (conectado a la
UART hardware real) serían encaminados al Escudo GPRS (conectado al software UART), entonces, que
sería capaz de emitir comandos AT para controlar el Escudo GPRS. El diagrama de bloques esbozar este
esquema se muestra a continuación.
Para el desarrollo de un programa de este tipo, se requiere utilizar la biblioteca SoftwareSerial incluidos en las
librerías de Arduino 1.0 ya y el código de demostración a continuación.

// relé de serie - Arduino será un parche en una


// enlace serie entre el ordenador y el Escudo de GPRS
// a 19200 bps 8-N-1
// ordenador está conectado a hardware UART
// Escudo GPRS está conectado a la UART Software
# include <SoftwareSerial.h>
GPRS SoftwareSerial (7, 8);
tampón unsigned char [64]; // array tampón para recieve datos a través de puerto
serie
int count = 0; // contador para la matriz del separador
void setup ()
{
GPRS.begin (19200); // la velocidad de transmisión GPRS
Serial.begin (19200); // El puerto serie de la velocidad de transmisión de Arduino.
}
void loop ()
{
si (GPRS.available ()) // si la fecha está llegando desde el puerto SoftwareSerial
==> de datos está viniendo de escudo GPRS
{
while (GPRS.available ()) // lectura de datos en matriz de caracteres
{
tampón [count ++] = GPRS.read (); // escritura de datos en serie
Si (recuento == 64) romper;
}
Serial.write (tampón, count); // si termina ninguna transmisión de datos, escribir
búfer al puerto de serie del hardware
clearBufferArray (); // llamar a la función clearBufferArray para borrar los datos
de la matriz Storaged
count = 0; // conjunto de contadores de tiempo de bucle a cero
}
si (Serial.available ()) // si hay datos disponibles en el puerto hardwareserial ==>
de datos está llegando desde el PC o portátil
GPRS.write (Serial.read ()); // escribirlo en el escudo de GPRS
}
void clearBufferArray () // función para borrar la matriz del separador
{
for (int i = 0; i <cuenta; i ++)
{Buffer [i] = NULL;} // Borrar todos índice de matriz con NULL comando
}

1. .Upload el boceto a la placa Arduino.


2. .download y el fuego de la herramienta de serie si no tiene uno. Seleccione el puerto COM correcto para
Arduino, y ponerlo a funcionar a 19200 8-N-1 y haga clic en "Open Com".
3. Usted puede encender o apagar el la SIM900 pulsando el botón de 2 segundos. Tras el encendido, el LED
rojo se enciende, y el verde al lado de él parpadeará y el escudo ha encontrado la red si parpadea cada 3
segundos.
Además, en el monitor serie debería ver mensajes del escudo como RDY
+ Cfun: 1
+ CPIN: LISTO
llamar Ready
Si no puede ver los mensajes en el monitor serie, debe hacer clic en "enviar nueva" opción que agregará retorno de
carro al final del comando AT y luego enviar comandos AT "AT + IPR = 19200" para ajustar la velocidad de
transmisión de el SIM900.

 Paso 2: Envío de un mensaje de texto (SMS)


Ahora que nuestro sistema de prueba está listo, vamos a jugar un poco con algunos comandos AT manualmente
antes de pasar a programar el Arduino para hacer esto. Vamos a intentar el envío de un SMS a empezar.

1. .Create la configuración como se describe en el Paso 1 anterior.


2. .A través del software de terminal serie, envíe AT + CMGF = 1 y pulse la tecla Intro. El escudo GPRS
puede enviar mensajes SMS en dos modos: modo de texto y PDU (o binario). Dado que queremos enviar
un mensaje legible por humanos, vamos a seleccionar el modo de texto. El escudo GPRS responderá con
un OK.
3. .pulsa "enviar nueva" opción y enviar AT + CMGS = "+ 918446043032". Esto le dará instrucciones al
escudo GPRS para comenzar a aceptar el texto de un mensaje nuevo significado para el número de
teléfono especificado (sustituir el número por el número de teléfono del teléfono de destino). El escudo
GPRS enviará a> para recordarle que escribir el mensaje.
1. .start de escribir el mensaje y cuando haya terminado, y haga clic en "enviar hexagonal" y luego enviar un
hexágono: 1A. El módem aceptará el mensaje y responderá con un OK. Unos momentos después, el
mensaje debe ser recibido en el teléfono cuyo número tenías specified.You puede hacer referencia a la
imagen siguiente.

NOTA: Si, a pesar de seguir los pasos como se especifica anteriormente, usted no es capaz de recibir el mensaje
en el teléfono de destino, entonces podría ser que usted necesita para configurar el número del centro de
mensajes SMS. Enviar el comando AT + CSCA = "+ 919032055002" y pulse la tecla Intro. Enviar este comando
entre el AT + CMGF y comandos AT + CMGS. Sustituir el número de teléfono especificado en el comando anterior
con el número de centro SMS de su proveedor de servicios GSM. El número del centro de mensajes es específico
para cada proveedor de servicios (por ejemplo, 919 032 055 002 es el número del centro de mensajes para Tata
DoCoMo, Pune, India). Usted puede obtener el número del centro de mensajes llamando el centro de atención al
cliente del proveedor de servicios GSM y preguntar por ello.
Notas biblioteca SoftwareSerial
Con Arduino 1.0 debe ser capaz de utilizar la biblioteca SoftwareSerial incluido con la distribución (en lugar de
NewSoftSerial). Sin embargo, debe ser consciente de que el buffer reservado para los mensajes entrantes están
codificados a 64 bytes de la cabecera de la biblioteca, "SoftwareSerial.h": _SS_MAX_RX_BUFF 1.Define 64 // RX
tamaño del búfer
Esto significa que si el módulo GPRS responde con más datos que los que, es probable que perder con un
desbordamiento de memoria! Por ejemplo, la lectura de un SMS desde el módulo con "AT + CMGR = xx" (xx es el
índice de mensajes), es posible que ni siquiera ver la parte del mensaje debido a que la información de la cabecera
precedente (como el número de teléfono y la hora) ocupa mucho del espacio. La solución parece ser la de cambiar
manualmente _SS_MAX_RX_BUFF a un valor más alto (pero razonable para que no utilice todo lo que recuerdo
precioso!)
La biblioteca SoftwareSerial tiene las siguientes limitaciones (tomadas de la página Arduino) Si el uso de múltiples
puertos serie de software, sólo uno puede recibir datos a la vez. http://arduino.cc/hu/Reference/SoftwareSerial Esto
significa que si se intenta añadir otro dispositivo serial es decir arboleda LCD de serie puede recibir errores de
comunicación a menos que crear su código cuidadosamente.

A simple Fuente Ejemplos de código


El código de demostración a continuación es para la Xduino para enviar mensajes SMS / marcar una llamada de
voz / envíe una solicitud HTTP a un sitio web y subir datas más a la Pachube. Se ha probado en Arduino
Duemilanove, pero funcionará en cualquier variante compatible, del plesse en cuenta que este esquema utiliza la
UART sorfware de ATmega328P. por favor, siga los siguientes pasos para ejecutar este boceto.

1. .Con el Escudo GPRS elimina, descarga este bosquejo en su Arduino.


2. .Disconnect la Xduino desde el puerto USB para eliminar la fuente de energía.
3. .SET el puerto serie de los puentes sobre el escudo de GPRS en la posición SWserial, para utilizar el
puerto serie suave de Arduino.
4. .Conectar la antena al Escudo GPRS e inserte la tarjeta SIM.
5. .Montar el Escudo GPRS en la Arduino.
6. .Conectar el Arduino al ordenador a través de USB, y el fuego de su software de terminal serie favorita en
el ordenador, elija el puerto COM para Arduino, configurarlo para operar a 19200 8-N-1.
7. .type comando en el terminal para ejecutar funciones diferentes, threr 4 funciones en la demo:
1. .Si entrada 't', la demo enviará un mensaje SMS a otro teléfono celular el cual se establece (es
necesario establecer el número en el código);
2. .Si la entrada 'D', el programa marcar una llamada a otro teléfono móvil que ajuste (también es
necesario que se establece en el código);
3. .Si entrada 'h', se presentará una solicitud HTTP a una web que desea tener acceso (se necesita
configurar la dirección web en el código), devolverá una cadena desde el sitio web si va
correctamente;
4. .Si entrada 's', subirá los datos básicos a la Pachube (para el detalle se puede hacer referencia a la
explicación en el código). Yo recomiendo encarecidamente que la entrada 'h' antes de la entrada
's', ya que la posibilidad de subir datas más a la Pachube necesita hacer un cierto ajuste, después
de ejecutar la función de presentar una solicitud HTTP, se establecerá el ajuste.
8. .Si el programa devuelve el error en la terminal después de teclear el comando, no se preocupe, sólo tratar
de introducir el comando de nuevo.

/ * Nota: este código es una demostración de cómo usar escudo GPRS para enviar
mensajes SMS, marcar una llamada de voz y
enviar una solicitud HTTP a la página web, los datos de subida a pachube.com por
conexión TCP,

Los microcontroladores pin digital 7 y por lo tanto permitir sin obstáculos


la comunicación con GPRS Shield utilizando Biblioteca SoftSerial.
IDE: Arduino 1.0 o posterior
Sustituir los elementos siguientes en el código:
1.Phone número, no se olvide de añadir el código de país
2.Replace Nombre del Punto de Acceso
3. Sustituir la clave de API Pachube con sus seres personales asignados
a su cuenta en cosm.com
* /
# include <SoftwareSerial.h>
#include <string.h>
SoftwareSerial mySerial (7, 8);
void setup ()
{
mySerial.begin (19200); // la velocidad de transmisión GPRS
Serial.begin (19200); // la velocidad de transmisión GPRS
retardo (500);
}
void loop ()
{
// después de la puesta en marcha del programa, se puede usar el terminal para
conectar la serie del escudo GPRS,
// si la entrada 't' en el terminal, el programa ejecutará SendTextMessage (), se
mostrará cómo enviar un mensaje SMS,
// si la entrada 'D' en el terminal, se ejecutará DialVoiceCall (), etc.
si (Serial.available ())
interruptor (Serial.read ())
{
caso 't':
Envía un mensaje de texto();
descanso;
caso 'r':
RecieveTextMessage (); // Este código de programa por directive'r'to recibir,
mediante la recepción de la información después de la vuelta a llamar a la función
// para verificar que recibe la función. Pero no se puede
mostrar el contenido recibido en la tarjeta SIM.
DialVoiceCall ();
descanso;
caso 'd':
DialVoiceCall ();
descanso;
caso 'h':
SubmitHttpRequest ();
descanso;
casos':
Send2Pachube ();
descanso;
}
si (mySerial.available ())
Serial.write (mySerial.read ());
}
///Envía un mensaje de texto()
/// esta función es enviar un mensaje SMS
SendTextMessage anular ()
{
mySerial.print ( "AT + CMGF = 1 \ r"); // Porque queremos enviar el SMS en modo
texto
retardo (100);
mySerial.println ( "AT + CMGS = \" + 86138xxxxx615 \ ""); // enviar mensaje SMS,
tenga cuidado necesidad de añadir un código de país antes del número de teléfono
móvil
retardo (100);
mySerial.println ( "Un mensaje de prueba!"); // el contenido del mensaje
retardo (100);
mySerial.println ((char) 26); // el código ASCII de la ctrl + z es 26
retardo (100);
mySerial.println ();
}
RecieveTextMessage anular ()
{
//mySerial.print("AT+CMGF=1\r "); // Porque queremos recibir el SMS en modo texto
// retardo (100);
mySerial.print ( "AT + CMGR = 1 \ r"); // Porque queremos recibir el SMS en modo
texto
retardo (100);
mySerial.println ( "AT + CSCA = \" + 86135 ********* \ ""); // Recieve mensaje
SMS, tenga cuidado necesidad de añadir un código de país antes del número de teléfono
móvil
retardo (100);
mySerial.println ( "Un mensaje de prueba!"); // el contenido del mensaje
retardo (100);
mySerial.println ((char) 26); // el código ASCII de la ctrl + z es 26
retardo (100);
mySerial.println ();
// devolver r;
}
/// DialVoiceCall
/// esta función es marcar una llamada de voz
DialVoiceCall anular ()
{
mySerial.println ( "ATD + + 86138xxxxx615;"); // marcar el número
retardo (100);
mySerial.println ();
}
/// SubmitHttpRequest ()
/// esta función es enviar una petición HTTP
/// atención: el tiempo de espera es muy importante, se debe establecer lo
suficientemente
SubmitHttpRequest anular ()
{
mySerial.println ( "AT + CSQ");
retardo (100);
ShowSerialData (); // este código es para mostrar los datos de GPRS escudo, con el
fin de ver fácilmente el proceso de cómo el escudo GPRS envíe una solicitud HTTP, y
la siguiente es para este propósito también.
mySerial.println ( "AT + CGATT?");
retardo (100);
ShowSerialData ();
mySerial.println ( "AT + SAPBR = 3,1, \" contype \ "\ "GPRS \""); // establecer el
SAPBR, el tipo de conexión se usa GPRS
retardo (1000);
ShowSerialData ();
mySerial.println ( "AT + SAPBR = 3,1, \" APN \ "\ "CMNET \""); // establecer el APN,
el segundo necesita llenar en el servidor APN locales
retardo (4000);
ShowSerialData ();
mySerial.println ( "AT + SAPBR = 1,1"); // establecer el SAPBR, para el detalle se
puede hacer referencia a la mamual comando AT
retardo (2000);
ShowSerialData ();
mySerial.println ( "AT + HTTPINIT"); // init la petición HTTP
retardo (2000);
ShowSerialData ();
mySerial.println ( "AT + HTTPPARA = \" URL \ "\ "www.google.com.hk \""); //
establecer el httppara, el segundo parámetro es el sitio web que desea acceder
retardo (1000);
ShowSerialData ();
mySerial.println ( "AT + HTTPACTION = 0"); // enviar la solicitud
retardo (10000); // el retraso es muy importante, el tiempo de retardo es la base en
la declaración de la página web, si los datos básicos de retorno son muy grandes, el
tiempo requerido más tiempo.
(! MySerial.available ()) // tiempo;
ShowSerialData ();
mySerial.println ( "AT + HTTPREAD"); // leer los datos de la página web que el
acceso
retardo (300);
ShowSerialData ();
mySerial.println ( "");
retardo (100);
}
/// send2Pachube () ///
/// esta función es enviar los datos del sensor a la Pachube, se puede ver el nuevo
valor en el Pachube después de ejecutar esta función ///
Send2Pachube anular ()
{
mySerial.println ( "AT + CGATT?");
retardo (100);
ShowSerialData ();
mySerial.println ( "AT + CSTT = \" CMNET \ ""); // inicia la tarea y el
establecimiento de la APN,
retardo (1000);
ShowSerialData ();
mySerial.println ( "AT + CIICR"); // abrir la conexión inalámbrica
retardo (300);
ShowSerialData ();
mySerial.println ( "AT + CIFSR"); // obtener dirección IP local
retardo (2000);
ShowSerialData ();
mySerial.println ( "AT + CIPSPRT = 0");
retardo (3000);
ShowSerialData ();
mySerial.println ( "AT + CIPSTART = \" tcp \ "\ "api.cosm.com \", \ "8081 \""); //
inicia la conexión
retardo (2000);
ShowSerialData ();
mySerial.println ( "AT + CIPSEND"); // comenzar a enviar los datos al servidor
remoto
retardo (4000);
ShowSerialData ();
Cadena de humedad = "1031"; // estos códigos de 4 líneas son imitar los datos del
sensor real, porque la demo did't añadir otro sensor, por lo que usar 4 variable de
cadena para reemplazar.
la humedad String = "1242"; // se puede sustituir estas cuatro variables a los datos
del sensor real en su proyecto
temperatura String = "30"; //
Cadena barómetro = "60.56"; //
mySerial.print ( "{\" método \ ": \" poner \ "\ "recurso \": \ "/ feeds / 42742 /
\", \ "params \""); // aquí es la alimentación aplicar de Pachube
retardo (500);
ShowSerialData ();
mySerial.print ( ": {} \", encabezados \ ": {\" X-PachubeApiKey \ ":"); // aquí,
usted debe reemplazar su pachubeapikey
retardo (500);
ShowSerialData ();
mySerial.print (" \ "_ cXwr5LE8qW4a296O-cDwOUvfddFer5pGmaRigPsiO0"); //
pachubeapikey
retardo (500);
ShowSerialData ();
mySerial.print ( "jEB9OjK-W6vej56j9ItaSlIac-hgbQjxExuveD95yc8BttXc"); //
pachubeapikey
retardo (500);
ShowSerialData ();
mySerial.print ( "Z7_seZqLVjeCOmNbEXUva45t6FL8AxOcuNSsQS \"}, \ "cuerpo \": ");
retardo (500);
ShowSerialData ();
mySerial.print ( "{\ "versión \": \ "1.0.0 \", \ "\" flujos de datos:");
retardo (500);
ShowSerialData ();
mySerial.println ( "[{\" id \ ": \" 01 \ "\ "Current_Value \": \ "" + barómetro +
"\"}");
retardo (500);
ShowSerialData ();
mySerial.println ( "{\" id \ ": \" 02 \ "\ "Current_Value \": \ "" + humedad +
"\"}");
retardo (500);
ShowSerialData ();
mySerial.println ( "{\" id \ ": \" 03 \ "\ "Current_Value \": \ "" + humedad +
"\"}");
retardo (500);
ShowSerialData ();
mySerial.println ( "{\" id \ ": \" 04 \ "\ "Current_Value \": \ "" + temperatura +
"\"}]}, \ "señal \": \ "lee \"}" );
retardo (500);
ShowSerialData ();
mySerial.println ((char) 26); // enviar
retardo (5000); // waitting para la respuesta, importante! el tiempo es la base de
la condición de internet
mySerial.println ();
ShowSerialData ();
mySerial.println ( "AT + CIPCLOSE"); // cerrar la conexión
retardo (100);
ShowSerialData ();
}
ShowSerialData void ()
{
mientras que (mySerial.available ()! = 0)
Serial.write (mySerial.read ());
}

Anda mungkin juga menyukai