Sim900 Test

Dependencies:   mbed

Committer:
hbendali
Date:
Wed Apr 23 20:40:11 2014 +0000
Revision:
0:b3b255a647de
Sim900 test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hbendali 0:b3b255a647de 1 #include "mbed.h"
hbendali 0:b3b255a647de 2 #include <string>
hbendali 0:b3b255a647de 3 string result;
hbendali 0:b3b255a647de 4
hbendali 0:b3b255a647de 5 //------------------------------------
hbendali 0:b3b255a647de 6 // Hyperterminal configuration
hbendali 0:b3b255a647de 7 // 19200 bauds, 8-bit data, no parity
hbendali 0:b3b255a647de 8 //------------------------------------
hbendali 0:b3b255a647de 9
hbendali 0:b3b255a647de 10 Serial pc(SERIAL_TX, SERIAL_RX);
hbendali 0:b3b255a647de 11 Serial sim(PA_9, PA_10);
hbendali 0:b3b255a647de 12
hbendali 0:b3b255a647de 13 DigitalIn mybutton(USER_BUTTON);
hbendali 0:b3b255a647de 14 DigitalOut myled(LED1);
hbendali 0:b3b255a647de 15 DigitalOut sim_power(D9);
hbendali 0:b3b255a647de 16
hbendali 0:b3b255a647de 17 void sim_callback()
hbendali 0:b3b255a647de 18 {
hbendali 0:b3b255a647de 19 char x;
hbendali 0:b3b255a647de 20 x = sim.getc();
hbendali 0:b3b255a647de 21 result += x;
hbendali 0:b3b255a647de 22 pc.putc(x);
hbendali 0:b3b255a647de 23 }
hbendali 0:b3b255a647de 24
hbendali 0:b3b255a647de 25 void sim_call(string tel)
hbendali 0:b3b255a647de 26 {
hbendali 0:b3b255a647de 27 sim.printf("AT\r\n");
hbendali 0:b3b255a647de 28 result = "";
hbendali 0:b3b255a647de 29 wait(0.5);
hbendali 0:b3b255a647de 30 if(result!="\r\nOK\r\n") {
hbendali 0:b3b255a647de 31 sim_power.write(1);
hbendali 0:b3b255a647de 32 wait(3);
hbendali 0:b3b255a647de 33 sim_power.write(0);
hbendali 0:b3b255a647de 34 wait(19);
hbendali 0:b3b255a647de 35 sim.printf("ATE0\r\n");
hbendali 0:b3b255a647de 36 wait(1);
hbendali 0:b3b255a647de 37 }
hbendali 0:b3b255a647de 38
hbendali 0:b3b255a647de 39 sim.printf("ATD %s;\r\n",tel);
hbendali 0:b3b255a647de 40 result = "";
hbendali 0:b3b255a647de 41 wait(1);
hbendali 0:b3b255a647de 42 if(result=="\r\nOK\r\n") {
hbendali 0:b3b255a647de 43 pc.printf("Call OK\r\n");
hbendali 0:b3b255a647de 44 } else {
hbendali 0:b3b255a647de 45 pc.printf("Call Field\r\n");
hbendali 0:b3b255a647de 46 }
hbendali 0:b3b255a647de 47 }
hbendali 0:b3b255a647de 48
hbendali 0:b3b255a647de 49 int main()
hbendali 0:b3b255a647de 50 {
hbendali 0:b3b255a647de 51 set_time(1398285720); // Set time to 04/23/2014 @ 7:13pm
hbendali 0:b3b255a647de 52
hbendali 0:b3b255a647de 53 sim.attach(&sim_callback);
hbendali 0:b3b255a647de 54
hbendali 0:b3b255a647de 55 pc.baud(19200);
hbendali 0:b3b255a647de 56 sim.baud(19200);
hbendali 0:b3b255a647de 57
hbendali 0:b3b255a647de 58 pc.printf("\r\nTest SIM900 !\r\n");
hbendali 0:b3b255a647de 59
hbendali 0:b3b255a647de 60 sim_call("*710#");
hbendali 0:b3b255a647de 61
hbendali 0:b3b255a647de 62 while(1) {
hbendali 0:b3b255a647de 63 wait(1);
hbendali 0:b3b255a647de 64 //pc.printf(".");
hbendali 0:b3b255a647de 65 myled = !myled;
hbendali 0:b3b255a647de 66 if (!mybutton)
hbendali 0:b3b255a647de 67 sim_call("+213552830677");
hbendali 0:b3b255a647de 68
hbendali 0:b3b255a647de 69 time_t seconds = time(NULL);
hbendali 0:b3b255a647de 70 pc.printf("%s", ctime(&seconds));
hbendali 0:b3b255a647de 71
hbendali 0:b3b255a647de 72
hbendali 0:b3b255a647de 73 }
hbendali 0:b3b255a647de 74 }