Pagina 1 di 1

Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 27/07/2012, 15:58
da gianni.lucia
Salve spero mi possiate aiutare,

ho un problema relativo all'utilizzo del metodo Post della suddetta libreria(inetGSM), in pratica quando inserisco questo metodo nello sketch di esempio del gsm library client al posto del metodo get, il programma va in loop su gsm shield testing da cosa può dipendere? con il file di esempio il metodo httpGet funziona, non è che avete uno sketch di esempio che utilizza questo metodo?
Nella suddetta libreria ho decommentato il metodo tweet per provare ad usarlo ma anche in questo caso il programma va in loop,spero possiate aiutarmi

vi ringrazio anticipatamente per le risposte grazie!!!

Distinti Saluti

Giovanni Lucia

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 27/07/2012, 17:00
da gianni.lucia
Dimenticavo di dire che cerco di fare il post su sito cosm, ho fatto lo stesso con la scheda ethernet shield e il tutto funziona perfettamente, ho provato anche con twitter e il risultato è lo stesso. Help Me!!!

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 28/07/2012, 8:31
da Boris Landoni
Ciao Gianni,
Puoi postare il codice?

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 28/07/2012, 10:22
da gianni.lucia
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "inetGSM.h"
//#include "sms.h"
//#include "call.h"

//To change pins for Software Serial, use the two lines in GSM.cpp.

//GSM Shield for Arduino
//www.open-electronics.org
//this code is based on the example of Arduino Labs.

//Simple sketch to start a connection as client.

InetGSM inet;
//CallGSM call;
//SMSGSM sms;

char msg[50];
int numdata;
char inSerial[50];
int i=0;
boolean started=false;
char apiKey[] = "B-PXnIsZp_s6T59MNvIyJlqnKR2SAKxVdlhpUmFDalR2ST0g";
long feedId = 65329;
char datastreamId[] = "1";
int dataToSend=30;



void setup()
{
  //Serial connection.
  Serial.begin(9600);
  Serial.println("GSM Shield testing.");
  //Start configuration of shield with baudrate.
  //For http uses is raccomanded to use 4800 or slower.
  if (gsm.begin(2400)){
    Serial.println("\nstatus=READY");
    started=true;
  }
  else Serial.println("\nstatus=IDLE");
  
  if(started){
     gsm.SimpleWrite("AT");
     delay(1000);
     gsm.WhileSimpleRead();
    //GPRS attach, put in order APN, username and password.
    //If no needed auth let them blank.
    
    if (inet.attachGPRS("internet.wind", "", ""))
      Serial.println("status=ATTACHED");
    else Serial.println("status=ERROR");
    delay(1000);
    
  
    //Read IP address.
    gsm.SimpleWriteln("AT+CIFSR");
    delay(5000);
    //Read until serial buffer is empty.
    gsm.WhileSimpleRead();
  
    //TCP Client GET, send a GET request to the server and
    //save the reply.
   // numdata=inet.httpPOST("www.cosm.com", 80, "/", msg, 50);
    //Print the results.
    /*Serial.println("\nNumber of data received:");
    Serial.println(numdata);  
    Serial.println("\nData received:"); 
    Serial.println(msg);
   */
   };
  //

if(inet.connectTCP("api.cosm.com", 80))

//  Serial.println("Connesso a Cosm"); 
  
/* gsm.SimpleWrite("GET ");
  gsm.SimpleWrite("/");
  gsm.SimpleWrite(" HTTP/1.0\nHost: ");
  gsm.SimpleWrite("www.google.it");
  gsm.SimpleWrite("\n");
  gsm.SimpleWrite("User-Agent: Arduino");
  gsm.SimpleWrite("\n\n");
  //inet.dettachGPRS();
 */
 gsm.SimpleWrite("POST /v2/feeds/");
    gsm.SimpleWrite(feedId);
    gsm.SimpleWrite("/datastreams/");
    gsm.SimpleWrite(datastreamId);
    gsm.SimpleWrite(".xml?_method=put");
    gsm.SimpleWrite(".csv HTTP/1.1\n");
    gsm.SimpleWrite("Host: api.cosm.com\n");

    gsm.SimpleWrite("X-ApiKey: ");
    gsm.SimpleWrite(apiKey);
    gsm.SimpleWrite("\n");
    gsm.SimpleWrite("Content-Length: ");

    
    gsm.SimpleWriteln("ignoto");

   
  gsm.SimpleWrite(dataToSend);
  gsm.SimpleWrite("\n\n");
  

   
  }
/*  else{ 
    
    Serial.println("Nonn connesso!!!");
    
  }*/



void loop()
{
  //Read for new byte on serial hardware,
  //and write them on NewSoftSerial.
 // serialhwread();
  //Read for new byte on NewSoftSerial.
  // serialswread();
};

void serialhwread(){
  i=0;
  if (Serial.available() > 0){
    while (Serial.available() > 0) {
      inSerial=(Serial.read());
      delay(10);
      i++;      
    }
    
    inSerial='\0';
    if(!strcmp(inSerial,"/END")){
      Serial.println("_");
      inSerial[0]=0x1a;
      inSerial[1]='\0';
      gsm.SimpleWriteln(inSerial);
    }
    //Send a saved AT command using serial port.
    if(!strcmp(inSerial,"TEST")){
      Serial.println("SIGNAL QUALITY");
      gsm.SimpleWriteln("AT+CSQ");
    }
    //Read last message saved.
    if(!strcmp(inSerial,"MSG")){
      Serial.println(msg);
    }
    else{
      Serial.println(inSerial);
      gsm.SimpleWriteln(inSerial);
    }    
    inSerial[0]='\0';
  }
}

void serialswread(){
  gsm.SimpleRead();
}


Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 30/07/2012, 16:04
da gianni.lucia
Ci sono novità?

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 30/07/2012, 19:24
da Boris Landoni
Ho chiesto al collaboratore che ha sviluppato la libreria di dare un occhio al suo codice.
Un attimo di pazienza e risolviamo ;)

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 30/07/2012, 23:14
da MarcoMartines
Ciao, scusami per l'attesa.
In realtà, anche se presente, il metodo POST non è ancora funzionante. E' previsto lo sviluppo per le prossime versioni della libreria.
Il problema del riavvio però non è legato al metodo POST bensì a un discorso di RAM saturata. Infatti Arduino ha a disposizione un numero limitato di KB di RAM destinata all'utilizzo delle variabili. Quando questa memoria viene saturata, Arduino si riavvia.
A breve (questione di giorni) verrà rilasciata una nuova versione destinata al risparmio significativo di RAM.
Marco

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 31/07/2012, 10:37
da gianni.lucia
La ringrazio è stato gentilissimo!!!

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 31/07/2012, 11:00
da gianni.lucia
Ho una domanda, siccome il problema è relativo alla RAM se si usasse il l'arduino mega si risolverebbe il problema?

Re: Problemi utilizzo metodo httPost libreria inetGSM

Inviato: 14/12/2013, 18:51
da dconvert
Buongiorno,

Sono nuovo del forum e volevo spiegare le mie difficoltà con l'inet.POST.
Sul numero 177 di Elettronica IN c'è un articolo per poter utilizzare il GET e il POST e mentre con il get non c'è nessun problema, con il POST non ricevo nulla.

Per essere sicuro di non aver commesso errori ho ricopiato lo sketch di esempio n° 3 dell'articolo, con il seguente risultato:

GSM Shield testing.

status=READY
TEST
status=ATTACHED

10.221.15.65

Number of data received:
0

Data received:

HTTP/1.1 413 Request Entity Too Large
Date: Sat, 14 Dec 2013 1

Spero che mi possiate aiutare, io uso il SIM908.

Grazie in anticipo