Arduino Forum

International => Español => Software => Topic started by: Arizona on Aug 17, 2012, 12:32 pm

Title: ENVIAR Y RECIBIR SMS CON ARDUINO Y MODEM GPRS
Post by: Arizona on Aug 17, 2012, 12:32 pm
Hola,
Estoy utilizando el siguiente código para que arduino lea  y reciba sms. Cuando tenga un sms no leído mandará una señal y un sms a un número determinado.
No sé que es lo que no funciona porque no hace lo que supuestamente debería.
int ledPin = 13;                          // PIN de test
   char temp[58];                 
byte readByte=' ';                        // Variable donde leemos del puerto serie

int seleccion;

void setup() {

   Serial.begin(9600); 
   configurarCMC("+34644109030");          // Definir CMC
   //  configurarCMC("+34607003110") vodafone
   messageFormat(true);                    // Modo TEXTO
   
 

}









void configurarCMC(char* CMC){
   /*
   Configura el CMC a través del cual se van a remitir los SMS
     MoviStar +34609090909
     Orange +34?????????
     Vodafone +34?????????

   Ejemplo:

   Comando: AT+CSCA=+34609090909                   
   Respuesta: OK 

   */
   Serial.print("at+csca="); 
   Serial.println(CMC);
   delay(1000);   
}

void messageFormat(boolean formato){
   /*
   Elige el formato con el que vamos a trabajar

   Ejemplo:

   Comando: AT+CMFG=1                   
   Respuesta: OK

   */
   Serial.print("at+cmgf=");
   if (formato) {
     Serial.println("1");                  // Modo texto
   }else {
     Serial.println("0");                  // Modo PDU
   }
   delay(1000);
}

void loop()
{

     /*
   Solicita el listado de los SMS que hay en la SIM.
     Según "selección" se muestran:
     0 Menssajes no leidos
     1 Mensajes leidos
     2 Mensajes almacenados sin enviar
     3 Mensajes almacenados y enviados
     4 Todos

   Ejemplo 1: Hay SMS almacenados

   Comando: AT+CMGL=ALL                   
   Respuesta:
   +CMGL: 1,"REC UNREAD","609090909",,"07/04/05,22:03:33+08"                                                         
   Mensaje de prueba               
   +CMGL: 2,"REC UNREAD","609090909",,"07/04/05,22:03:35+08"                                                         
   Mensaje de prueba               
   +CMGL: 3,"REC UNREAD","609090909",,"07/04/05,22:03:42+08"
   Mensaje de prueba
   OK

   Ejemplo 2: No hay SMS almacenados 

   Comando: AT+CMGL=ALL                   
   Respuesta: OK

   */
     Serial.print("at+cmgl=");
     switch (seleccion) {
       case 0: Serial.println("REC UNREAD");
           
   Serial.print("AT+CMGS=");     
   Serial.print(34,BYTE);          // send the " char
          Serial.print("6+++9");  // send the number change *** by the actual number
          Serial.println(34,BYTE);   
          delay(1500);
          Serial.print("Mensaje nuevo recibido");
          delay(500);
      digitalWrite(13, HIGH);   // set the LED on
      delay(2000);              // wait for a second
      digitalWrite(13, LOW);    // set the LED off
      delay(1000);
      digitalWrite(13, HIGH);    // set the LED off
      delay(5000);
          Serial.print("at+cmgr=1");
            break;
       case 1: Serial.println("REC READ");
         break;
       case 2: Serial.println("STO UNSENT");
         break;     
       case 3: Serial.println("STO SENT");
         break;   
       case 4: Serial.println("ALL");
         break;
     }
     delay(1000); 
   
GRACIAS