![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Programme GSM M95 v2.0
Dependencies: mbed
Fork of mbed_m95 by
Diff: main.cpp
- Revision:
- 0:a2a2c45b4247
- Child:
- 1:be115e3a98ae
diff -r 000000000000 -r a2a2c45b4247 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sun Mar 04 13:58:07 2018 +0000 @@ -0,0 +1,131 @@ +/* JF - Lycee Cabanis de Brive-la-Gaillarde - date : 20180304*/ +/* Essai gsm modem M95 : envoi SMS */ + +#include "mbed.h" + + void power_on(); // to turn on le modem gsm + void led1_blink(); // to blink led1 + void reset(); // to reset gsm modem + void init_gsm(); // to init gsm modem + + DigitalOut led1(LED1); + DigitalOut led2(LED2); + DigitalOut led3(LED3); + DigitalOut led4(LED4); + + DigitalOut bp_fire(p14); + DigitalOut pwrkey(p21); + DigitalOut emerg_off(p22); + DigitalIn status(p11); + +Serial pc(USBTX, USBRX); // creation objet -> stream serial USB +Serial gsm(p9,p10); // creation objet -> stream serial uart p9 et p10 + +char numero_destinataire[20]={"06XXXXXXXX"};; +char message_transmis[100]={"Hello world ! Lycee Cabanis Brive SN2 !"}; +char code_pin[5]={"1234"}; +char reponse_gsm[20]; +int element=0; //indice pour tableau + +int main() + { + //gsm.baud(9600); // vitesse uart gsm 9600 bauds + for (int i=0;i<20;i++) reponse_gsm[i]=0; // initialisation tableau réponses + + pc.printf("Lycee cabanis - Brive-la-Gaillarde - date : 20180304"); + pc.printf("\n\r>"); + pc.printf("Essai gsm modem m95 : envoi SMS"); + pc.printf("\n\r>"); + + init_gsm(); + pc.printf("Appuyez sur ''bp enter'' pour envoi SMS"); + pc.printf("\n\r>"); + + while (1) { + + if(bp_fire==1){ + // envoi message SMS au N° pré-saisi + gsm.printf("AT+CMGS=%s\r",numero_destinataire); + gsm.printf("%s",message_transmis); + gsm.putc(0x1A); // envoi ctrl+Z + //wait(30); // l'envoi du message SMS prends en 120 s maximum + + pc.printf("AT+CMGS=%s\r",numero_destinataire); + pc.printf("\n\r>"); + pc.printf("%s",message_transmis); + pc.putc(0x1A); // envoi ctrl+Z + pc.printf("\n\r>"); + wait(30); // l'envoi du message SMS prends en 120 s maximum + + /*while (gsm.readable()){ + reponse_gsm[element]=gsm.getc(); + element++; + } + pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring*/ + + pc.printf("Appuyez sur ''bp_enter'' pour envoi SMS"); + pc.printf("\n\r>"); + } + } +} + +// to turn on_off le modem gsm m95 +void power_on_off(){ + pwrkey=1; // création impulsion turn on sur ligne pwrkey + wait(1); + //pwrkey=1; + // attente de l'état turn on sur la ligne status + while(status==0)led1_blink(); + pwrkey=0; + } + +// to turn on_off le modem gsm m95 +void reset(){ + emerg_off=1; // création impulsion turn on sur ligne emerg_off + wait(0.1); + emerg_off=0; + wait(3); + } + +// to blink led1 +void led1_blink(){ + //int i; + for(int i=0;i<3;i++) + { + led1=1; + wait(0.250); + led1=0; + wait(0.250); + } + } + + void init_gsm(){ + pc.printf("Patientez quelques instants : initialisation du modem gsm"); + pc.printf("\n\r>"); + pwrkey=0; + emerg_off=0; + power_on_off(); //modem on + gsm.printf("AT+CPIN=%s\r",code_pin); // stockage du PIN + wait(5); + + pc.printf("AT+CPIN=%s\r",code_pin); // monitoring + pc.printf("\n\r>"); + /*while (gsm.readable()){ + reponse_gsm[element]=gsm.getc(); + element++; + } + pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring*/ + + gsm.printf("AT+CMGF=1\r"); // sélection du format du message SMS + wait(0.3); + + pc.printf("AT+CMGF=1\r"); // monitoring + pc.printf("\n\r>"); + /*while (gsm.readable()){ + reponse_gsm[element]=gsm.getc(); + element++; + } + pc.printf("Reponse modem gsm = s%\r",reponse_gsm); // monitoring + pc.printf("\n\r>");*/ + } + \ No newline at end of file