Académique Documents
Professionnel Documents
Culture Documents
FACULTAD DE INGENIERÍA
AÑO : TERCERO
SECCIÓN : A
TACNA – PERÚ
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
Tabla de contenido
1 Objetivos ..............................................................................................................................3
2 Materiales y equipos.............................................................................................................3
4 Procedimientos .....................................................................................................................5
6 Observaciones ....................................................................................................................10
7 Conclusiones ......................................................................................................................10
2
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
1 Objetivos
2 Materiales y equipos
01 Computadora personal
01 Tarjeta Arduino UNO R3 (Opcional) por cada grupo
01 Shield GSM/GPRS SIM900 (Opcional) para Arduino uno
01 chip de celular SIM estándar (no micro SIM ni nano SIM) con numero de PIN de Movistar
Claro o Entel con salgo suficiente.
01 Celular de cualquier marca u operador para realizar llamadas
01 fuente de alimentación de 9V o 12V para Arduino
01 diodo LED de 3mm de cualquier color
01 Resistencia de valor 560 Ω (puede ser cualquier valor entre 330 Ω y 1 KΩ)
01 Protoboard
01 juego de cablecillos de 10 ó 20 cm
3 Fundamento Teórico
Esta es una tarjeta ultra compacta de comunicación inalámbrica para telefonía celular. La
tarjeta es compatible con todos los modelos de Arduino con el formato UNO, además puedes controlarla
con otros microcontroladores también. La tarjeta está basada en el módulo SIM900 GSM 4.
La tarjeta GPRS está configurada y controlada por vía UART usando comandos AT. Solo conecta la
tarjeta al microcontrolador, Arduino, etc, y comienza a comunicarte a través de comandos AT. Ideal
para sistemas remotos, comunicación recursiva, puntos de control, mandar mensajes de texto a celulares,
etc.
3
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
Especificaciones:
4
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
4 Procedimientos
#include <SoftwareSerial.h>
void setup()
{
pinMode( LED, OUTPUT) ;
}
void loop()
{
if (SIM900.available() > 0)
{
incoming_char = SIM900.read();
Serial.print(incoming_char);
mensaje = mensaje + incoming_char ;
}
identifica_llamada ();
}
void inicializaSIM900()
{
//Descomentar para activar la alimentación de la tarjeta por Software
//digitalWrite(9, HIGH);
//delay(1000);
//digitalWrite(9, LOW); delay (5000);
SIM900.begin(19200);
Serial.begin(19200);
delay (1000);
SIM900.println("AT + CPIN = \"1111\"");
delay(25000);
Serial.println("PIN OK");
SIM900.print("AT+CLIP=1\r");
delay(100);
SIM900.print("AT+CMGF=1\r");
delay(1000);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);
}
5
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
void identifica_llamada()
{
int finllamada = mensaje.indexOf("NO CARRIER");
if (finllamada >= 0)
{
for ( int i = 0; i < numtotal; i++)
{
int pos = mensaje.indexOf(agenda[i]);
if (pos >= 0)
{
estado = ! estado ;
digitalWrite(LED, estado) ;
Serial.println("\nEl numero esta autorizado");
}
}
mensaje = "" ; //Bórralo para la próxima vez
}
}
Luego desde su celular realice una llamada al SIM900, el LED debe encender, si vuelve a llamar el
LED debe apagarse. Anote los resultados mediante imágenes.
6
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
En las imágenes anteriores se muestran que se logró encender el led mediante una llamada y
también poder mandar mensajes en tiempo real.
En las siguientes imágenes muestran que con una segunda llamada la luz led se apaga.
#include <SoftwareSerial.h>
char incoming_char = 0;
int LED = 12 ;
void setup()
{
pinMode( LED, OUTPUT) ;
inicializaSIM900();
}
void loop()
{
if (SIM900.available() > 0)
7
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
{
incoming_char = SIM900.read();
Serial.print(incoming_char);
mensaje = mensaje + incoming_char ;
}
identifica_SMS();
}
void inicializaSIM900()
{
// Descomentar para activar la alimentación de la tarjeta por Software
//digitalWrite(9, HIGH);
//delay(1000);
//digitalWrite(9, LOW);
delay (5000);
SIM900.begin(19200);
Serial.begin(19200);
Serial.println("OK");
delay (1000);
SIM900.println("AT + CPIN = \"1111\"");
delay(25000);
Serial.println("PIN OK");
SIM900.print("AT+CLIP=1\r");
delay(100);
SIM900.print("AT+CMGF=1\r");
delay(1000);
SIM900.print("AT+CNMI=2,2,0,0,0\r");
delay(1000);
}
void identifica_SMS()
{
int led_on = mensaje.indexOf("On");
int led_off = mensaje.indexOf("Off");
if (led_on >= 0)
{
digitalWrite( LED, HIGH) ;
delay(500);
Serial.println("\nLED ENCENDIDO");
mensaje = "" ; //Bórralo para la próxima vez
}
if (led_off >= 0)
{
digitalWrite( LED, LOW) ;
Serial.println("\nLED APAGADO");
mensaje = "" ; //Bórralo para la próxima vez
}
}
Envie un mensaje On al SIM900 para encender el LED del pin 12. Desde el monitor serial puede
ver el resultado
8
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
5 Informe Final
2. Realizar un programa en el cual pueda encender LED’s conectados desde los pines 4 al 13.
Es decir se debe encender y apagar el LED12 con los mensajes On12 y Off12
if (led_on >= 0)
9
UNIVERSIDAD NACIONAL JORGE BASADRE GROHOMAN | FACULTAD DE INGENIERÍA
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERIA EN INFORMÁTICA Y SISTEMAS
delay(500);
Serial.println("\nLED ENCENDIDO");
mensaje = "" ;
if (led_off >= 0)
Serial.println("\nLED APAGADO");
mensaje = "" ;
6 Observaciones
Tener mucho cuidado con la manipulación de la tarjeta, en nuestro caso usamos unos guantes
para manipular la tarjeta sin que nos afecte.
Tener cuidado con respecto a la superficie donde pone el arduino.
Leer bien los pasos del informe de laboratorio
Tener mucho cuidado con la TARJETA GSM SIM900 y verificar que quitaste la estática del
cuerpo.
7 Conclusiones
10