GPS/GSM serial test for Crunchtrack https://hackaday.io/project/7134-crunchtrack

Dependencies:   GPS_CanSat mbed

This project is a simple test for the basic functionality of the Crunchtrack Board. It just forwards the serial port of either the GPS or the GSM to the PC's serial port. There's also a basic implementation of the GPS parser library that handles the GPS data and prints out coordinates and other data.

Committer:
gipmad
Date:
Mon Aug 17 18:48:51 2015 +0000
Revision:
0:99647d2b3203
GPS/GSM basic test for Crunchtrack

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gipmad 0:99647d2b3203 1 #include "mbed.h"
gipmad 0:99647d2b3203 2 #include "GPS.h"
gipmad 0:99647d2b3203 3
gipmad 0:99647d2b3203 4 Serial pc(SERIAL_TX, SERIAL_RX);
gipmad 0:99647d2b3203 5 //v0.2
gipmad 0:99647d2b3203 6 Serial GSM(PC_10, PC_11);
gipmad 0:99647d2b3203 7 // Serial GPS(PB_6, PB_7);
gipmad 0:99647d2b3203 8 GPS g1(PB_6, PB_7);
gipmad 0:99647d2b3203 9
gipmad 0:99647d2b3203 10
gipmad 0:99647d2b3203 11 //v0.1
gipmad 0:99647d2b3203 12 //Serial GPS(PC_10, PC_11);
gipmad 0:99647d2b3203 13 //Serial GSM(PA_14, PA_15);
gipmad 0:99647d2b3203 14
gipmad 0:99647d2b3203 15 //breadboard
gipmad 0:99647d2b3203 16 //Serial GSM(PB_6, PB_7);
gipmad 0:99647d2b3203 17 //Serial GPS(PC_4, PC_5);
gipmad 0:99647d2b3203 18
gipmad 0:99647d2b3203 19 //GPS g1(PC_10, PC_11);
gipmad 0:99647d2b3203 20
gipmad 0:99647d2b3203 21 DigitalIn mybutton(USER_BUTTON);
gipmad 0:99647d2b3203 22 DigitalOut myled(PB_2);
gipmad 0:99647d2b3203 23 DigitalOut GSMsw(PA_15);
gipmad 0:99647d2b3203 24
gipmad 0:99647d2b3203 25 DigitalOut DET(PB_13);
gipmad 0:99647d2b3203 26 /*
gipmad 0:99647d2b3203 27 int main() {
gipmad 0:99647d2b3203 28 while(1) {
gipmad 0:99647d2b3203 29 if (mybutton == 0) { // Button is pressed
gipmad 0:99647d2b3203 30 myled = !myled; // Toggle the LED state
gipmad 0:99647d2b3203 31 wait(0.2); // 200 ms
gipmad 0:99647d2b3203 32 }
gipmad 0:99647d2b3203 33 }
gipmad 0:99647d2b3203 34 }
gipmad 0:99647d2b3203 35 */
gipmad 0:99647d2b3203 36
gipmad 0:99647d2b3203 37 int main() {
gipmad 0:99647d2b3203 38
gipmad 0:99647d2b3203 39 DET = 0;
gipmad 0:99647d2b3203 40
gipmad 0:99647d2b3203 41 pc.baud(115200);
gipmad 0:99647d2b3203 42 //GPS.baud(9600);
gipmad 0:99647d2b3203 43 GSM.baud(115200);
gipmad 0:99647d2b3203 44 int i = 1;
gipmad 0:99647d2b3203 45 pc.printf("Hello World !\n");
gipmad 0:99647d2b3203 46
gipmad 0:99647d2b3203 47
gipmad 0:99647d2b3203 48 ///INIT
gipmad 0:99647d2b3203 49 myled = 1;
gipmad 0:99647d2b3203 50 //GSMsw = 1;
gipmad 0:99647d2b3203 51 wait(1);
gipmad 0:99647d2b3203 52 myled = 0;
gipmad 0:99647d2b3203 53
gipmad 0:99647d2b3203 54 pc.printf("ON\n");
gipmad 0:99647d2b3203 55
gipmad 0:99647d2b3203 56
gipmad 0:99647d2b3203 57 /* GSM.printf("AT\n");
gipmad 0:99647d2b3203 58 wait(1);
gipmad 0:99647d2b3203 59 GSM.printf("AT\n");
gipmad 0:99647d2b3203 60 wait(1);*/
gipmad 0:99647d2b3203 61
gipmad 0:99647d2b3203 62 while(1) {
gipmad 0:99647d2b3203 63
gipmad 0:99647d2b3203 64
gipmad 0:99647d2b3203 65 //GSM.printf("AT\n");
gipmad 0:99647d2b3203 66
gipmad 0:99647d2b3203 67 /*if(GSM.readable())
gipmad 0:99647d2b3203 68 pc.putc(GSM.getc());
gipmad 0:99647d2b3203 69 if(pc.readable())
gipmad 0:99647d2b3203 70 GSM.putc(pc.getc());*/
gipmad 0:99647d2b3203 71
gipmad 0:99647d2b3203 72 /*if(GPS.readable())
gipmad 0:99647d2b3203 73 pc.putc(GPS.getc());
gipmad 0:99647d2b3203 74 if(pc.readable())
gipmad 0:99647d2b3203 75 GPS.putc(pc.getc());*/
gipmad 0:99647d2b3203 76
gipmad 0:99647d2b3203 77
gipmad 0:99647d2b3203 78 wait(1);
gipmad 0:99647d2b3203 79 pc.printf("ns: %d\r\n", g1.ns());
gipmad 0:99647d2b3203 80 pc.printf("ew: %d\r\n", g1.ew());
gipmad 0:99647d2b3203 81 pc.printf("lock: %d\r\n", g1.lock());
gipmad 0:99647d2b3203 82 pc.printf("t: %f\r\n", g1.time());
gipmad 0:99647d2b3203 83 pc.printf("lat: %f\r\n", g1.latitude());
gipmad 0:99647d2b3203 84 pc.printf("lon: %f\r\n", g1.longitude());
gipmad 0:99647d2b3203 85 /*pc.printf("This program runs since %d seconds.\n", i++);
gipmad 0:99647d2b3203 86 s3.putc('U');
gipmad 0:99647d2b3203 87 while(GPS.readable())
gipmad 0:99647d2b3203 88 pc.putc(GPS.getc());
gipmad 0:99647d2b3203 89 */
gipmad 0:99647d2b3203 90 /*
gipmad 0:99647d2b3203 91 pc.putc('G');
gipmad 0:99647d2b3203 92 while(GSM.readable())
gipmad 0:99647d2b3203 93 pc.putc(GSM.getc());
gipmad 0:99647d2b3203 94 GSM.printf("AT+CGMI\n\r");
gipmad 0:99647d2b3203 95 //wait(0.001);
gipmad 0:99647d2b3203 96 while(GSM.readable())
gipmad 0:99647d2b3203 97 pc.putc(GSM.getc());
gipmad 0:99647d2b3203 98 */
gipmad 0:99647d2b3203 99
gipmad 0:99647d2b3203 100
gipmad 0:99647d2b3203 101 //myled = !myled;
gipmad 0:99647d2b3203 102 }
gipmad 0:99647d2b3203 103 }
gipmad 0:99647d2b3203 104