Hola gente del foro y visitantes de este tema queria preguntar si es posible hacer la coneccion entre un pic tal ves un 4550 y un modem huawei conectado por usb y enviar sms a un celular ?? dando vueltas desde hace unos dias ya he visto algunas opciones que lo hacen por el puerto serie pero ya es obsoleto ese puerto y ademas tengo este modem que me quedo de regalo de mi amigo CLARO asi que tenia ganas de sacarle el polvo y darle algun uso y aprender algo durante el proceso , tenia ganas de empesar por algo que vi en otro foro , espero no romper con ninguna politica de ningun sitio y si es asi sepan disculpar
01./////////////////////////////////////////////////////////////////////////
02.// //
03.//Alarma con sensor volumétrico y envío de mensajes SMS //
04.// //
05.// //
06.// //
07./////////////////////////////////////////////////////////////////////////
08.
09.#include <16F877.h>
10.#device ICD=TRUE//si no utilizas el debugger debe de ir comentada
11.#FUSES NOWDT, HS, NOPUT, NOLVP
12.#use delay(clock=20000000)
13.
14.//Configuración puerto serie
15.#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8)
16.
17.//Variables de configuración SMS
18.#define NUMERO_MENSAJES 2 //Número de mensajes a enviar
19.char NUMERO[] = "+34681345641"; //Numero de teléfono a marcar
20.char MENSAJE[] = "Prueba Alarma\r hola";//Mensaje a enviar
21.
22.int flag=0;//variable auxiliar
23.
24.#int_EXT
25.void EXT_isr(void){//función de tratamiento a la interrupción externa
26.
27.flag=1;
28.
29.}
30.
31.//Función para configurar paramétros del modem
32.void configurar_Modem(){
33.
34.printf("at+cmgf=1\r"); //configura el tipo de formato de mensaje de texto SMS (formato TEXTO)
35.delay_ms(200);
36.
37.}
38.
39.//Función para enviar mensajes SMS
40.void Envio_SMS(){
41.
42.char ctrlz = 26; //combinacion de teclas "ctrl+z"
43.
44.printf("at+cmgs=\"%s\"\r",NUMERO);
45.delay_ms(200);
46.printf("%s",MENSAJE);
47.delay_ms(200);
48.printf("%c",ctrlz); //se envia el mensaje
49.delay_ms(200);
50.
51.}
52.void main()
53.{
54.int i;
55.
56.//Configuración registros PIC
57.enable_interrupts(GLOBAL);//habilito interrupción global
58.enable_interrupts(INT_EXT);//habilito interrupción externa
59.ext_int_edge(L_TO_H);// flanco de activación ascencente
60.
61.delay_ms(1000);//retarto para estabilizar
62.
63.configurar_Modem();//llamada a la función de configuración del modem
64.
65.while(true) { //Bucle infinito hasta interrupción
66.
67.if (flag==1){ // si se produce alarma envio mensajes
68.
69.for(i=0;i<NUMERO_MENSAJES;i++){
70.Envio_SMS();
71.}
72.flag=0;
73.}
74.
75.}
76.}