Envoi SMS avec c

Signaler
Messages postés
3
Date d'inscription
mercredi 4 novembre 2009
Statut
Membre
Dernière intervention
7 mars 2012
-
Messages postés
2
Date d'inscription
dimanche 6 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012
-
[b]je veu faire un projet sur l' Envoi SMS lors d'un alarme en utilisant module gsm programmeé en C par une pic 16f877A
je serai tres reconnaissant pour tout personne qui peut m'aider
Merci/b

2 réponses

Messages postés
2
Date d'inscription
dimanche 6 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012

comment envoyer un sms en utilusant les commande AT avec le logiciel PIC COMPALIER
Messages postés
2
Date d'inscription
dimanche 6 mai 2012
Statut
Membre
Dernière intervention
22 mai 2012

mon sujet de pfe est un systeme de surveillance par gsm,j'ai fait la sumilation de mon code sur un montage isis composé:un afficheur lcd,un hyperterminal ,une clavier 12 touches,un pic 18f4620,6 switchers et 3 leds:j'aime bien aider pour otimoser mieux mon
code suivante;

#include "D:\telesurv\test9.h"
//#include "D:\PROJ222\AAAAA.h"
#define use_portb_kbd TRUE
#include <string.h>
#include <kbd.c>
#define use_portb_lcd TRUE
#include <lcd.c>
#int_RTCC
void RTCC_isr(void)
{

}
int VrfCdUs (char *);void menu300();
void initialisation();
void coderronne();void test();
int testetat( );void Afficheetat(int );
void tapecode();void affpourcode (int x);
void menu1(); void menu4();void menu2();
void menu3();void menu5();void menu6();void menu31();
void menu541();void menu531();void menu532();
void menu0();void affichemenu(long );
void menu61();void menu62();void menu99();
void menu63();void menu64();void menu520();void menu530();void menu20();
void menu65(); void menu21();int1 verifpass();
void entercode();int1 verifcode(long );
void modif(int nbtch,long adresse,long nex,long ret);
//char message[20]="";

char codesystem[8];
char cd[8];
char pass[9];
char gs[8];
//char cmaster[9];//////////////////////
char codetaped[9];
char capteur=0,capteur_ancien=255;
int1 actsys=False,sirene=false,codeblok=false,defaut=false,activemenu=true;
int codeselect,repcode=0,nbrusr;
long menuAff=0,ancien_menuAff=18,retour;
int attente=2;
int y,x,b=0;
int RT;// RT=Relay Time
int ST;// ST=Siren Time
int ENT;//EXT=Delay Time
int EXT;//Ext=Exit Time
void main()
{
printf("debut du programme");
initialisation();

while (activemenu)
{
//printf("menue %d ancien",menuaff);
if (ancien_menuAff!=menuAff)
{

ancien_menuAff=menuAff;
affichemenu(menuaff);
}
}
while(1)
{
//printf("xxxxx");
if (actsys)
{
capteur_ancien=capteur;
capteur=testetat();
if (capteur!=capteur_ancien)
test();
}
test();
tapecode();
}
}

void initialisation()
{
int i;
port_b_pullups(true);

kbd_init();

lcd_init();
EXT=(read_eeprom(14)-48)*10+read_eeprom(15)-48;
ENT=(read_eeprom(12)-48)*10+read_eeprom(13)-48;
ST=(read_eeprom(10)-48)*10+read_eeprom(11)-48;
RT=(read_eeprom(8)-48)*10+read_eeprom(9)-48;

}

int VrfCdUs (char *usercode)
{
int comp;
comp=strcmp(usercode,codesystem);
printf("\n -%s- -%s-",usercode,codesystem);
repcode++;
if (comp==0)
{
comp=1;
repcode=0;codeblok=false;actsys=!actsys;
lcd_putc("\fCode valide:");
repcode=0;sirene=false;
if (actsys)
lcd_putc("\nAlarm ON");
else
lcd_putc("\nAlarm OFF");
}
else
comp=0;
return (comp);
}
int testetat()
{
char *message;
int1 P,F,B1,B2,Z1,Z2;
int1 Err;
int y=0;
P=input(pin_D0);F=input(pin_D1);
B1=input(pin_D2);B2=input(pin_D3);
Z1=input(pin_D4);Z2=input(pin_D5);
if (P)
y=y+1;
if (F)
y=y+2;
if (B1)
y=y+4;
if (B2)
y=y+8;
if (Z1)
y=y+16;
if (Z2)
y=y+32;
if(y>0)
{
defaut=true;
//sirene=true;
}
else
{
sirene=false;defaut=false;
}
return (y);
}

void menu0()
{
int x;
char t=0;
lcd_putc("\f");
if (actsys)
lcd_putc("ALARME ON");
else
lcd_putc("ALARME OFF");
lcd_putc("\n1:ALARME 2:\SETUP");
while ((t!='1') && (t!='2'))
t=kbd_getc();
switch (t)
{
case '1':{menuAff =1;break;}
case '2':{menuAff =20;break;}
}
t=0;
}

void menu1()
{
char t=0;
lcd_putc("\f");
lcd_putc("1:ALARME on/off \n2:\STATUS");
while ((t!='1') && (t!='2') && (t!='#'))
t=kbd_getc();
switch (t)
{
case '1':menuAff=2;break;
case '2':menuAff=3;break;
case '#':menuAff=0;break;
t=0;
}
}

void menu4()
{
char t=0;
menuAff =4;
lcd_putc("\f");
lcd_putc("1:SETUP USER\n2:SETUP SYSTEM");
while ((t!='1') && (t!='2')&& (t!='#'))
t=kbd_getc();
switch (t)
{
case '1':menuAff =5;break;
case '2':menuAff =6;break;
case '#':menuAff =0;break;
}
t=0;
}


void menu2()
{char cd[8],t;
int i;
lcd_putc("\fALARME ON/OFF");
lcd_putc("\nUser code:");
//menu530();
tapecode();/////////////////////////////////////////////////////////////////////
//entercode();
//!for(i=0;i<8;i++)
//!cd[i]=read_eeprom(38+i);
//!lcd_putc(cd[i]);
//!while(t==0)
//!t=kbd_getc();
//!while((t!='*')&&(t!='#'))
//!switch(t)
//!{case '*':delay_ms(500);for(i=0;i<8;i++)
//!if(cd[i]==codetaped[i])
//!lcd_putc("\f code valide");break;

}





void menu3()
{
char t=0;
capteur=testetat();capteur_ancien=capteur;
lcd_putc("\f");
if (actsys)
lcd_putc("Alarm ON ");
else
lcd_putc("Alarm OFF ");
lcd_putc("# to exit\n");
afficheetat(capteur);
test();

while (t!='#')
{
t=kbd_getc();
capteur=testetat();
if (capteur_ancien!=capteur)
{
capteur_ancien=capteur;
lcd_putc("\f");
if (actsys)
lcd_putc("Alarm ON ");
else
lcd_putc("Alarm OFF ");
afficheetat(capteur);
lcd_putc("# to exit");
}
}
menuAff =1;
}

void menu5()
{
char t=0;
menuAff =5;
lcd_putc("\f");
lcd_putc("1:MASTER CODE\n2:USER CODE/GSM");
while ((t!='1') && (t!='2')&& (t!='#'))
t=kbd_getc();

switch (t)
{
case '1':menuAff =51;break;
case '2':menuAff =520;break;
case '#':menuAff =0;break;
}
t=0;
}

void menu51()
{
menuAff=51;
lcd_putc("\f MASTER CODE:\n ");
modif(8,0,5,51);
if (menuaff==5)
{ delay_ms(500);lcd_putc("\fSAVE MATER CODE");}
}

void menu520()
{
char t=0;
menuAff =520;
lcd_putc("\f");
lcd_putc("1:USER CODE\n2:USER GSM");
while ((t!='1') && (t!='2')&& (t!='#'))
t=kbd_getc();

switch (t)
{
case '1':menuAff =531;break;
case '2':menuAff =52;break;
case '#':menuAff =5;break;
}
t=0;
}

void menu52()
{
int nu=-1;
char t=0;
int1 r=false;
menuAff=52;
lcd_putc("\f GSM NUMBER:");
while (!r)
{
while (t==0)
t=kbd_getc();
if (((t=='*')&&(nu!=-1))||(t=='#'))
r=true;
else
if (t!='*')
{nu=t-48;
if ((nu==1)||(nu==2)||(nu==3)||(nu==4)||(nu==5))
{lcd_gotoxy(14,1);lcd_putc(t);t=0;r=false;}
else
{t=0;}}
}
switch (t)
{
case '*':nbrusr=nu;menuAff=541;break;
case '#':{menuAff =99;retour=52;break;}
}
}

void menu541()
{
char t=0,i,dep;
menuAff=541;
dep=8+(nbrusr)*8;
lcd_putc("\fGSM(");lcd_putc(nbrusr+48);lcd_putc("):");
for (i=0;i<8;i++)
{//lcd_putc(read_eeprom(i+dep));
gs[i]=read_eeprom(i+dep);////////////////////////////////////////////////////
lcd_putc(gs[i]);
}
lcd_putc("\n*MDF 2_DEL #EXIT");
t=0;
while ((t!='2')&&(t!='*')&&(t!='#')&&(t!='1'))
t=kbd_getc();
printf("\rtouche =%c",t);
switch(t)
{
case '1':for(i=0;i<8;i++)
lcd_putc(gs[i]);break;
case '*':menuaff=54;break;
case '#':menuaff=520;break;
case '2':{for (i=0;i<8;i++)
{write_eeprom(i+dep,'?');delay_ms(100);};menuaff=64;retour=541;t=0;break;}
}
t=0;break;
}

void menu54()
{
char t=0,i,dep;
menuAff=54;
dep=8+(nbrusr)*8;
lcd_putc("\fGSM(");lcd_putc(nbrusr+48);lcd_putc("):");
for (i=0;i<8;i++)
lcd_putc(read_eeprom(i+dep));
lcd_putc("\nNew GSM:");
modif(8,dep,541,54);
if (menuaff==5)
{ delay_ms(500);lcd_putc("\fUser GSM Saved");delay_ms(500);}
}
void menu531()
{
{
int nu=-1;
char t=0;
int1 r=false;
menuAff=531;
lcd_putc("\f USER NUMBER:");
while (!r)
{
while (t==0)
t=kbd_getc();
if (((t=='*')&&(nu!=-1))||(t=='#'))
r=true;
else
if (t!='*')
{nu=t-48;
if ((nu==1)||(nu==2)||(nu==3)||(nu==4)||(nu==5)||(nu==6)||(nu==7)||(nu==8)||(nu==9)||(nu==0))
{lcd_gotoxy(14,1);lcd_putc(t);t=0;r=false;}
else
{t=0;}}
}
switch (t)
{
case '*':nbrusr=nu;menuAff=530;break;
case '#':{menuAff =99;retour=531;break;}
}
}

}

void menu530()
{
char t=0,i,dep;
menuAff=530;
dep=56+(nbrusr)*8;
lcd_putc("\fcode(");lcd_putc(nbrusr+48);lcd_putc("):");
for (i=0;i<8;i++)
{cd[i]=read_eeprom(i+dep);
lcd_putc(cd[i]);
}//lcd_putc(read_eeprom(i+dep));
lcd_putc("\n*MDF 2_DEL #EXIT");
t=0;
while ((t!='2')&&(t!='*')&&(t!='#'))
t=kbd_getc();
switch(t)
{
case '*':menuaff=532;delay_ms(500);retour=532;break;
case '#':menuaff=520;delay_ms(500);retour=520;break;
case '2':{for (i=0;i<8;i++)
{write_eeprom(i+dep,'?');delay_ms(100);};menuaff=530;break;}
}
}

void menu532()
{
char t=0,i,dep;
menuAff=532;
dep=56+(nbrusr)*8;
lcd_putc("\fCODE(");lcd_putc(nbrusr+48);lcd_putc("):");
for (i=0;i<8;i++)
lcd_putc(read_eeprom(i+dep));
lcd_putc("\nNew CODE:");
modif(8,dep,530,532);
if (menuaff==5)
{ delay_ms(500);lcd_putc("\fUser CODE Saved");delay_ms(500);}
}

void menu53()
{
char t=0,i,dep;
menuAff=53;
dep=56+(nbrusr)*8;
lcd_putc("\fCD US(");lcd_putc(nbrusr+48);lcd_putc(')');
for (i=0;i<8;i++)
lcd_putc(read_eeprom(i+dep));
lcd_putc("\nNew Cde:");
modif(8,dep,54,53);
if (menuaff==54)
{ delay_ms(500);lcd_putc("\fUser Code Saved");delay_ms(500);}
}

void menu6()
{
char c=0;
menuAff=6;
printf(lcd_putc,"\fLast RT:%c%c\nNew RT:",read_eeprom(8),read_eeprom(9));
modif(2,8,61,6);
if (menuaff==61)
{ delay_ms(500);lcd_putc("\fSAVE RELAY TIME");delay_ms(500);RT=(read_eeprom(8)-48)*10+read_eeprom(9)-48;}
}

void menu61()
{
menuAff=61;
printf(lcd_putc,"\fSIREN TIME:%c%c\nSIREN TIME:",read_eeprom(10),read_eeprom(11));
modif(2,10,62,61);
if (menuaff==62)
{ delay_ms(500);lcd_putc("\fSave SIREN TIME");delay_ms(500);ST=(read_eeprom(10)-48)*10+read_eeprom(11)-48;}
}

void menu62()
{
menuAff=62;
printf(lcd_putc,"\fDELAY ENT IME:%c%c\nDELAY ENT TME:",read_eeprom(12),read_eeprom(13));
modif(2,12,63,62);
if (menuaff==63)
{ delay_ms(500);lcd_putc("\fSave ENTRY DELAY TIME");delay_ms(500);ENT=(read_eeprom(12)-48)*10+read_eeprom(13)-48;}
}

void menu63()
{
menuAff=63;
printf(lcd_putc,"\fDELAY EXT TME:%c%c\nDELAY EXT TME:",read_eeprom(14),read_eeprom(15));
modif(2,14,4,63);
if (menuaff==4)
{ delay_ms(500);lcd_putc("\fSYSTEM READY TO USE");delay_ms(500);EXT=(read_eeprom(14)-48)*10+read_eeprom(15)-48;}
}

void menu64()
{
delay_ms(100);
menuAff =retour;
}

void menu99()
{
menuAff=99;
delay_ms(500);lcd_putc("\fRepeat Last opertaion");delay_ms(500);
menuAff=retour;

}

void affichemenu(long x)
{
printf("\rmenue affiché (%lu)",x);
switch (x)
{
case 0:menu0();break;
case 1:menu1();break;
case 2:menu2();break;
case 21:menu21();break;
case 3:menu3();break;
case 4:menu4();break;
case 5:menu5();break;
case 6:menu6();break;
case 61:menu61();break;
case 99:menu99();break;
case 62:menu62();break;
case 63:menu63();break;
case 64:menu64();break;
case 51:menu51();break;
case 520:menu520();break;
case 52:menu52();break;
case 53:menu53();break;
case 54:menu54();break;
case 541:menu541();break;
case 530:menu530();break;
case 531:menu531();break;
case 532:menu532();break;
case 20:menu20();break;
//case 300:menu300();break;
}
}

void Afficheetat(int y)
{
char *message;
int1 P,F,B1,B2,Z1,Z2,v;
char Po[3]="p ",Fe[3]="F ",Bo1[4]="B1 ",Bo2[4]="B2 ",Zo1[4]="Z1 ",Zo2[4]="Z2 ";
int1 Err;
P=input(pin_D0);F=input(pin_D1);
B1=input(pin_D2);B2=input(pin_D3);
Z1=input(pin_D4);Z2=input(pin_D5);
v=B1*F*B2*Z1*Z2;
if (P)
{
lcd_putc("Po ");
}
if (F)
{
lcd_putc("Fe ");
}
if (B1)
{
lcd_putc("Bo1 ");
}
if (B2)
{
lcd_putc("Bo2 \n");
}
if (Z1)
{
lcd_putc("Zo1 ");
}
if (Z2)
{
lcd_putc("Zo2 ");
}
if (y==0)
lcd_putc("No error");
else if(v==0)
output_high(pin_a1);
}

void coderronne()
{
if (repcode<3)
{
affpourcode (repcode);
//printf("\n Recode=%d \n",repcode);
}
else
{
lcd_putc("\fUndifined User:");
output_high(PIN_A1);
codeblok=true;printf("\n Recode=%d \n",repcode);
}
}

void test()
{
int y=0;
if (codeblok)
sirene=true;

if (actsys)
{
y++;
delay_ms(attente*1000);
if (defaut)
sirene=true;
}
if (sirene)
y=y+2;
if (defaut)
y=y+4;
output_a(y);
}

void tapecode()
{
char c=0;int i=0,n=0;
int1 cdtap=false,exitmenu=false;
affpourcode (repcode);
while (!exitmenu)
{while(n<8)
{while (c==0)
c=kbd_getc();
if ((c!='*') && (c!='#'))
{
lcd_putc('*');printf("%c",c);
for(i=0;i<8;i++)/////////////////////////////////////////
codetaped[i]=c;n++;
codetaped[i]='\0';c=0;
}
}
if (c=='#')
{
printf("\n Repcode=%d \n",repcode);
if (cdtap||(i==0))
{
exitmenu=true;menuaff=1;
}
else
{
affpourcode (repcode);i=0;c=0;
}
}
if (c=='*')
{
printf("#%s# ---> #%s# ",codesystem,codetaped);i=0;
codeselect=VrfCdUs (codetaped);
printf(" comparaison =%d",codeselect);cdtap=true;c=0;
if (codeselect==1)
{
capteur=testetat();
delay_ms(2000);
exitmenu=true;menuaff=3;
}
else
coderronne();
}
}
}

void affpourcode (int x)
{
lcd_putc("\fAlaram ");
if (actsys)
lcd_putc("ON");
else
lcd_putc("OFF");
lcd_putc("(");lcd_putc(repcode+49);lcd_putc("):\n");
//lcd_putc("Press # to exit\n");
lcd_putc("User Code:");
}

void modif(int nbtch,long adresse,long nex,long ret)
{
char num[9],t;
int nbrtch=0,i=0;

while (nbrtch<nbtch)
{
while ((t==0)||(t=='*')||(t=='#'))
t=kbd_getc();
num[nbrtch]=t;
nbrtch++;
lcd_putc(t);
t=0;
}
t=0;
while ((t!='*')&&(t!='#'))
t=kbd_getc();
//printf("\rmodif %d %d %c\r",nbtch,adresse, t);
switch (t)
{

case '*':{menuAff =nex;for (i=0;i<nbtch;i++)
{write_eeprom(adresse+i,num[i]);delay_ms(100);};break;}
case '#':{menuAff =99;retour=ret;break;}
}
}

void menu21()
{
int1 u;
menuaff=21;
lcd_putc("\fEnter MSTR Code:");
entercode();
u=verifcode(0);
printf("\r res==%d menu=%lu==>code[0]=%d",u,menuaff,codetaped[0]);
if (codetaped[0]!='?')
break;
if (codetaped[0]!='\0')
if (u)
{menuaff=4;lcd_putc("\faccess autorized");delay_ms(500);break;}
else
{menuaff=0;lcd_putc("\faccess denied");delay_ms(500);break;}
else
{retour=21;menuaff=99;break;}
}

void entercode()
{
char t=0;
int nbrtch=0,i=0;
lcd_gotoxy(1,2);lcd_putc(" ");lcd_gotoxy(5,2);
while (nbrtch<8)
{
while ((t==0)||(t=='*'))
t=kbd_getc();
codetaped[nbrtch]=t;
nbrtch++;
if (t=='#')
{ codetaped[0]='?';nbrtch=8;t='?';}
else
{lcd_putc('*');t=0;}
}
while ((t!='*')&&(t!='#')&&(t!='?'))
t=kbd_getc();
//printf("\rmodif %d %d %c\r",nbtch,adresse, t);
switch (t)
{
case '*':{codetaped[8]='\0';break;}
case '#':{codetaped[0]='\0';menuaff=21;break;}
case '?':{codetaped[0]='?';menuaff=0;break;}
}
}

int1 verifcode(long adresse)
{
long i=0;int1 j=true;
for (i=0;i<8;i++)
j=j&&(codetaped[i]==read_eeprom(adresse+i));
return (j);
}
void menu20()
{int val;
val=read_eeprom(0);
if(val==0)
{delay_ms(500);
menuaff=4;}
else
//delay_ms(500);
menuaff=21;
}
int msge()
{

//printf("(at+cmgs="gs[i]");
}