Alarma Con Envío de Sms

Embed Size (px)

DESCRIPTION

alarma

Citation preview

ALARMA CON ENVO DE SMS

Este es un ejemplo sencillo de envo de mensajes SMS a travs de un PIC conectado a un telfono mvil por medio de una interfaz serie RS-232. El funcionamiento es sencillo, cuando cuando se activa el actuador este produce una interrupcin en el PIC a travs de la patilla RB0 que hace que se enven los comandos AT necesarios para que el telfono mvil enve un nmero determinado de mensajes de alarma al nmero que hayamos introducido en el programa.

Qu es un mdem GSM?Un mdem GSM (Global System for Mobile Communications) es un dispositivo inalmbrico que funciona en la red GSM, utilizada mundialmente para comunicacin entre telfonos mviles. La comunicacin se realiza a travs de ondas de radio.Elmdem GSMpuede verse como un telfono celular al cual se le ha adaptado unainterfaz serial RS232,con el objeto de ser controlado a travs de una computadora. A travs del mdem GSM puede realizarse enlaces para trasmisin de voz, fax, datos, comunicacin por internet y mensajes SMS (Short Message Service). Tambin existen mdems GSM que poseen una interfaz USB para ser controlados.El mdem GSM puede ser operado a travs de un microcontrolador, por ejemplo elPIC 16F88PIC 18F2550y de esta manera ser incorporado a sistemas decontrol remoto supervisorio automtico.

En una segunda aplicacin puede conectarse a una computadora PC Laptop mediante un cable serial RS232 o un cable USB-Serial y usarse software comercial propietario parael envo programado de mensajes SMS mviles.El nmero de mensajes SMS que pueden ser procesados por un mdem GSM por minuto es de alrededor de seis a diez mensajes por minuto.

NOKIA 3220

En cuales bandas de frecuencia operan los sistemas GSM?Bsicamente existen 4 bandas, que son estndares a nivel mundial: 850, 900, 1800 y 1900 Mhz. En la mayora de los pases de Europa, Asia, Australia, Medio Oriente y Africa, se emplean las bandas de 900-1800 Mhz. En los Estados Unidos, Canad, Mxico y la mayor parte de Centro y Sudamrica se usan las bandas de 850-1900 Mhz. En Mxico se emplea la banda de 1900 Mhz. Para conocer la banda GSM en la que opera cada pas, vaya al siguiente link:www.worldtimezone.com/gsm.htmlLos mdems GSM cuatri-banda permiten operar en cualquiera de las 4 bandas mencionadas.Mediante loscomandos AT, es posibleconfigurar el mdem GSM cuatri-bandapara operar en la banda deseada. En la figura de abajo se muestra la asignacin de pares de frecuencias GSM a nivel global.

Tarjeta SIMUna de las caractersticas principales del estndar GSM es el mdulo de identidad del suscriptor, conocida comnmente como tarjeta SIM. La tarjeta SIM es una tarjeta inteligente desmontable que contiene la informacin de suscripcin del usuario, parmetros de red y directorio telefnico. Esto permite al usuario mantener su informacin despus de cambiar su telfono. Paralelamente, el usuario tambin puede cambiar de operador de telefona, manteniendo el mismo equipo simplemente cambiando la tarjeta SIM. Algunos operadores introducen un bloqueo para que el telfono utilice un solo tipo de tarjeta SIM, o slo una tarjeta SIM emitida por la compaa donde se compr el telfono, esta prctica se conoce como bloqueo de sim, y es ilegal en algunos pases.

LOS COMANDOS AT"Los comandos AT son instrucciones codificadas que conforman un lenguaje de comunicacin entre el hombre y un terminal modem.En un principio, el juego de comandos AT fue desarrollado en 1977 por Dennis Hayes como un interfaz de comunicacin con un modem para as poder configurarlo y proporcionarle instrucciones, tales como marcar un nmero de telfono. Ms adelante, con el avance del baudio, fueron las compaas Microcomm y US Robotics las que siguieron desarrollando y expandiendo el juego de comandos hasta universalizarlo.Los comandos AT se denominan as por la abreviatura de attention .Aunque la finalidad principal de los comandos AT es la comunicacin con modems, la telefona mvil GSM tambin ha adoptado como estandar este lenguaje para poder comunicarse con sus terminales. De esta forma, todos los telfonos mviles GSM poseen un juego de comandos AT especfico que sirve de interfaz para configurar y proporcionar instrucciones a los terminales. Este juego de instrucciones puede encontrarse en la documentacin tcnica de los terminales GSM y permite acciones tales como realizar llamadas de datos o de voz, leer y escribir en la agenda de contactos y enviar mensajes SMS, adems de muchas otras opciones de configuracin del terminal."

PIN OUT DEL POP PORT DEL CELULAR NOKIA PinNumberPinNameDescription

1VinCharger input

2GNDCharger ground

3ACIAccessory Control Interface (short with pin 2 for handsfree recognition)

4V Out / VDD+Connected to pin 3 in DKU-2 usb data cable / For Hansfree (ex. HS-23): microchip power supply

5USB VbusAlso act as USB power detection? Should be connected to USB pin 1 in usb data cable. (USB Vcc +5V)

6FBus Rx/USB D+USB exists only in some models*. Should be connected to USB pin 3 in usb data cable. (USB DATA+)

7FBus Tx/USB D-USB exists only in some models*. Should be connected to USB pin 2 in usb data cable. (USB DATA-)

8GNDData GND (USB GND)

9X Mic-Audio in - Ext. Mic input negativ

10X Mic+Audio in - Ext. Mic input positiv

11HS Ear L-Audio out - Ext. Audio out - left, negativ

12HS Ear L+Audio out - Ext. Audio out - left, positiv

13HS Ear R-Audio out - Ext. audio out - right, negativ

14HS Ear R+Audio out - Ext. audio out - right, positiv. Pins 10-14 may be used for antenna connection.

GNDshield GND in cavities

PINOUT COMPATIBILITY: Nokia 2112 Nokia 2115(i) Nokia 2116i Nokia 2125i Nokia 2126i Nokia 2128i Nokia 2270 Nokia 2272 Nokia 2280 Nokia 2285 Nokia 3100 Nokia 3105 Nokia 3108 Nokia 3120 Nokia 3125 Nokia 3200 Nokia 3205 Nokia 3220 Nokia 3230 Nokia 3300 Nokia 3570 Nokia 3580 Nokia 3585(i) Nokia 3586(i) Nokia 3587(i) Nokia 3588i Nokia 3589i Nokia 5100 Nokia 5140 Nokia 6011i Nokia 6012 Nokia 6015(i) Nokia 6016i Nokia 6019i Nokia 6020 Nokia 6100 Nokia 6101 Nokia 6102 Nokia 6108 Nokia 6155 Nokia 6170 Nokia 6200 Nokia 6220 Nokia 6225 Nokia 6230 Nokia 6230i Nokia 6233 Nokia 6235 Nokia 6255 Nokia 6260 Nokia 6560 Nokia 6585(i) Nokia 6610 Nokia 6610i Nokia 6630 Nokia 6650 Nokia 6670 Nokia 6680 Nokia 6681 Nokia 6800 Nokia 6810 Nokia 6820 Nokia 6822 Nokia 7200 Nokia 7210 Nokia 7250 Nokia 7250i Nokia 7260 Nokia 7270 Nokia 7360 Nokia 7600 Nokia 7610 Nokia 7700 Nokia 7710 Nokia 9300 Nokia 9500 Nokia E50 Nokia E60 Nokia E61 Nokia E61i Nokia E65 Nokia E70 Nokia N70 Nokia N71 Nokia N72 Nokia N73 Nokia N80 Nokia N90 Nokia N91 Nokia N92 Nokia N93 Nokia N93i

Comandos AT

Los comandos AT los cuales se pueden utilizar con Nokia GMS (incluyendo tambien DCS1800 y PCS1900) y productos Wideband de CDMA (WCDMA) disponible despus del otoo 2001, por ejemplo, los productos siguientes: Nokia 8310, Nokia 6310, Nokia 7650, Nokia 8910, y Nokia D211. Algunos de los comandos AT no son soportados por todos los productos Nokia o por todos los operadores. Dar un comando que no sea soportado por el producto causa una respuesta de error.

Los comandos AT son un juego de instrucciones que permiten configurar y controlar a los telfonos mviles desde un equipo conectado por datos, realizando acciones tales como: generar llamadas, leer y escribir la agenda, enviar mensajes SMS, entre otras.Las empresas fabricantes de telfonos mviles detallan en documentos escritos los Comandos AT soportados por sus equipos. En este proyecto se utiliz como medio para la Tx y Rx de Comandos AT un celular marca Nokia, por lo que se har referencia a los comandos utilizados por esta firma en particular.

Inicialmente los comandos AT fueron desarrollados para la comunicacin con los modems, pero la telefona mvil tambin ah adoptado este estndar para comunicarse con los terminales. Todos los telfonos mviles disponen de un juego de comandos AT especfico que permiten su configuracin, asi tenemos: Realizar llamadas de voz o datos. Escribir y enviar mensajes SMS. Leer y escribir en la agenda de contactos.Cada terminal GSM implementa su juego de comandos AT y puede que no sea totalmente compatible con el estndar. La comunicacin con el telfono mvil puede ser por cable serie, infrarrojos, Bluetooth, etc..Los comandos bsicos implementados en la mayora de los telfonos mviles son. Todos los comandos deben ir precedidos por AT. AT+CMGF: Configurar el mvil en modo texto. AT+CNMI: Comando at para que el sms no est en el buzn. AT+CPAS : Muestra la implementacin del comando. AT+A: Pone mdem en modo de Autorespuesta. AT+&T: Comandos de Pruebas. AT+&V: Ver configuracin activa, etc. AT+&X: Temporizado de transmisor. A/: Re ejecuta el ltimo comando dado. A>: Reejecuta

NOKIA PC SUITEEste es un software que permite conectar el celular, y asi poder controlar el celular revisar mensajes y estados de este:

Y estos son los cables con los que se puede conectar a la computadora Para poder conectar estos cables se utilizan los diferentes drivers, estos drivers crean un puerto COM VIRTUAL, aparte del que aparece en las distintas computadoras, este puerto se simula en una puerto USB:

Y asi se puede facilitar el uso del hyperterminal para poder utilizar los comandos AT y controlar el celular desde la computadora, una vez sea logrado esto comunicarlo con el micrcontrolador (PIC , ATMEGA), seria una tarea menos complicada, ya que esto verifica que el celular acepta los comandos AT.

Actualmente no se venden estos cables, pero si los genricos que conectan y adaptan seales ms no crean puertos COM virtuales:Para eso tenemos que utilizar otro mtodo de comunicacin:Utilizamos el CI MAX 232 y conectamos los pines correpondientes,Luego para poder mandar los diferentes cdigos a travs del puerto COM de la computadora utilizamos el programa ADVANCED SERIAL PORt MONITOR:

Este programa se encarga de enviar a travez de la comunicacin rs232 los diferentes valores ya sea en HEXADECIMAL o en cdigo ASCII:Entonces para poder hacer que el celular detecte que la computadora requiere comunicacin, se utiliza este programa.El ADVANCED SERIAL PORT MONITOR, tambin deja visualizar tanto los datos que salen como los que entran a la computadora, al utilizar el NOKIA POWER SUITE para comunicar el celular con la computadora este genera una trama de nmero en hexadecimal, y segn los foros esta trama solo para los modelos 3220b viene a ser:CODIGO EN HEXADECIMALCODIGO ASCII61 74 26 66 0d 0a 00 " at&f... "

55 55 55 55 55 55 55 55 " UUUUUUUU "

1e 00 10 d7 00 08 00 01 00 12 04 00 01 60 0b ac "............`. "

Una vez enviado esto el celular respondera de la siguiente manera y se puede visualizar en el ADVANCED SERIAL PORT MONITOR:CODIGO EN HEXADECIMAL CODIGO ASCII1e 10 00 7f 00 02 d7 00 c9 6d ......m00 00 00 00 00 00 00 00 00 00 ..........00 00 00 00 00 00 00 00 00 00 ..........00 00 00 00 00 00 00 00 00 00 ..........00 00 ..Entonces despus de esto ya podemos comunicar el hyperterminal con el celular y enviar los diferentes comandos AT.Este seria un gran paso para poder comunicar el controlador con el celular ya que el hyperterminal solo enviara seal como si fuera una simulacin.

DIAGRAMA DE FLUJO.INICIO

.DEFINE NO WDT

CONFIGURAR INTERRUPCIN POR PIN RB0

CONFIGURAR PUERTO I/O

CONFIGURAR UART115200 BAUDIOS1 BIT START8 BIT DATOS1 BIT STOP

ENVIA TRAMA DE DATOS EN HEXADECIMAL

ENVIA TRAMA DE DATOS EN HEXADECIMAL

NUMERO_MENSAJES=1

FLAG =1

NO

SIFLAG = 0, i = 0

SIi=NUMERO_MENSAJES

NO

ENVIA: AT + CMGF= 1 PARA CONFIGURAR MODO MENSAJE

RETARDO 1 SEGUNDO

ENVIA:AT+CMGS=numero_a_enviar

RETARDO 1 SEGUNDO

ENVIA:ALARMA ACTIVADA

ENVIA: CTRL+Z

I++

FIN

HERRAMIENTASCELULAR NOKIA 3220 (MODULO GSM)GSM 850/1800/1900 para Norte AmericaGENERALRedGSM 900 / GSM 1800 / GSM 1900

DISPLAYTipo65K colores

Tamao128 x 128 pixels, 5 lineas

- Cubiertas Cut-out- Navegacin de cinco vas- Wallpapers y screensavers animados- Wallpapers bajables

MEMORIAAgenda telefnica256 x 4 campos

- En 3 MB de memoria compartida. MMS, max 100 kB c/u. Ringtones. Imgenes. Memo de voz- En memoria de 1.5 MB. Java apps,max 128 kB c/u

CARACTERSTICASGPRSClase 10 (4+1/3+2 slots)

Velocidad de datos177 kbps (EDGE), 32 - 48 kbps (GPRS)

MensajeraSMS, MMS, EMail, Mensajero instantneo, Mensajero liviano

Juegos3 - Club Pinball, Dance Delight, Phantom Spider + bajables,Comprar

- Java MIDP 2.0- WAP 2.0 (xHTML browser)- EDGE- HSCSD- T9- Calendario- Calculadora- Editor de imgenes- Manos libres incorporado- Interfaz Pop-port- Tapas opcionales Fun Shell sensor tilt para control de juegos y wave messaging

MICROCONTROLADOR PIC16F877En esteproyectose utilizo el PIC 16F877. Este microcontrolador es fabricado por MicroChipfamiliaa la cual se le denomina PIC. El modelo 16F877 posee varias caractersticas que hacen a este microcontrolador un dispositivo muy verstil, eficiente y practico para ser empleado en la aplicacin que posteorimente ser detallada.Algunas de estas caractersticas se muestran a continuacin: Soporta modo de comunicacin serial, posee dos pines para ello. Amplia memoria para datos y programa. Memoria reprogramable:La memoriaen este PIC es la que se denominaFLASH; este tipo de memoria se puede borrar electrnicamente (esto corresponde a la "F" en el modelo). Set de instrucciones reducidas (tipo RISC), pero con las instrucciones necesarias para facilitar su manejo.CARACTERISTICASEn siguiente tabla de pueden observar las caractersticas ms relevantes del dispositivo:CARACTERSTICAS16F877

Frecuencia mximaDX-20MHz

Memoria de programa flash palabra de 14 bits8KB

PosicionesRAMde datos368

Posiciones EEPROM de datos256

Puertos E/SA,B,C,D,E

Nmero de pines40

Interrupciones14

Timers3

Mdulos CCP2

Comunicaciones SerieMSSP, USART

Comunicaciones paraleloPSP

Lneas de entrada de CAD de 10 bits8

Juego de instrucciones35 Instrucciones

Longitud de la instruccin14 bits

ArquitecturaHarvard

CPURisc

Canales Pwm2

Pila Harware-

Ejecucin En 1 Ciclo Mquina-

COMPILADOR DEL PROGRAMA

Si queremos realizar la programacin de los microcontroladores PIC en un lenguaje como el C, es preciso utilizar un compilador de C.Dicho compilador nos genera ficheros en formato Intel-hexadedimal, que es el necesario para programar (utilizando un programador de PIC) un microcontrolador de 6, 8, 18 40 patillas.El compilador de C que vamos a utilizar es el PCW de la casa CCS Inc. A su vez, el compilador lo integraremos en un entorno de desarrollo integrado (IDE) que nos va a permitir desarrollar todas y cada una de las fases que se compone un proyecto, desde la edicin hasta la compilacin pasando por la depuracin de errores. La ltima fase, a excepcin de la depuracin y retoques hardware finales, ser programar el PIC.

INSTRUCCIONES IMPORTANTES A UTILIZAR

#USE RS232 (BAUD=baudios, XMIT=pin, RCV=pin...)

Esta directiva le dice al compilador la velocidad en baudios y los pines utilizados para la I/O serie. Esta directiva tiene efecto hasta que se encuentra otra directiva RS232. La directiva #USE DELAY debe aparecer antes de utilizar #USE RS232. Esta directiva habilita el uso de funciones tales como GETCH, PUTCHAR y PRINTF. Si la I/O no es estandar es preciso poner las directivas FIXED_IO o FAST_IO delante de #USE RS232

OPCIONES:

c = GETC()c = GETCH()c = GETCHAR()Estas funciones esperan un carcter por la patilla RCV del dispositivo RS232 y retornael carcter recibido.Es preciso utilizar la directiva #USE RS232 antes de la llamada a esta funcin para queel compilador pueda determinar la velocidad de transmisin y la patilla utilizada. Ladirectiva #USE RS232 permanece efectiva hasta que se encuentre otra que anule laanterior.Los procedimientos de I/O serie exigen incluir #USE DELAY para ayudar a sincronizarde forma correcta la velocidad de transmisin. Recordad que es necesario adaptar losniveles de voltaje antes de conectar el PIC a un dispositivo RS-232.Ejemplo:printf("Continuar (s,n)?");do {respuesta=getch();} while(respuesta!='s'&& respuesta!='n');

PUTC()PUTCHAR()Estas funciones envan un carcter a la patilla XMIT del dispositivo RS232. Es precisoutilizar la directiva #USE RS232 antes de la llamada a esta funcin para que elcompilador pueda determinar la velocidad de transmisin y la patilla utilizada. Ladirectiva #USE RS232 permanece efectiva hasta que se encuentre otra que anule laanterior.

PRINTF([function], string, [values])La funcin de impresin formateada PRINTF saca una cadena de caracteres alestndar serie RS-232 o a una funcin especificada. El formato est relacionado con elargumento que ponemos dentro de la cadena (string).Cuando se usan variables, string debe ser una constante. El carcter % se pone dentrode string para indicar un valor variable, seguido de uno o ms caracteres que danformato al tipo de informacin a representar.Si ponemos %% obtenemos a la salida un solo %. El formato tiene la forma genrica%wt, donde w es optativo y puede ser 1,2,...,9. Esto es para especificar cuntoscarcteres son representados; si elegimos el formato 01,...,09 indicamos ceros a laizquierda, o tambin 1.1 a 9.9 para representacin en punto flotante.t es el tipo de formato y puede ser uno de los siguientes:

CODIGO EN C CON UNA ENTRADA A SERVICIO DE INTERRUPCION

#include

#FUSES NOWDT, HS, NOPUT, NOLVP#use delay(clock=20000000)#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)int trama1=0x61;#include #define NUMERO_MENSAJES 1 //Nmero de mensajes a enviar#define led_gsm pin_d0#define led_espera pin_d1char NUMERO[] = "989616025"; //Numero de telfono a marcarchar MENSAJE[] = "Alarma activada\r Casa Zea Diaz";//Mensaje a enviar int flag=0;//variable auxiliar

#int_EXT void EXT_isr(void){//funcin de tratamiento a la interrupcin externa flag=1; }

void conectar_Modem(){//Envia un trama de datos Fbus para que el celular reconozca al PICoutput_high(led_gsm);putchar(0x61);putchar(0x74);putchar(0x26);putchar(0x66);putchar(0x0D);putchar(0x0A);putchar(0x00);putc(0x0D);delay_ms(300);putc(0x55);putc(0x55);putc(0x55);putc(0x55);putc(0x55);putc(0x55);putc(0x55);putc(0x55);putc(0x0D);delay_ms(300);putc(0x1E);putc(0x00);putc(0x10);putc(0xD7);putc(0x00);putc(0x08);putc(0x00);putc(0x01);putc(0x00);putc(0x12);putc(0x04);putc(0x00);putc(0x01);putc(0x60);putc(0x0B);putc(0xAC);putc(0x0D);delay_ms(1000);output_low(led_gsm);}

//Funcin para configurar paramtros del modemvoid configurar_Modem(){output_high(led_gsm);//printf("ATD%s\r",NUMERO); delay_ms(500);printf("AT+CMGF=1\r"); //configura el tipo de formato de mensaje de texto SMS (formato TEXTO)delay_ms(400);output_low(led_gsm);} //Funcin para enviar mensajes SMSvoid Envio_SMS(){output_high(led_gsm);flag=0;char ctrlz = 26; //combinacion de teclas "ctrl+z" printf("AT+CMGS=\"%s\"\r",NUMERO);delay_ms(500);printf("%s",MENSAJE); delay_ms(500);printf("%c",ctrlz); //se envia el mensaje//putc(26);delay_ms(1000);output_low(led_gsm); }void main(){int i;SET_TRIS_D(0x00);//Configura el puerto B: 0=Salida; 1=Entradaoutput_d(0x00); //Limpia el registro del puertodelay_ms(1000); //Configuracin registros PIC

enable_interrupts(GLOBAL);//habilito interrupcin globalenable_interrupts(INT_EXT);//habilito interrupcin externaext_int_edge(L_TO_H);// flanco de activacin ascencente delay_ms(1000);//retarto para estabilizarconectar_Modem();//envia la trama de numeros en Hecadecimal conectar_Modem();//envia la trama de numeros en Hecadecimal conectar_Modem();//envia la trama de numeros en Hecadecimal configurar_Modem();//llamada a la funcin de configuracin del modem while(true) { //Bucle infinito hasta interrupcin

if (flag==1){ // si se produce alarma envio mensajes for(i=0;i