Programme GSM M95 v2.0

Dependencies:   mbed

Fork of mbed_m95 by TeamLegrand

Committer:
mbedjf
Date:
Sun Mar 04 13:58:07 2018 +0000
Revision:
0:a2a2c45b4247
Child:
1:be115e3a98ae
Programme essais ? valider ! envoi sms

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbedjf 0:a2a2c45b4247 1 /* JF - Lycee Cabanis de Brive-la-Gaillarde - date : 20180304*/
mbedjf 0:a2a2c45b4247 2 /* Essai gsm modem M95 : envoi SMS */
mbedjf 0:a2a2c45b4247 3
mbedjf 0:a2a2c45b4247 4 #include "mbed.h"
mbedjf 0:a2a2c45b4247 5
mbedjf 0:a2a2c45b4247 6 void power_on(); // to turn on le modem gsm
mbedjf 0:a2a2c45b4247 7 void led1_blink(); // to blink led1
mbedjf 0:a2a2c45b4247 8 void reset(); // to reset gsm modem
mbedjf 0:a2a2c45b4247 9 void init_gsm(); // to init gsm modem
mbedjf 0:a2a2c45b4247 10
mbedjf 0:a2a2c45b4247 11 DigitalOut led1(LED1);
mbedjf 0:a2a2c45b4247 12 DigitalOut led2(LED2);
mbedjf 0:a2a2c45b4247 13 DigitalOut led3(LED3);
mbedjf 0:a2a2c45b4247 14 DigitalOut led4(LED4);
mbedjf 0:a2a2c45b4247 15
mbedjf 0:a2a2c45b4247 16 DigitalOut bp_fire(p14);
mbedjf 0:a2a2c45b4247 17 DigitalOut pwrkey(p21);
mbedjf 0:a2a2c45b4247 18 DigitalOut emerg_off(p22);
mbedjf 0:a2a2c45b4247 19 DigitalIn status(p11);
mbedjf 0:a2a2c45b4247 20
mbedjf 0:a2a2c45b4247 21 Serial pc(USBTX, USBRX); // creation objet -> stream serial USB
mbedjf 0:a2a2c45b4247 22 Serial gsm(p9,p10); // creation objet -> stream serial uart p9 et p10
mbedjf 0:a2a2c45b4247 23
mbedjf 0:a2a2c45b4247 24 char numero_destinataire[20]={"06XXXXXXXX"};;
mbedjf 0:a2a2c45b4247 25 char message_transmis[100]={"Hello world ! Lycee Cabanis Brive SN2 !"};
mbedjf 0:a2a2c45b4247 26 char code_pin[5]={"1234"};
mbedjf 0:a2a2c45b4247 27 char reponse_gsm[20];
mbedjf 0:a2a2c45b4247 28 int element=0; //indice pour tableau
mbedjf 0:a2a2c45b4247 29
mbedjf 0:a2a2c45b4247 30 int main()
mbedjf 0:a2a2c45b4247 31 {
mbedjf 0:a2a2c45b4247 32 //gsm.baud(9600); // vitesse uart gsm 9600 bauds
mbedjf 0:a2a2c45b4247 33 for (int i=0;i<20;i++) reponse_gsm[i]=0; // initialisation tableau réponses
mbedjf 0:a2a2c45b4247 34
mbedjf 0:a2a2c45b4247 35 pc.printf("Lycee cabanis - Brive-la-Gaillarde - date : 20180304");
mbedjf 0:a2a2c45b4247 36 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 37 pc.printf("Essai gsm modem m95 : envoi SMS");
mbedjf 0:a2a2c45b4247 38 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 39
mbedjf 0:a2a2c45b4247 40 init_gsm();
mbedjf 0:a2a2c45b4247 41 pc.printf("Appuyez sur ''bp enter'' pour envoi SMS");
mbedjf 0:a2a2c45b4247 42 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 43
mbedjf 0:a2a2c45b4247 44 while (1) {
mbedjf 0:a2a2c45b4247 45
mbedjf 0:a2a2c45b4247 46 if(bp_fire==1){
mbedjf 0:a2a2c45b4247 47 // envoi message SMS au N° pré-saisi
mbedjf 0:a2a2c45b4247 48 gsm.printf("AT+CMGS=%s\r",numero_destinataire);
mbedjf 0:a2a2c45b4247 49 gsm.printf("%s",message_transmis);
mbedjf 0:a2a2c45b4247 50 gsm.putc(0x1A); // envoi ctrl+Z
mbedjf 0:a2a2c45b4247 51 //wait(30); // l'envoi du message SMS prends en 120 s maximum
mbedjf 0:a2a2c45b4247 52
mbedjf 0:a2a2c45b4247 53 pc.printf("AT+CMGS=%s\r",numero_destinataire);
mbedjf 0:a2a2c45b4247 54 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 55 pc.printf("%s",message_transmis);
mbedjf 0:a2a2c45b4247 56 pc.putc(0x1A); // envoi ctrl+Z
mbedjf 0:a2a2c45b4247 57 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 58 wait(30); // l'envoi du message SMS prends en 120 s maximum
mbedjf 0:a2a2c45b4247 59
mbedjf 0:a2a2c45b4247 60 /*while (gsm.readable()){
mbedjf 0:a2a2c45b4247 61 reponse_gsm[element]=gsm.getc();
mbedjf 0:a2a2c45b4247 62 element++;
mbedjf 0:a2a2c45b4247 63 }
mbedjf 0:a2a2c45b4247 64 pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring*/
mbedjf 0:a2a2c45b4247 65
mbedjf 0:a2a2c45b4247 66 pc.printf("Appuyez sur ''bp_enter'' pour envoi SMS");
mbedjf 0:a2a2c45b4247 67 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 68 }
mbedjf 0:a2a2c45b4247 69 }
mbedjf 0:a2a2c45b4247 70 }
mbedjf 0:a2a2c45b4247 71
mbedjf 0:a2a2c45b4247 72 // to turn on_off le modem gsm m95
mbedjf 0:a2a2c45b4247 73 void power_on_off(){
mbedjf 0:a2a2c45b4247 74 pwrkey=1; // création impulsion turn on sur ligne pwrkey
mbedjf 0:a2a2c45b4247 75 wait(1);
mbedjf 0:a2a2c45b4247 76 //pwrkey=1;
mbedjf 0:a2a2c45b4247 77 // attente de l'état turn on sur la ligne status
mbedjf 0:a2a2c45b4247 78 while(status==0)led1_blink();
mbedjf 0:a2a2c45b4247 79 pwrkey=0;
mbedjf 0:a2a2c45b4247 80 }
mbedjf 0:a2a2c45b4247 81
mbedjf 0:a2a2c45b4247 82 // to turn on_off le modem gsm m95
mbedjf 0:a2a2c45b4247 83 void reset(){
mbedjf 0:a2a2c45b4247 84 emerg_off=1; // création impulsion turn on sur ligne emerg_off
mbedjf 0:a2a2c45b4247 85 wait(0.1);
mbedjf 0:a2a2c45b4247 86 emerg_off=0;
mbedjf 0:a2a2c45b4247 87 wait(3);
mbedjf 0:a2a2c45b4247 88 }
mbedjf 0:a2a2c45b4247 89
mbedjf 0:a2a2c45b4247 90 // to blink led1
mbedjf 0:a2a2c45b4247 91 void led1_blink(){
mbedjf 0:a2a2c45b4247 92 //int i;
mbedjf 0:a2a2c45b4247 93 for(int i=0;i<3;i++)
mbedjf 0:a2a2c45b4247 94 {
mbedjf 0:a2a2c45b4247 95 led1=1;
mbedjf 0:a2a2c45b4247 96 wait(0.250);
mbedjf 0:a2a2c45b4247 97 led1=0;
mbedjf 0:a2a2c45b4247 98 wait(0.250);
mbedjf 0:a2a2c45b4247 99 }
mbedjf 0:a2a2c45b4247 100 }
mbedjf 0:a2a2c45b4247 101
mbedjf 0:a2a2c45b4247 102 void init_gsm(){
mbedjf 0:a2a2c45b4247 103 pc.printf("Patientez quelques instants : initialisation du modem gsm");
mbedjf 0:a2a2c45b4247 104 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 105 pwrkey=0;
mbedjf 0:a2a2c45b4247 106 emerg_off=0;
mbedjf 0:a2a2c45b4247 107 power_on_off(); //modem on
mbedjf 0:a2a2c45b4247 108 gsm.printf("AT+CPIN=%s\r",code_pin); // stockage du PIN
mbedjf 0:a2a2c45b4247 109 wait(5);
mbedjf 0:a2a2c45b4247 110
mbedjf 0:a2a2c45b4247 111 pc.printf("AT+CPIN=%s\r",code_pin); // monitoring
mbedjf 0:a2a2c45b4247 112 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 113 /*while (gsm.readable()){
mbedjf 0:a2a2c45b4247 114 reponse_gsm[element]=gsm.getc();
mbedjf 0:a2a2c45b4247 115 element++;
mbedjf 0:a2a2c45b4247 116 }
mbedjf 0:a2a2c45b4247 117 pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring*/
mbedjf 0:a2a2c45b4247 118
mbedjf 0:a2a2c45b4247 119 gsm.printf("AT+CMGF=1\r"); // sélection du format du message SMS
mbedjf 0:a2a2c45b4247 120 wait(0.3);
mbedjf 0:a2a2c45b4247 121
mbedjf 0:a2a2c45b4247 122 pc.printf("AT+CMGF=1\r"); // monitoring
mbedjf 0:a2a2c45b4247 123 pc.printf("\n\r>");
mbedjf 0:a2a2c45b4247 124 /*while (gsm.readable()){
mbedjf 0:a2a2c45b4247 125 reponse_gsm[element]=gsm.getc();
mbedjf 0:a2a2c45b4247 126 element++;
mbedjf 0:a2a2c45b4247 127 }
mbedjf 0:a2a2c45b4247 128 pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring
mbedjf 0:a2a2c45b4247 129 pc.printf("\n\r>");*/
mbedjf 0:a2a2c45b4247 130 }
mbedjf 0:a2a2c45b4247 131