0% encontró este documento útil (0 votos)
80 vistas2 páginas

Identificación de números telefónicos

Este programa identifica el número telefónico del remitente de mensajes de texto recibidos en un dispositivo móvil con módulo SIM900 conectado a Arduino. Al recibir un mensaje, captura los 13 dígitos del número, verifica que corresponda al código de país de Ecuador, e imprime el número y mensaje en el monitor serial.

Cargado por

enrique
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
80 vistas2 páginas

Identificación de números telefónicos

Este programa identifica el número telefónico del remitente de mensajes de texto recibidos en un dispositivo móvil con módulo SIM900 conectado a Arduino. Al recibir un mensaje, captura los 13 dígitos del número, verifica que corresponda al código de país de Ecuador, e imprime el número y mensaje en el monitor serial.

Cargado por

enrique
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

/******************************************************************************

* Proyecto: *
* Identificaci�n de n�meros telef�nicos remitentes *
*******************************************************************************
Este programa permite recibir mensajes de texto de un dispositivo m�vil
remitente de cualquier operadora m�vil, identificar su n�mero telef�nico, e
imprimir su informaci�n en el monitor serial.
*****************************************************************************/

// [Link]

int trama=0;
charString p="";

char inicio_clave;
char clave1;
String clave = "";

char num;
char country_code_1;
char country_code_2;
char country_code_3;

void setup()
{
[Link](19200); // Inicio del puerto serial para el monitor serial.
[Link](19200); // Inicio del puerto serial 1 para el m�dulo SIM900.
SIM900power(); // Encendido del m�dulo SIM900.
[Link]("AT+CMGF=1\r"); // Configuraci�n del m�dulo GSM en modo texto.
delay(100);
[Link]("AT+CNMI=2,2,0,0,0\r"); /* El modulo enviar� los mensaje
directamente al puerto serial del dispositivo. */
delay(100);
[Link]("listo.");
}

void loop(){
if ([Link]()>0){
incoming_char=[Link](); //Lectura de datos del puerto serial.
if((trama == 0) && (incoming_char == 'C')){
trama = 1;
p="";
clave="";
}
if((trama == 1) && (incoming_char == 'M')){
trama = 2;
}
if((trama == 2) && (incoming_char == 'T')){
trama = 3;
}
if((trama == 3) && (incoming_char == ':')){
trama = 4;
}
if((trama == 4) && (incoming_char == ' ')){
trama = 5;
}
if((trama == 5) && (incoming_char == '"')){
trama=6;
for(int i=0;i<13;i++){
num = [Link](); //Captura del n�mero remitente. ej: +593982832027
if (num == '"') break;
else
p += num;
}
[Link]("Numero telefonico: ");
[Link](p); // imprimo en el puerto serial el n�mero telef�nico.
country_code_1 = (char)p[1];
country_code_2 = (char)p[2];
country_code_3 = (char)p[3];
// c�digo pa�s 593 para Ecuador
if ((country_code_1=='5')&&(country_code_2 =='9')&&(country_code_3=='3'))
[Link]("Numero correcto"); /* Si el n�mero telef�nico corresponde
a Ecuador => OK. */
else [Link]("Numero incorrecto");
}
// El mensaje es capturado a partir del caracter salto de l�nea \n.
if ((trama==6)&&(incoming_char=='\n')){
while([Link]()>0){
clave1 = [Link]();
clave += clave1;
trama = 0;
}
[Link](clave); // Imprimo el mensaje enviado desde un remitente.
}
delay(100);
}
}
// C�digo correspondiente al encendido automatico del modulo SIM900.
void SIM900power(){
digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(7000);
}

También podría gustarte