Está en la página 1de 13

UNIVERSIDAD TÉCNICA DE AMBATO

Facultad de Ingeniería en Sistemas, Electrónica e Industrial

INFORME DE COMUNICACIONES MOVILES


“Proyecto Captador de Frecuencias”
Título: Diseño e implementación de un circuito captador de frecuencias
basado en un sistema de comunicación mediante el uso del módulo
SIM900 y arduino.
Carrera: Electrónica y Comunicaciones
Área Académica: Comunicaciones
Línea de Investigación: Comunicaciones
Ciclo Académico y Paralelo: Septiembre-Febrero 2018
Alumnos participantes:
 Andrade Andy
 Bonilla Gissela
 Chango Francisco
 Musso Pedro
 Monta Christian
 Llamuca Diego
 Panimbosa José Luis
 Pico Magaly
 Sailema Sandra
 Villegas Diego
 Zurita Xavier
Módulo Docente:
Comunicaciones Móviles Ing. Juan Pablo Pallo.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

I. INFORME DEL PROYECTO


1.1 Título
Diseño e implementación de un circuito captador de frecuencias basado en un sistema
de comunicación mediante el uso del módulo SIM900 y arduino.
1.2 Objetivos
Objetivos General:
Realizar el circuito captador de frecuencias mediante el uso del módulo SIM900 en
interfaz con arduino
Objetivos específicos:
 Realizar la conexión del módulo SIM900 con la tarjeta arduino utilizando un
chip 3G.
 Configurar y cargar el código para envío de llamadas y mensajes en la tarjeta
arduino.
 Comprobar el funcionamiento de la conexión entre el usuario y la placa
1.3 Resumen
1.4 Palabras clave:
1.5 Introducción

1.6 Metodología
1.6.1 Materiales
Software Hardware
Arduino Modulos SIM900
Putty Tarjeta Arduino
Sensor de Temperatura
1 PC
Cable Serial

1.6.2 Marco Teórico


arduino
que es
caracteristicas
puestos analógicas
velocidades
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

puerto serial

algo del Lm35

GSM/GPRS Shield

El GPRS / GSM Shield le proporciona una forma de utilizar la red de telefonía


celular GSM para recibir datos desde una ubicación remota. El escudo te permite
lograr esto a través de cualquiera de los tres métodos:
• Servicio de mensajes cortos
• Audio
• Servicio GPRS
El GPRS Shield es compatible con todas las placas que tienen el mismo factor de
forma (y
pinout) como una placa Arduino estándar. El GPRS Shield está configurado y
controlado a través de su UART usando comandos AT simples. Basado en el
módulo SIM900 de SIMCOM, el GPRS Shield es como un teléfono celular.
Además de las funciones de comunicación, el escudo GPRS tiene 12 GPIO, 2
PWM y un ADC

Especificaciones
 Banda cuádruple 850/900/1800/1900 MHz - funcionaría en redes GSM en
todos
 países de todo el mundo.
 GPRS multi-slot clase 10/8
 Estación móvil GPRS clase B
 Cumple con la fase GSM 2/2 +
 Clase 4 (2W @ 850 / 900MHz)
 Clase 1 (1W @ 1800 / 1900MHz)
 Control mediante comandos (GSM 07.07, 07.05 y SIMCOM mejorado AT
 Comandos)
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

 Servicio de mensajes cortos


 Selección de puerto serie gratuito
 Compatible con RTC con Super Cap
 Función de encendido / apagado y restablecimiento compatible con la
interfaz Arduino

Elementos

Funciones de los LED indicadores


El escudo GSM tiene tres indicadores LED para la potencia del escudo GSM, la
potencia SIM900 y el estado de la red.
Potencia del escudo GSM (P):
Este LED se usa para indicar el estado de alimentación del blindaje GSM. Si la
fuente de alimentación externa está conectada a la placa Arduino, entonces la
pantalla GSM se encenderá, este LED se encenderá.
SIM900 potencia (S):
Este LED se usa para indicar el estado de la alimentación del SIM900. Después
de que el SIM900 se encienda, el LED de estado se encenderá.
Estado neto (N):
Este LED se usa para indicar el estado de la red. El LED parpadeará lenta o
rápidamente según los diferentes estados.

Estado Descripción
Off SIM900 no está funcionando
64ms On/800ms Off SIM900 no registrado en la red
64ms On/3000ms Off SIM900 registrado en la red
64ms On/300ms Off Comunicación GPRS está establecida

Configuraciones del Jumper


UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

Si se desea usar UART se debe envía comandos AT.


Coloque el puente en la posición HW. Si se utiliza soft serial. Establecer
en posición SW.
Nuestro boceto de prueba utiliza una serie suave. Entonces lo mantenemos
en la posición SW normalmente.
Si está usando MEGA2560. Solo se necesita conectar las patillas centrales
de los puentes RX y TX a RX1 TX1 en Arduino Mega 2560. Y cambie la
configuración del código.
COMANDOS AT

AT Comprueba estado del módulo.

AT+CPIN=”XXXX” Introducir el PIN de la SIM. Cambiar XXXX por el PIN.

AT+CREG? Comprueba la conexión a la red.

Realiza una llamada. Sustituir XXXXXXXXX por el nº al


ATDXXXXXXX;
que queramos llamar.

ATA Descuelga una llamada.

ATH Finaliza la llamada.

Configura el modo texto para enviar o recibir mensajes.


AT+CMGF=1
Devuelve “>” como inductor.

AT+CMGS=”XXXXXXXXX” Nº al que vamos a enviar el mensaje.

AT+CLIP=1 Activamos la identificación de llamada.

Configuramos el módulo para que muestre los SMS por


AT+CNMI=2,2,0,0,0
el puerto serie.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

AT+CGATT=1 Conectamos a la red GPRS.

AT+CSTT=”APN”,”usuario”,”contraseña” Definimos APN. usuario y contraseña

AT+CIICR Activamos el perfil de datos inalámbrico

AT+CIFSR Obtenemos nuestra IP

Indicamos el tipo de conexión, dirección IP y puerto al


AT+CIPSTART=”TCP”,”direccionIP”,”puerto”
que realizamos la conexión

Preparamos el envío de datos. Devuelve “>” como


AT+CIPSEND
inductor.

AT+CIPCLOSE Cerramos la conexión.

AT+CIPSHUT Cierra el contexto PDP del GPRS

AT+CGPSPWR=1 Activar el GPS.

AT+CGPSSTATUS? Comprueba que el GPS ha encontrado la red.

Obtiene los datos del


AT+CGPSINF=0 GPS: Modo,Latitud,Longitud,Altitud,HorarioUTC,Tiempo
de respuesta,Número de satélites,Velocidad,Curso

para obtener los datos del GPS usando la


especificación de la NMEA: Horario
AT+CGPSOUT=32 UTC,Estado,Latitud,Longitud,Velocidad en
nudos,Ángulo de derrota en grados,Fecha,Variación
magnética,Datos del Cheksum

AT+CGPSPWR=0 Cerrar el GPS.

1.6.3 Desarrollo
Configuración de la velocidad de arduino
La velocidad para el puerto serial de la SIM900 es de 19.2Mbps, para lo
que en la configuración de arduino utiliza un método que determina su
funcionamiento.

void setup()
{
SIM900.begin(19200); //Configura velocidad serial para el SIM900
delay(3000); //Retardo para que encuentra a una RED
Serial.begin(19200); //Configura velocidad serial para el Arduino
pinMode(2,OUTPUT);
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

Configuración de los puertos de entrada y salida


 Se va a enviar datos de un sensor de temperatura mediante el puerto
analógico A0 del arduino.
 Para la lectura de los datos utilizamos el método Serial.read() el
cual permite obtener datos que serán recibidos a través de un
mensaje de texto.

const int sensorPin= A0;


float temperatura;

Conexión arduino con sim900 y modo de funcionamiento


 Para la conexión es necesario el uso de un chip 3G, posteriormente
se realiza la adaptación física de las placas arduino con el modulo
SIM 900.
 Alimentar la shield con una fuente externa máximo 1A y 9V.
 Verificar que los jumpers que estén cerca a la antena y estén
colocados con D7 y D8
 Se ha configurado un lapso de tiempo de conexión de 10s, el cual
permitirá verificar si la SIM900 se ha registrado en la red.

Envío y recepción de llamadas y mensajes


 Se debe configurar el número telefónico del usuario con el que se
desea establecer la comunicación mediante la función ATD.

SIM900.println("ATD0999234469;");

 Cargamos los métodos especificados para llamar o enviar


mensajes
Método llamar
void llamar()
// Función que permite llamar a un celular local
{
// SIM900.println("ATD0051947648943;"); //Numero local
SIM900.println("ATD0999234469;"); //Celular
delay(100);
SIM900.println();
delay(30000); // wait for 30 seconds...
SIM900.println("ATH"); // Cuelta el telefono
delay(1000);
}

Método enviar mensajes


void mensaje_sms()
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

//Funcion para mandar mensaje de texto


{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
//0999234469
SIM900.println("AT+CMGS=\"0999234469\""); // recipient's mobile
number, in international format
delay(100);
SIM900.println(temperatura*100);
//SIM900.println("COMUNICACIONES MOVILES"); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
//Comando de finalizacion
delay(100);
SIM900.println();
delay(5000); // Tiempo para que se envie el mensaje
Serial.println("SMS sent successfully");
}

Método recibir mensajes


void modo_recibe_mensaje()
{
//Configura el modo texto para enviar o recibir mensajes
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(1000);
}

1.6.4 Código de programación en Arduino


#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8); // Configura el puerto serial para el SIM900

char incoming_char=0; //Variable que guarda los caracteres que envia el


SIM900
int salir = 0;
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

const int sensorPin= A0;


float temperatura;
int i=1;
void setup()
{
SIM900.begin(19200); //Configura velocidad serial para el SIM900
delay(3000); //Retardo para que encuentra a una RED
Serial.begin(19200); //Configura velocidad serial para el Arduino
pinMode(2,OUTPUT);
}
void llamar()
// Función que permite llamar a un celular local
{
// SIM900.println("ATD0051947648943;"); //Numero local
SIM900.println("ATD0999234469;"); //Celular
delay(100);
SIM900.println();
delay(30000); // wait for 30 seconds...
SIM900.println("ATH"); // Cuelta el telefono
delay(1000);
}
void mensaje_sms()
//Funcion para mandar mensaje de texto
{
SIM900.print("AT+CMGF=1\r"); // AT command to send SMS message
delay(100);
//0999234469
SIM900.println("AT+CMGS=\"0999234469\""); // recipient's mobile number,
in international format
delay(100);
SIM900.println(temperatura*100);
//SIM900.println("COMUNICACIONES MOVILES"); // message to send
delay(100);
SIM900.println((char)26); // End AT command with a ^Z, ASCII code 26
//Comando de finalizacion
delay(100);
SIM900.println();
delay(5000); // Tiempo para que se envie el mensaje
Serial.println("SMS sent successfully");
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

void espera_mensaje()
{
salir = 1;
while(salir==1)
{
if(SIM900.available() >0)
{
incoming_char=SIM900.read(); //Get the character from the cellular serial
port.
Serial.print(incoming_char); //Print the incoming character to the terminal.
salir = 0;
}
}
}
void modo_recibe_mensaje()
{
//Configura el modo texto para enviar o recibir mensajes
SIM900.print("AT+CMGF=1\r"); // set SMS mode to text
delay(100);
SIM900.print("AT+CNMI=2,2,0,0,0\r");

// blurt out contents of new SMS upon receipt to the GSM shield's serial out
delay(1000);
}
void loop()
{
int iniciar;
int value = analogRead(sensorPin);
temperatura = (value*5 / 1023.0);

inicio:
iniciar=Serial.read();

if(i<2){
Serial.println("DISPONIBLE");
Serial.println("M-->MENSAJE");
Serial.println("L-->LLAMAR");
i++;
}
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

if(iniciar=='L')
{
i=1;
Serial.println("LLamando....");
llamar(); //Llama
//modo_recibe_mensaje();
Serial.println("OK-1");

delay(100);
SIM900.println();
delay(5000);
goto inicio;
//while(1); // Esperate por tiempo indefinido

}
if(iniciar=='M')
{
i= 1;
Serial.println("Mensajeando....");
//llamar(); //Llama
mensaje_sms(); //Envia mensaje
//

Serial.println("OK-2");
delay(100);
SIM900.println();
delay(5000);
goto inicio;
//while(1); // Esperate por tiempo indefinido
}
/*

modo_recibe_mensaje();
for(;;)
{
if(SIM900.available() >0)
{

incoming_char=SIM900.read(); //Get the character from the cellular serial


port.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

Serial.print(incoming_char); //Print the incoming character to the terminal.


}
if(Serial.available() > 0)
{
if(Serial.read() == 'A') break;
}
}
Serial.println("OK-2");

delay(100);
SIM900.println();
delay(30000);
while(1); // Esperate por tiempo indefinido

}
Tabla 1: Código de configuración en Arduino

1.7 Conclusiones y Recomendaciones

 Se puede realizar llamadas o enviar a mensajes a cualquier usuario,


siempre y cuando el usuario este registrado en la configuración del
módulo.
 Se puede enviar cualquier tipo de datos siempre y cuando estos estén
configurados en la tarjeta.
 Se pudo enviar datos de forma externa, en este caso datos obtenidos por
un sensor de temperatura.
 Se recomienda alimentar el modulo SIM900 con una fuente externa de
máximo 1A y 9V, ya que podría generar daños en el módulo.
 es necesario analizar la tabla de los tipos de encendido y apagado de los
leds indicadores para determinar el estado del módulo, es decir si se ha
conectado o no a la red.
 Si desea realizar la conexión con un Arduino Mega se debe colocar en vez
de los pines 7 y 8 los pines 10 y 11.
UNIVERSIDAD TÉCNICA DE AMBATO
FACULTAD DE INGENIERÍA EN SISTEMAS, ELECTRÓNICA E INDUSTRIAL
PERÍODO ACADÉMICO: MARZO 2017 – SEPTIEMBRE 2017

1.8 Referencias bibliográficas

También podría gustarte