Go Down

Topic: controllo credito telefonico schede SIM (Read 298 times) previous topic - next topic

marco134

Aug 30, 2013, 01:27 pm Last Edit: Aug 30, 2013, 01:28 pm by marco134 Reason: 1
Buongiorno a tutti,
sono a scrivervi per chiedere un'aiuto su come leggere dei dati scritti sul monitor seriale di arduino ed inviarli tramite sms
Ecco il code

Code: [Select]

void setup()
{
   Serial.begin(9600);
 if (gsm.begin(9600)){
 
   started=true;



}

 if(started){                              
   Serial.println("READY");
   
   //sms.SendSMS("00000000000", "GSM CONTROL in attesa di comando");
   //gsm.SimpleWrite("AT+CMGD=1,4\r");
 
 gsmserial.begin(9600);

Serial.println("sto chiamando ");                    //iniziano i codici AT per effettuare la chiamata
 gsm.SimpleWrite(F("ATD"));
 gsm.SimpleWrite("401212");                        // in questo caso il numero è di postemobile
 gsm.SimpleWriteln(F(";"));
 
 gsm.WaitResp(15000, 50);
 gsm.SetCommLineStatus(CLS_FREE);
{
if (CLS_FREE != gsm.GetCommLineStatus()) return;
 gsm.SetCommLineStatus(CLS_ATCMD);

Serial.println("PIGIO IL TASTO 1");
 
gsm.SimpleWrite(F("AT+VTD="));
 gsm.SimpleWriteln(1000);
 gsm.WaitResp(1000, 100, "OK");

 gsm.SimpleWrite(F("AT+VTS=\""));
 gsm.SimpleWrite(1);
 gsm.SimpleWriteln(F("\""));
 
 gsm.WaitResp(3000, 100, "OK");
 gsm.SetCommLineStatus(CLS_FREE);
delay (3000);

Serial.println("PIGIO IL TASTO 1");

gsm.SimpleWrite(F("AT+VTD="));
 gsm.SimpleWriteln(1000);
 gsm.WaitResp(1000, 100, "OK");

 gsm.SimpleWrite(F("AT+VTS=\""));
 gsm.SimpleWrite(1);
 gsm.SimpleWriteln(F("\""));
 
 gsm.WaitResp(3000, 100, "OK");
 gsm.SetCommLineStatus(CLS_FREE);


}

                                                                               
 gsm.listen(); // IMPORTANT!!!!
 delay(200);

 pos = sms.IsSMSPresent(SMS_UNREAD);

 if (pos)
 {
   sms.GetSMS(pos, n, buffer, 100);
   Serial.println("DEBUG SMS phone number: ");
   Serial.println(n);
   Serial.println("SMS text: ");
   Serial.println(buffer);

Serial.read();

   if (strcmp(buffer,"credito residuo")==false)    
   {
     Credito();  

   }


   delay (1000);
 }
}

}


void Credito()
{
 if(started)
 {
   
   char buffer[100];
   char *str;

Serial.read();
   

sprintf (buffer, "% u", str);


   sms.SendSMS("1111111111" , strmsg);
   gsm.SimpleWrite("AT+CMGD=1,4\r");

 }
}

void clearbuffer()
{
 for (int i=0;i<70;i++)
 {
   buffer[i]=0;
 }
}
void loop()
{
}



il programma fa il debug a video del credito residuo però non me lo inoltra ad un'altro numero di cellulare
dove sbaglio?

grazie mille

m_ri

da quel che ho capito, te telefoni a sto numero, ti muovi nei sottomenu "premendo" 1 e poi ricevi un mex col credito..non c'è un modo più semplice?per esempio con vodafone telefoi al 404 e ricevi subito il mex..la butti giù la chiamata?

ricevi l'sms col credito corretto?

marco134

ma anche qui ricevo l'sms corretto
il problema sta nel fatto che non riesco a leggere la seriale.
io metto serial.read ma poi come faccio a caricarmelo nel buffer?

Go Up