File via FTP tramite shield SIM900

Ragazzi non riesco a capire cosa sbaglio, sto eseguendo questo codice secondo questa guida

//Comunicazione FTP
#include <SoftwareSerial.h>

SoftwareSerial mySerial(6, 7);

void setup()
{
  mySerial.begin(9600);   // Setting the baud rate of GSM Module  
  Serial.begin(9600);    // Setting the baud rate of Serial Monitor (Arduino)
  delay(100);
}


void loop()
{
  if (Serial.available()>0)
   switch(Serial.read())
  {
    case 'u':
      mySerial.println ('u');
      upload();
      break;
    case 'r':
      altrafunzionedaimplementare();
      break;
  }

 if (mySerial.available()>0)
   Serial.write(mySerial.read());
}


 void upload()
{
  mySerial.println("AT+SAPBR=3,1,”Contype”,”GPRS”r");    //Configure GPRS
  delay(1000);  // Delay of 1000 milli seconds or 1 second
  mySerial.println("AT+SAPBR=3,1,”APN”,”wap.tim.it”r"); // Set APN nb: non settiamo pass e user inutili con tim
  mySerial.println("AT+SAPBR=3,1,”USER”,””r");
  mySerial.println("AT+SAPBR=3,1,”PASS”,””r");
  delay(1000);
  mySerial.println("AT+SAPBR=1,1r");// Connect to GPRS connection, when connected Modem will respond with OK
  delay(500);
  mySerial.println("AT+FTPCID=1r"); // Now select profile 1 for FTP
  delay(1000);
  mySerial.println("AT+FTPSERV=ftp.digiland.itr"); // FTP server
  delay(500);
  mySerial.println("AT+FTPPORT=21r"); // FTP port
  delay(500);
  mySerial.println("AT+FTPUN=************"); // FTP username
  delay(500);
  mySerial.println("AT+FTPPW=”**********”r"); //FTP password
  delay(500);
  mySerial.println(" AT+FTPPUTNAME=file.txtr"); // nome file
  delay(500);
  mySerial.println("AT+FTPPUTPATH=/pathr"); // percorso dove inserire il file uploadato
  delay(500);
  mySerial.println("AT+FTPPUT=1"); //  wait for +FTPPUT:1,1 after which you need to send the content of file to be uploaded.
  delay(500);
   mySerial.println((char)26);// ASCII code of CTRL+Z
  delay(1000);
}

Ho questa risposta dalla porta seriale

u
AT+SAPBR=3,1,�Contype�,�GPRS�r

ERROR
AT+SAPBR=3,

:confused:

E questa sintassi:

mySerial.println("AT+SAPBR=3,1,"Contype","GPRS"r");

o questa:

mySerial.println("AT+SAPBR=3,1,"APN","wap.tim.it"r");

... chi se l'è inventata ... dato che NON esiste ? ? ? :o :o :o

Guglielmo

P.S.: ... e, in quel modo ... non ti funzionerà mai !!! Magari STUDIATI la sintassi della Serial.print()

Grazie mille Guglielmo!

Gugliemo però continuo a trovare questo comando in diverse guide, anche se lo usano tramite terminale diretto.

come dovrebbe essere il comando giusto?

Quello NON è un comando ...
... in alcuni casi è la sintassi della stringa che TU devi comporre e poi inviare sostituendo ciò che è messo tra apici con i giusti valori
... in altri devi comporre la stringa in modo che contenga la voci tra apici e le virgole ma NON puoi metterle tra le parentesi dato che altrimenti vengono interpretate !

Guglielmo