Go Down

Topic: controllo credito telefonico schede SIM (Read 345 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy