Datos de sensor via internet movil?

Estoy tratando de enviar 2 datos desde el arduino a un spreadsheet de google y por más que he buscado, no logro encontrar (o entender) la información que necesito.
Tengo un arduino UNO con un GPRS shield (este).

La idea es que a cada hora actualice los datos, pero de momento no logro hacer absolutamente nada.

Otra opción sería enviar los datos como mail, pero preferiría poder actualizar el spreadsheet.

Ahora sin códigos es bastante difícil ver donde podemos ayudarte

Es que no tengo idea de por donde empezar. No he encontrado ningun ejemplo donde ocupen un modulo similar para enviar los datos por internet, solo como SMS.

x dios.. esta plagado de ejemplos.
busca arduino gprs shield y de ahi ve refinando la búsqueda.

amigo saludos, por lo menos sabes como ese sensor puede enviar data a una direccion de web o algo similar?

por q si ya sabes como es que envia la data , la parte de enviarlo a un spreed sheet es mas sencillo.

monoprie:
Estoy tratando de enviar 2 datos desde el arduino a un spreadsheet de google y por más que he buscado, no logro encontrar (o entender) la información que necesito.
Tengo un arduino UNO con un GPRS shield (este).

La idea es que a cada hora actualice los datos, pero de momento no logro hacer absolutamente nada.

Otra opción sería enviar los datos como mail, pero preferiría poder actualizar el spreadsheet.

Encontré este código para enviar a datos a un dominio en particular, pero no he logrado entender como modificarlo para enviar un email o actualizar el spreadsheet.

    #include <SoftwareSerial.h>
SoftwareSerial gprsSerial(7, 8);

void setup()
{
  gprsSerial.begin(19200);
  Serial.begin(19200);

  Serial.println("Config SIM900...");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();

  // attach or detach from GPRS service 
  gprsSerial.println("AT+CGATT?");
  delay(100);
  toSerial();


  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"CONTYPE\",\"GPRS\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=3,1,\"APN\",\"bam.clarochile.cl\"");
  delay(2000);
  toSerial();

  // bearer settings
  gprsSerial.println("AT+SAPBR=1,1");
  delay(2000);
  toSerial();
}


void loop()
{
   // initialize http service
   gprsSerial.println("AT+HTTPINIT");
   delay(2000); 
   toSerial();

   // set http param value
   gprsSerial.println("AT+HTTPPARA=\"URL\",\"http://YOUR.DOMAIN.COM/rest/receiveSensorData?sensorval1=blah&sensorval2=blah\"");
   delay(2000);
   toSerial();

   // set http action type 0 = GET, 1 = POST, 2 = HEAD
   gprsSerial.println("AT+HTTPACTION=0");
   delay(6000);
   toSerial();

   // read server response
   gprsSerial.println("AT+HTTPREAD"); 
   delay(1000);
   toSerial();

   gprsSerial.println("");
   gprsSerial.println("AT+HTTPTERM");
   toSerial();
   delay(300);

   gprsSerial.println("");
   delay(10000);
}

void toSerial()
{
  while(gprsSerial.available()!=0)
  {
    Serial.write(gprsSerial.read());
  }
}

Muchas gracias por la ayuda y paciencia!

Con este codigo solo no creo que funcione debe tener otra parte del lado del servidor para que interprete la data que envias.

monoprie:
Encontré este código para enviar a datos a un dominio en particular, pero no he logrado entender como modificarlo para enviar un email o actualizar el spreadsheet.

    #include <SoftwareSerial.h>

SoftwareSerial gprsSerial(7, 8);

void setup()
{
  gprsSerial.begin(19200);
  Serial.begin(19200);

Serial.println("Config SIM900...");
  delay(2000);
  Serial.println("Done!...");
  gprsSerial.flush();
  Serial.flush();

// attach or detach from GPRS service
  gprsSerial.println("AT+CGATT?");
  delay(100);
  toSerial();

// bearer settings
  gprsSerial.println("AT+SAPBR=3,1,"CONTYPE","GPRS"");
  delay(2000);
  toSerial();

// bearer settings
  gprsSerial.println("AT+SAPBR=3,1,"APN","bam.clarochile.cl"");
  delay(2000);
  toSerial();

// bearer settings
  gprsSerial.println("AT+SAPBR=1,1");
  delay(2000);
  toSerial();
}

void loop()
{
  // initialize http service
  gprsSerial.println("AT+HTTPINIT");
  delay(2000);
  toSerial();

// set http param value
  gprsSerial.println("AT+HTTPPARA="URL","http://YOUR.DOMAIN.COM/rest/receiveSensorData?sensorval1=blah&sensorval2=blah\"");
  delay(2000);
  toSerial();

// set http action type 0 = GET, 1 = POST, 2 = HEAD
  gprsSerial.println("AT+HTTPACTION=0");
  delay(6000);
  toSerial();

// read server response
  gprsSerial.println("AT+HTTPREAD");
  delay(1000);
  toSerial();

gprsSerial.println("");
  gprsSerial.println("AT+HTTPTERM");
  toSerial();
  delay(300);

gprsSerial.println("");
  delay(10000);
}

void toSerial()
{
  while(gprsSerial.available()!=0)
  {
    Serial.write(gprsSerial.read());
  }
}




Muchas gracias por la ayuda y paciencia!

... la parte de enviarlo a un spreed sheet es mas sencillo.

Saludos, quisiera que me ayudases con esta parte sencilla, porque me intereso la idea pero no lo he logrado

He aqui los codigos que he usado:

//zoomkat 9-22-12
//simple client test
//for use with IDE 1.0.1
//with DNS, DHCP, and Host
//open serial monitor and send an e to test
//for use with W5100 based ethernet shields

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; 
//byte serverName[] = {74,125,39,104};
char serverName[] = "https://docs.google.com";
//byte serverName[] = {74,125,67,102};
EthernetClient client;

void sendGET() 
{
  if (client.connect(serverName,80)) { 
    Serial.println("connected");
  
    Serial.println(F("POST /forms/d/1YGWuE5LQNt8oItE-FmNmLsf7cNDNi9fyoglWVdqTGAA/formResponse?entry.1633291925=423&entry.1834626013=AND&submit=Submit HTTP/1.1"));
    Serial.println(F("Host: docs.google.com:443"));
 

    client.println(F("POST /forms/d/1YGWuE5LQNt8oItE-FmNmLsf7cNDNi9fyoglWVdqTGAA/formResponse?entry.1633291925=423&entry.1834626013=AND&submit=Submit HTTP/1.1"));
    client.println(F("Host: docs.google.com:443"));
 
  }
  else {
    Serial.println("fallo la conexion"); 
    Serial.println();
  }
  
  Serial.println("Esperando");
  while(client.connected() && !client.available()) delay(1); 
  Serial.println("Imprimiendo");
  while (client.connected() || client.available()) { 
    char c = client.read(); 
    Serial.print(c);  
  }

  Serial.println();
  Serial.println("desconectando.");
  Serial.println("==================");
  Serial.println();
  client.stop(); 

}

//////////////////////
void setup(){

  if (Ethernet.begin(mac) == 0) {
    Serial.println("Falla configuracion usando DHCP");
    while(Ethernet.begin(mac));
  }

  Serial.begin(9600); 
  Serial.println("Envia una  \"e\" por el monitor serial para probar"); 
}

void loop(){

  if (Serial.available() > 0) 
  {
    if(Serial.read() == 'e') 
    {
     sendGET();
    }
  }  
}

ok max_saeta una pregunta tu quieres enviar datos o recivir, veo que ese codigo dice get no post. al decir get lo q hara es leer datos de la spreed.

si fueras a enviarlos seria post.

otra cosa no hay mas info sobre ese code pa poder ayudarte.

max_saeta:
Saludos, quisiera que me ayudases con esta parte sencilla, porque me intereso la idea pero no lo he logrado

He aqui los codigos que he usado:

//zoomkat 9-22-12

//simple client test
//for use with IDE 1.0.1
//with DNS, DHCP, and Host
//open serial monitor and send an e to test
//for use with W5100 based ethernet shields

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//byte serverName[] = {74,125,39,104};
char serverName[] = "https://docs.google.com";
//byte serverName[] = {74,125,67,102};
EthernetClient client;

void sendGET()
{
  if (client.connect(serverName,80)) {
    Serial.println("connected");
 
    Serial.println(F("POST /forms/d/1YGWuE5LQNt8oItE-FmNmLsf7cNDNi9fyoglWVdqTGAA/formResponse?entry.1633291925=423&entry.1834626013=AND&submit=Submit HTTP/1.1"));
    Serial.println(F("Host: docs.google.com:443"));

client.println(F("POST /forms/d/1YGWuE5LQNt8oItE-FmNmLsf7cNDNi9fyoglWVdqTGAA/formResponse?entry.1633291925=423&entry.1834626013=AND&submit=Submit HTTP/1.1"));
    client.println(F("Host: docs.google.com:443"));

}
  else {
    Serial.println("fallo la conexion");
    Serial.println();
  }
 
  Serial.println("Esperando");
  while(client.connected() && !client.available()) delay(1);
  Serial.println("Imprimiendo");
  while (client.connected() || client.available()) {
    char c = client.read();
    Serial.print(c); 
  }

Serial.println();
  Serial.println("desconectando.");
  Serial.println("==================");
  Serial.println();
  client.stop();

}

//////////////////////
void setup(){

if (Ethernet.begin(mac) == 0) {
    Serial.println("Falla configuracion usando DHCP");
    while(Ethernet.begin(mac));
  }

Serial.begin(9600);
  Serial.println("Envia una  "e" por el monitor serial para probar");
}

void loop(){

if (Serial.available() > 0)
  {
    if(Serial.read() == 'e')
    {
    sendGET();
    }
  } 
}

Saludos.

No tengo mucho conocimiento de los metodos GET y POST, segun he leido los dos sirven para enviar informacion y cargarla, pero como digo en esta area soy novato.
En el sketch use los dos POST y GET solo que el ultimo que probe fue el que publique. Necesito enviar,
alli esta el key de mi spreadsheet y tiene dos campos, puedes probar con ese.

Saludos
Para los interesados: pude lograr cargar datos en un SPreadSheet de google usando Temboo.

Abren una cuenta y siguen los pasos aquí descritos, y pueden cargar tranquilamente la info en una spreadsheet.

EL unico problema es que adjuntanto la libreria DHT y usando un DHT11 para tomar lectura de Humedad y temperatura el sketch se compila para un Arduino UNO y toma

Binary sketch size: 30316 bytes (of a 32256 byte maximum, 93.99 percent).

Si se compila con una Mega 2560, el codigo queda en:
Binary sketch size: 32174 bytes (of a 258048 byte maximum, 12.47 percent).

Asi que en caso de ser necesario usar este metodo seria mejor con un Arduino Mega.

kama_tech:
ok max_saeta una pregunta tu quieres enviar datos o recivir, veo que ese codigo dice get no post. al decir get lo q hara es leer datos de la spreed.

si fueras a enviarlos seria post.

otra cosa no hay mas info sobre ese code pa poder ayudarte.

get y post son dos metodos diferentes y ambos permiten enviar y recibir ,la diferencia es que con get la informacion va en la misma url y con post va en el cuerpo de la solicitud y no es visible en la url.si haces una web con un formulario puedes enviarlo al servidor por get o por post y en el servidor estaran disponibles los datos en los arrays $_POST o $_GET segun el metodo elegido.