Go Down

Topic: Status entradas/salidas -> Google docs (Read 1 time) previous topic - next topic

conander


Hola,
Me gustaria saber si es posible con un arduino+ethernet subir informacion a una hoja de calculo de google docs.
Que se fueran añadiendo lineas al archivo.
Se me ocurren las siguiente aplicaciones:
· Subir a una hoja de calculo la temperatura y la hora
· Subir el estado de entradas y salidas cada 5 min de un arduino. Como un historico.
...
...
Saludos!!!!!

flico

Si se puede. En la pagina de google existe mucha documentacion para usar el API que permite subir datos a Google Docs
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

conander

Hola, ¿Conoceis algun proyecto de hack a day con alguna aplicación en concreto?
Gracias

flico

No lo recuerdo, todo el mundo usa pachube
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

PascuaL

Ésto estaba en el foro.
Code: [Select]
/*
        * A simple sketch that uses Ethernet Shield to send some values (via POST) to GoogleDocs
        * Based on code by RobertMParker for the WiShield <http://asynclabs.com/forums/viewtopic.php?f=16&t=489>
 */

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

#define DEBUG_PRINT // comment to disable Serial.print

long unsigned int time =0;

//Wireless configuration parameters ----------------------------------------
byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {
  192,168,0,3};   // IP address of Ethernet Shield
byte gateway[] = {
  192,168,0,1};   // router or gateway IP address
byte subnet[]    = {
  255,255,255,0}; // subnet mask for the local network

// IP Address for spreadsheets.google.com
byte ipGoogle[] = {
  74,125,67,102};
char hostname[] = "spreadsheets.google.com";
char url[] = "/formResponse?formkey=<ENTER_YOUR_KEY_HERE>";



// create a client that connects to Google
Client clientGoogle(ipGoogle,80);

void setup()
{  
  // Enable Serial output and ask WiServer to generate log messages (optional)
#ifdef DEBUG_PRINT
  Serial.begin(115200);
#endif //DEBUG_PRINT
  Ethernet.begin(mac, ip, gateway, subnet);

  // give the Ethernet shield a second to initialize
  delay(1000);
  int time = millis();
  clientGoogle.connect();
}


void loop()
{
  float temperature = (float) random(1000)/10.; // create some random values to test
  float humidity = 45 + (millis()%1000)/100.;
  if ( millis() > time + 10000 && clientGoogle.connected()){ // update sheet each 10 s
    String feedData = "entry.0.single=" + String((int)temperature) + "," + String(int(temperature*100)%100) + "&entry.1.single=" + String(int(humidity)) + "," + String(int(humidity*100)%100) + "&pageNumber=0&backupCache=&submit=Envoyer";
    //Serial.println(feedData);
    postRequest(clientGoogle, ipGoogle, 80, hostname, url, feedData);
    time = millis();
  }
  delay(10);
}

void postRequest(Client client, byte *ip, unsigned int port, char *hostName, char *url, String feedData){
  String buf = "POST " + String(url) + " HTTP/1.1";

#ifdef DEBUG_PRINT
  Serial.println(buf);
  Serial.println("Host: " + String(hostName));
  Serial.println("Content-Type: application/x-www-form-urlencoded");
  Serial.println("Content-Length: " + String(feedData.length()));
  Serial.println("");
  Serial.println(feedData);
  Serial.println("");
  Serial.println("");
#endif

  client.println(buf);
  client.println("Host: " + String(hostName));
  client.println("Content-Type: application/x-www-form-urlencoded");
  client.println("Content-Length: " + String(feedData.length()));
  client.println("");
  client.println(feedData);
  client.println("");
  client.println(""); // POST request as GET ends with 2 line breaks and carriage returns (\n\r);
}

conander

Menos mal que hay gente como Pascual!
Gracias, lo voy a probar.
Saludos

Sergegsx

#6
Nov 05, 2012, 10:21 pm Last Edit: Nov 07, 2012, 09:56 am by Sergegsx Reason: 1

Menos mal que hay gente como Pascual!
Gracias, lo voy a probar.
Saludos



haciendo amigos?

Es bastante descalificativo lo de "menoss mall"

Una simple busqueda en google te ofrece ese codigo como primer resultado junto con un tutorial completo

Por lo que de "menos mal" nada, haz tu parte!!!




Go Up