You are on page 1of 21

GSM / GPRS - Arduino Shield

El shield GPRS se basa en el mdulo SIM900 de SIMCOM y compatible con Arduino y


sus clones. El shield GPRS le proporciona una manera de comunicarse mediante la
red de telefona celular GSM. El escudo le permite lograr SMS, MMS, GPRS y audio a
travs de UART mediante el envo de comandos AT (GSM 07.07, 07.05 y SIMCOM
realzada Comandos AT). El shield tambin tiene los 12 GPIO, 2 PWM y un ADC del
mdulo SIM900 (Son toda lgica 2V8) presentes a bordo.
Caractersticas
Quad-Band 850/900/1800/1900 MHz - funcionara en redes GSM en todos los
pases de todo el mundo.
GPRS clase 10/8 multi-slot
GPRS estacin mvil de clase B
Cumple con GSM fase 2/2 +
Clase 4 (2 W @ 850/900 MHz)
Clase 1 (1 W @ 1800 / 1900MHz)
Control a travs de comandos AT - Comandos estndares: GSM 07.07 y 07.05 |
Enhanced Comandos: Comandos AT Simcom.
Servicio de mensajes cortos - de manera que usted puede enviar pequeas
cantidades de datos a travs de la red (ASCII o hexadecimal prima).
Embedded pila TCP / UDP - le permite cargar los datos en un servidor web.
RTC compatible.
puerto serie seleccionable.
jacks para altavoces y auriculares
Bajo consumo de energa - (modo de reposo) 1,5 mA
Rango de temperatura industrial - -40 C a 85 C
Ideas de aplicacin
M2M (Machine 2 Machine) Applicatoions.

Control remoto de electrodomsticos.


Estacin meteorolgica remota o una red de sensores inalmbricos.
Sistema de seguimiento de vehculos con un mdulo GPS.
Precauciones
Asegrese de que su tarjeta SIM est desbloqueado.
El producto se proporciona tal cual y sin un recinto aislante. Tenga en cuenta las
precauciones ESD especialmente en (baja humedad) seco clima.
La configuracin predeterminada de fbrica para el GPRS Escudo UART es 19200
bps 8-N-1. (Se puede cambiar mediante comandos AT).
Hardware Diagram

Poder seleccionar - seleccione la fuente de alimentacin para el escudo GPRS


(poder o 5v de arduino externa)
Toma de alimentacin - conectado a la fuente de alimentacin externa 4,8 ~ 5 V CC
Interfaz de la antena - conectado a la antena externa
Puerto serie seleccione - seleccionar cualquiera de los puertos serie del software o
un puerto serie hardware estar conectado a GPRS shield
Serial Hardware - D0 / D1 de Arduino
serial Software - D7 / D8 de Arduino
LED de estado - dice si el poder de SIM900 es en
La luz neta - dir el estado acerca SIM900 ligarse a la red
UART de SIM900 - pines UART ruptura de SIM900
Micrfono - para responder a la llamada de telfono
altavoz - para responder a la llamada de telfono
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
uso Pins, en Arduino

D0 - Unused si selecciona el puerto serie de software para comunicarse con GPRS


Escudo
D1 - Unused si selecciona el puerto serie de software para comunicarse con GPRS
Escudo
D2 - Unused
D3 - Unused
D4 - Unused
D5 - Unused
D6 - Unused
D7 - si se selecciona el puerto serie de software para comunicarse con GPRS
Escudo
D8 - si se selecciona el puerto serie de software para comunicarse con GPRS
Escudo
D9 - Se utiliza para el control de software de la energa para arriba o abajo de la
SIM900
D10 - Unused
D11 - Unused
D12 - Unused
D13 - Unused
D14 (A0) - Unused
D15 (A1) - Unused
D16 (A2) - Unused
D17 (A3) - Unused
D18 (A4) - Unused
D19 (A5) - Unused
Nota: A4 y A5 estn conectados a la Pines I2C en el SIM900. El SIM900 sin
embargo no se puede acceder a travs del I2C.
Empezando
1. Inserte una tarjeta SIM de desbloqueo
2. Asegrese de que la plataforma de la antena correctamente abrochado y montar la
antena GSM

3. Seleccione el puerto de comunicaciones adecuadamente mediante los puentes

4. Ensamble GPRS escudo para Arduino y descargar el boceto


5. Pulse la tecla de encendido unos 2 segundos para activar el escudo GPRS
LEDs indicadores
Hay tres indicadores LED (PWR (verde), Status (azul), Luz Net (Red)) sobre el
Escudo GPRS, los usuarios pueden conocer el estado de funcionamiento de la
pantalla basado en los tres indicadores LED. La informacin detallada por favor
consulte la siguiente tabla:

Encienda el Escudo GPRS


El Escudo GPRS se puede activar de dos maneras:
1. Hardware de disparo; Pulse el botn ON / OFF Botn unos dos segundos. Los
escenarios de potencia de hasta ilustra la siguiente figura:

2. Software de disparo; Si utilizar esta manera de encender el Escudo GPRS, JP


necesita ser soldado, entonces digital Pin 9 de la Arduino actuar como puerto
Software gatillo y Digital Pin 9 no pueden ser usados como otro propsito. A
continuacin, dar digital Pin 9 a Encienda Impulse puede alimentar hasta el Escudo
GPRS. Los escenarios de potencia de hasta ilustra la siguiente figura:

El cdigo siguiente es el encendido subrutina para Arduino si se utiliza el software de


disparo(trigger) :

void powerUp()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
}
Cuando el poder sobre el procedimiento se completa, el SIM900 enviar
siguiente cdigo de resultado para indicar el escudo GPRS est listo para
funcionar; Cuando se establece como velocidad de transmisin fija, el SIM900
enviar cdigo de resultado: RDY Este cdigo de resultado no aparece cuando
la velocidad de transmisin automtica est activa.

Apagar el shield GPRS

El Escudo GPRS se puede apagar por maneras siguientes:


1. Procedimiento de apagado normal: Apague el escudo GPRS usando hardware
Triger; Pulse el botn ON / OFF Botn unos dos segundos. El poder por
escenarios como ilustra la siguiente figura:

2. Procedimiento de apagado normal: Si JP se suelda, a continuacin, dar digital


Pin 9 de la Arduino (actan como Software Triger) a Apague Impulse puede
apagar el Escudo GPRS. El poder por escenarios como ilustra la siguiente
figura:

El cdigo siguiente es apagar subrutina para Arduino si usa triger software:


void powerDown()
{
pinMode(9, OUTPUT);
digitalWrite(9,LOW);
delay(1000);
digitalWrite(9,HIGH);
delay(2000);
digitalWrite(9,LOW);
delay(3000);
}

3. Procedimiento de apagado normal: Apague el escudo GPRS mediante el


envo de comandos AT "AT + CPOWD = 1" para SIM900 mdulo.
Cuando dowm poder GPRS Escudo en normal procedimiento de apagado, el
procedimiento permite a los SIM900 Cerrar sesin en la red y permite que el
software para entrar en un estado seguro y guardar los datos antes de
desconectar completamente la alimentacin. Antes de la finalizacin del
procedimiento de apagado del SIM900 enviar cdigo de resultado: POWER
DOWN NORMAL
4. El exceso de tensin o Bajo voltaje automtico de apagado: SIM900 vigilar
constantemente la tensin aplicada en el VBAT.
If el 3,3 tensin, el siguiente URC se presentar:
BAJO VOLTAJE Warnning
If el 4.7V tensin, el siguiente URC se presentar:
Warnning SOBRETENSIN
The rango de tensin acrtica es 3.2V a 4.8V. Si la tensin> 4,8 V o <3.2V,
SIM900 ser apagado automtico pronto. Si la tensin de <3.2V, el siguiente
URC se presentar:
BAJO VOLTAJE ENERGA ABAJO
If la tensin> 4.8V, la siguiente URC se presentar:
SOBRE-VOLTAJE DE LA ENERGA ABAJO

5. El exceso de temperatura o Sub-automtica de la temperatura de apagado:


SIM900 har un seguimiento continuo de la temperatura del mdulo.
If la temperatura> 80 , el siguiente URC se presentar:
+ CMTE: 1
If la temperatura <-30 , la siguiente URC se presentar:
+ CMTE: -1
The rango de temperatura acrtica es -40 a 85 . Si la temperatura de
potencia> 85 o <-40 , el mdulo ser automtico hasta pronto. Si la
temperatura> + 85 , el siguiente URC se presentar:
+ CMTE: 2
If la temperatura <-40 , la siguiente URC se presentar:
+ CMTE: -2
Cuando el Escudo GPRS encuentra APAGADO escenario, los comandos AT no se
pueden ejecutar. El SIM900 cierra la sesin en la red y entra en el modo de
apagado, slo el RTC sigue activo. POWER DOWN tambin puede ser indicado
por STATUS LED (azul), que est 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 tensin de alimentacin, los usuarios pueden utilizar el
comando "AT + CBC", que incluye un parmetro: valor de la tensin (en mV)
cuando GPRS Escudo est encendido.
Puerto serie (UART) Comunicacin
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 proteccin a cualquier software de serie (D8, D7) o Hardware Serie
(D1, D0) de la informacin Arduino. Detailed se mostr como el cuadro
siguiente:

Nota:
No todos Arduino serie de software de soporte consejos de D7 y D8, Por
ejemplo Arduino Mega y Mega 2560 slo soportan los siguientes pines para RX:
10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69. As Arduino Mega
no es compatible de serie suave en el Pin D7 y D8. Si el uso de escudo GPRS
con Ardiuno Mega, por favor, utilice el de serie del hardware o utilizar los
cables de puente cableado GPRS TX y RX a los pines apoyar interrumpir en
Ardiuno Mega. Y no todos los pines en las interrupciones de cambio apoyo
Leonardo, tan solamente la siguiente se puede utilizar para RX: 8, 9, 10, 11, 14
(MISO), 15 (SCK), 16 (MOSI). Ms informacin sobre la biblioteca Softserial
visite http://arduino.cc/en/Reference/SoftwareSerial
Los usuarios pueden utilizar "AT + IPR =?" Comando para ver baudrate
apoyado, ser la respuesta una lista de velocidad de transmisin soportado.
Los usuarios pueden utilizar "AT + IPR = x" (x es el valor de la velocidad de
transmisin es compatible) para establecer una velocidad de transmisin fija y
guardar la configuracin en la memoria flash no voltil.

Sube Sketch de Arduino

El siguiente esquema configura Arduino / Arduino clon como enlace serie


entre el PC y el GPRS Shield (Jumpers en el lado SWserial). PC se
necesita un software de terminal serie para comunicarse con l Ventana incorporado en HyperTerminal, Serial Monitor de Arduino IDE,
Terminales serie (sscom32) o Bray ++ Terminal.
El Escudo GPRS viene con todos los accesorios que usted necesita para
empezar a trabajar con el envo de datos a travs de la red GSM,
excepto una placa Arduino y una tarjeta SIM GSM. Si desea realizar
llamadas de voz, tambin requerira unos auriculares con micrfono.

Paso 1: Creacin de una configuracin de prueba para el Escudo GPRS


Los comandos AT son comandos de texto simples enviados al mdem
GPRS a travs de su interfaz de serie (UART), as que usted puede
utilizar cualquier software de terminal serie para comunicarse con l.

Nota: Casi todos los comandos AT se debe enviar seguido de retorno de


carro y hay que seleccionar la opcin "+ CR" en el puerto serie
terminal.To experimento con los comandos AT, lo hara

requerir una forma de encender y comunicarse con su escudo GPRS. La


mejor manera de hacer esto utilizando una placa Arduino Duemilanove.
1. Siga los pasos de instalacin de hardware descritas anteriormente
para configurar el sistema de hardware;
2. Asegrese de que el GPRS_TX y GPRS_RX los puentes sobre el Escudo
GPRS estn montados en posicin SWSerial - es decir que queremos
GPRS_TX para conectarse a D7 (RX) y GPRS_RX a D8 (TX).
3. Conecte el Arduino Duemilanove al ordenador mediante un cable USB.
4. El microcontrolador ATmega328P a bordo Duemilanove slo tiene un
UART que se utiliza para comunicarse con el PC. Lo que necesitamos es
un Sketch Arduino se ejecuta dentro de la ATmega328P que emular un
segundo puerto serie (UART) utilizando software en los pines digitales D8
y D7 y parches a travs de toda la comunicacin entre este segundo
puerto de serie del software y el puerto de serie del hardware real. De
esta manera, todos los datos procedentes del ordenador (conectado a la
UART hardware real) se encaminan al Escudo GPRS (conectado al
software UART), entonces, estaramos en condiciones de emitir
comandos AT para controlar el Escudo GPRS. El diagrama de bloques
delineando este esquema se muestra a continuacin.
Para el desarrollo de un programa de este tipo, se requiere utilizar la
biblioteca SoftwareSerial incluidos en las bibliotecas de Arduino 1.0 ya y
el cdigo de demostracin a continuacin.

//Serial Relay - Arduino will patch a


//serial link between the computer and the GPRS Shield
//at 19200 bps 8-N-1
//Computer is connected to Hardware UART
//GPRS Shield is connected to the Software UART
#include <SoftwareSerial.h>
SoftwareSerial GPRS(7, 8);
unsigned char buffer[64]; // buffer array for data recieve over
serial port
int count=0; // counter for buffer array
void setup()
{
GPRS.begin(19200); // the GPRS baud rate
Serial.begin(19200); // the Serial port of Arduino baud rate.
}
void loop()
{
if (GPRS.available()) // if date is comming from softwareserial port
==> data is comming from gprs shield
{
while(GPRS.available()) // reading data into char array
{
buffer[count++]=GPRS.read(); // writing data into array
if(count == 64)break;
}
Serial.write(buffer,count); // if no data transmission ends, write
buffer to hardware serial port
clearBufferArray(); // call clearBufferArray function to clear the
storaged data from the array
count = 0; // set counter of while loop to zero
}
if (Serial.available()) // if data is available on hardwareserial
port ==> data is comming from PC or notebook
GPRS.write(Serial.read()); // write it to the GPRS shield
}
void clearBufferArray() // function to clear buffer array
{
for (int i=0; i<count;i++)
{ buffer[i]=NULL;} // clear all index of array with command NULL
}

1. Sube el boceto a la placa Arduino.


2. Descargue 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. Puede encender o apagar el el SIM900 pulsando el botn
aproximadamente 2 segundo. Tras el encendido, el LED rojo se enciende,
y el verde junto a l parpadear y el escudo ha encontrado la red si
parpadea cada 3 segundos.
Tambin, en el monitor serie debera ver los mensajes del escudo como
RDY
+ Cfun: 1
+ CPIN: LISTO
Llame Ready
Si no puedes ver los mensajes en el monitor serie, debe hacer clic en
"enviar nueva" opcin que aadir el retorno de carro al final del
comando AT y luego enviar el comando AT "AT + IPR = 19200" para
ajustar la velocidad de transmisin de el SIM900.

Paso 2: Envo 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 tratar de enviar un SMS a empezar.

1. Cree la configuracin como se describe en el paso 1 anterior.


2. A travs del software de terminal serie, enve AT + CMGF = 1 y pulse
la tecla Enter. El Escudo GPRS puede enviar mensajes SMS en dos
modos: Modo 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 clic en Aceptar.
3. Haga clic en "enviar nueva" opcin 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
nmero de telfono especificado (sustituya el nmero con el nmero de
telfono del telfono de destino). El Escudo GPRS enviar a> para
recordarle a escribir el mensaje.

4. Comience a escribir su mensaje y cuando haya terminado, y haga clic


en "enviar hexagonal" y luego enviar un hexgono: 1A. El mdem
aceptar el mensaje y responder con un clic en Aceptar. Unos momentos
ms tarde, el mensaje debe ser recibido en el telfono cuyo nmero ha
especificado Usted puede referirse a la imagen de abajo.

NOTA: Si a pesar de seguir los pasos que se especifican arriba, usted no


puede recibir el mensaje en el telfono de destino, entonces puede ser
que usted necesita para establecer el nmero de SMS Message Center.
Enve el comando AT + CSCA = "+ 919032055002" y pulse la tecla Intro.
Enviar este comando en entre el AT + CMGF y comandos AT + CMGS.
Cambie el nmero de telfono especificado en el comando anterior con
el nmero de SMS Center de su proveedor de servicios GSM. El nmero
del centro de mensajes es especfico para cada proveedor de servicios
(por ejemplo, 919 032 055 002 es el nmero del centro de mensajes
para Tata DoCoMo, Pune, India). Usted puede obtener el nmero del
centro de mensajes llamando hasta el centro de atencin al cliente del
proveedor de servicios GSM y preguntar por ello.
SoftwareSerial biblioteca Notas
Con Arduino 1.0 usted debe ser capaz de utilizar la biblioteca
SoftwareSerial incluido con la distribucin (en lugar de NewSoftSerial).
Sin embargo, debe ser consciente de que el bfer reservado para los
mensajes entrantes estn codificado a 64 bytes en el encabezado de la
biblioteca, "SoftwareSerial.h": _SS_MAX_RX_BUFF 1.Define 64 // RX
tamao del bfer
Esto significa que si el mdulo GPRS responde con ms datos que los
que, es probable que perder con un desbordamiento de memoria! Por
ejemplo, la lectura de un SMS desde el mdulo con "AT + CMGR = xx"
(xx es el ndice de mensajes), es posible que ni siquiera ver la parte del
mensaje, porque la informacin del encabezado anterior (como el
nmero de telfono y la hora) ocupa mucho de espacio. La solucin

parece ser la de cambiar manualmente _SS_MAX_RX_BUFF a un valor


ms alto (pero razonable para que no use todo lo que recuerdo
precioso!)
La biblioteca SoftwareSerial tiene las siguientes limitaciones (tomadas
de la pgina arduino) Si se utiliza el software de mltiples puertos serie,
slo uno puede recibir datos a la vez.
http://arduino.cc/hu/Reference/SoftwareSerial Esto significa que si
intenta agregar otro dispositivo serie es decir arboleda LCD serie puede
recibir errores de comunicacin a menos que usted embarcaciones de su
cdigo cuidadosamente.
Un cdigo fuente simple Ejemplos
El cdigo de demostracin a continuacin es para el Xduino para enviar
mensajes SMS / marcar una llamada de voz / enve una solicitud HTTP a
un sitio web y subir datas a la Pachube. Se ha probado en Arduino
Duemilanove pero funcionar en cualquier variante compatible, Plesse
en cuenta que este bosquejo utiliza la UART sorfware de ATmega328P.
por favor, siga los siguientes pasos para ejecutar este bosquejo.
1. Con el Escudo GPRS eliminado, descargar este bosquejo en tu
Arduino.
2. Desconecte el Xduino desde el puerto USB para eliminar la fuente de
energa.
3. Establezca el puerto serie los puentes sobre el Escudo GPRS en
posicin SWserial, para usar el puerto serie Soft de Arduino.
4. Conecte la antena al Escudo GPRS e inserte la tarjeta SIM.
5. Monte el Escudo GPRS en Arduino.
6. Conecte el Arduino al ordenador por USB, y el fuego de su software de
terminal serie favorita en la computadora, seleccione el puerto COM
para Arduino, configurarlo para operar a 19 200 8-N-1.
7. Escriba el comando en la terminal para ejecutar diferentes funciones,
threr son 4 funciones en la demo:
1. Si la entrada 't', la demo se enviar un mensaje SMS a otro telfono
mvil que se establece (es necesario establecer el nmero en el cdigo);
2. Si la entrada 'd', el programa va a marcar una llamada a otro telfono
mvil que se haya definido (tambin es necesario que usted encuentra
en el cdigo);

3. Si la entrada 'h', se va a presentar una peticin http a una web que


desea acceder (se necesita configurar la direccin web en el cdigo),
devolver una cadena desde el sitio web si va correctamente;
4. Si la entrada 's', que subir las datas a la Pachube (para el detalle se
puede hacer referencia a la explicacin en el cdigo). Te recomiendo
entrada
antes
la entrada
's', porque subir datas a la Pachube
/*Note:
this 'h'
code
is a de
demo
for how to
usingnecesita
gprs shield
to
send
sms
message,
hacer algn ajuste, despus de ejecutar la funcin de presentar
dial a voice call and
una peticin http, se establecer el ajuste.

send a http request to the website,


upload data to pachube.com by TCP
8. Si el programa devuelve el error en la terminal
despus de teclear el
break;
connection,
}
comando, no se Digital
preocupe,
tratar de introducir el comando de
The microcontrollers
Pinslo
7 and
if (mySerial.available())
hencenuevo.
allow unhindered
Serial.write(mySerial.read());
communication with GPRS Shield using
}
SoftSerial Library.
///SendTextMessage()
IDE: Arduino 1.0 or later
///this function is to send a sms
Replace the following items in the code:
message
1.Phone number, don't forget add the
void SendTextMessage()
country code
{
2.Replace the Access Point Name
mySerial.print("AT+CMGF=1\r");
3. Replace the Pachube API Key with your
//Because we want to send the SMS
personal ones assigned
in text mode
to your account at cosm.com
delay(100);
*/
mySerial.println("AT + CMGS
#include <SoftwareSerial.h>
= \"+86138xxxxx615\"");//send sms
#include <String.h>
message, be careful need to add a
SoftwareSerial mySerial(7, 8);
country code before the cellphone
void setup()
number
{
delay(100);
mySerial.begin(19200); // the GPRS baud
mySerial.println("A test
rate
message!");//the content of the
Serial.begin(19200); // the GPRS baud
message
rate
delay(100);
delay(500);
mySerial.println((char)26);//the
}
ASCII code of the ctrl+z is 26
delay(100);
void loop()
mySerial.println();
{
}
//after start up the program, you can
///DialVoiceCall
using terminal to connect the serial of
///this function is to dial a voice
gprs shield,
call
//if you input 't' in the terminal, the
void DialVoiceCall()
program will execute SendTextMessage(),
{
it will show how to send a sms message,
mySerial.println("ATD +
//if input 'd' in the terminal, it will
+86138xxxxx615;");//dial the number
execute DialVoiceCall(), etc.
delay(100);
if (Serial.available())
mySerial.println();
switch(Serial.read())
}
{
///SubmitHttpRequest()
case 't':
///this function is submit a http
SendTextMessage();
request
break;
///attention:the time of delay is
case 'd':
very important, it must be set
DialVoiceCall();
enough
break;
void SubmitHttpRequest()
case 'h':
{
SubmitHttpRequest();
mySerial.println("AT+CSQ");
break;
delay(100);
case 's':
ShowSerialData();// this code is to
Send2Pachube();
show the data from gprs shield, in

delay(100);
ShowSerialData();
mySerial.println("AT+SAPBR=3,1,\"CONTYPE\",
\"GPRS\"");//setting the SAPBR, the
connection type is using gprs
delay(1000);
ShowSerialData();
mySerial.println("AT+SAPBR=3,1,\"APN\",\"CM
NET\"");//setting the APN, the second need
you fill in your local apn server
delay(4000);
ShowSerialData();
mySerial.println("AT+SAPBR=1,1");//setting
the SAPBR, for detail you can refer to the
AT command mamual
delay(2000);
ShowSerialData();
mySerial.println("AT+HTTPINIT"); //init the
HTTP request
delay(2000);
ShowSerialData();
mySerial.println("AT+HTTPPARA=\"URL\",\"www
.google.com.hk\"");// setting the httppara,
the second parameter is the website you
want to access
delay(1000);
ShowSerialData();
mySerial.println("AT+HTTPACTION=0");//submi
t the request
delay(10000);//the delay is very important,
the delay time is base on the return from
the website, if the return datas are very
large, the time required longer.
//while(!mySerial.available());
ShowSerialData();
mySerial.println("AT+HTTPREAD");// read the
data from the website you access
delay(300);
ShowSerialData();
mySerial.println("");
delay(100);
}
///send2Pachube()///
///this function is to send the sensor data
to the pachube, you can see the new value
in the pachube after execute this
function///
void Send2Pachube()
{
mySerial.println("AT+CGATT?");

delay(100);
ShowSerialData();
mySerial.println("AT+CSTT=\"CMNET\"");//sta
rt task and setting the APN,
delay(1000);
ShowSerialData();
mySerial.println("AT+CIICR");//bring up
wireless connection
delay(300);
ShowSerialData();
mySerial.println("AT+CIFSR");//get local IP
adress
delay(2000);
ShowSerialData();
mySerial.println("AT+CIPSPRT=0");
delay(3000);
ShowSerialData();
mySerial.println("AT+CIPSTART=\"tcp\",\"api
.cosm.com\",\"8081\"");//start up the
connection
delay(2000);
ShowSerialData();
mySerial.println("AT+CIPSEND");//begin send
data to remote server
delay(4000);
ShowSerialData();
String humidity = "1031";//these 4 line
code are imitate the real sensor data,
because the demo did't add other sensor, so
using 4 string variable to replace.
String moisture = "1242";//you can replace
these four variable to the real sensor data
in your project
String temperature = "30";//
String barometer = "60.56";//
mySerial.print("{\"method\": \"put\",\"reso
urce\": \"/feeds/42742/\",\"params\"");//he
re is the feed you apply from pachube
delay(500);
ShowSerialData();
mySerial.print(": {},\"headers\": {\"XPachubeApiKey\":");//in here, you should
replace your pachubeapikey
delay(500);
ShowSerialData();
mySerial.print(" \"_cXwr5LE8qW4a296OcDwOUvfddFer5pGmaRigPsiO0");//pachubeapikey
delay(500);

ShowSerialData();
mySerial.print("jEB9OjK-W6vej56j9ItaSlIachgbQjxExuveD95yc8BttXc");//pachubeapikey
delay(500);
ShowSerialData();
mySerial.print("Z7_seZqLVjeCOmNbEXUva45t6FL8
AxOcuNSsQS\"},\"body\":");
delay(500);
ShowSerialData();
mySerial.print("
{\"version\": \"1.0.0\",\"datastreams\": ");
delay(500);
ShowSerialData();
mySerial.println("[{\"id\": \"01\",\"current
_value\": \"" + barometer + "\"},");
delay(500);
ShowSerialData();
mySerial.println("{\"id\": \"02\",\"current_
value\": \"" + humidity + "\"},");
delay(500);
ShowSerialData();
mySerial.println("{\"id\": \"03\",\"current_
value\": \"" + moisture + "\"},");
delay(500);
ShowSerialData();
mySerial.println("{\"id\": \"04\",\"current_
value\": \"" + temperature +
"\"}]},\"token\": \"lee\"}");
delay(500);
ShowSerialData();
mySerial.println((char)26);//sending
delay(5000);//waitting for reply, important!
the time is base on the condition of
internet
mySerial.println();
ShowSerialData();
mySerial.println("AT+CIPCLOSE");//close the
connection
delay(100);
ShowSerialData();
}
void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read());
}

You might also like