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);
}

Go Up