it sends the GPS coordinates from neo-6m to the base station using rf22.

Dependencies:   GPS RF22 mbed

Committer:
13beeuishfaq
Date:
Thu Dec 31 16:33:07 2015 +0000
Revision:
1:93cb484f564a
Parent:
0:bdfb6afe26e0
Board: nucleo-f103rb; GPS: Neo-6m; RF22: si4432 based with 433 Mhz;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
13beeuishfaq 0:bdfb6afe26e0 1 #include "mbed.h"
13beeuishfaq 0:bdfb6afe26e0 2 #include <RF22.h>
13beeuishfaq 0:bdfb6afe26e0 3 #include <RF22ReliableDatagram.h>
13beeuishfaq 0:bdfb6afe26e0 4 #include <GPS.h>
13beeuishfaq 0:bdfb6afe26e0 5
13beeuishfaq 0:bdfb6afe26e0 6 // Sample programm for ReliableDatagramm Sending
13beeuishfaq 0:bdfb6afe26e0 7 // Uses address 1 and sends to RF22 with address 2
13beeuishfaq 0:bdfb6afe26e0 8 // See notebook http://mbed.org/users/charly/notebook/rfm22/ for connecting RFM22 to mbed
13beeuishfaq 0:bdfb6afe26e0 9 DigitalOut myled(LED1);
13beeuishfaq 0:bdfb6afe26e0 10 Serial pc(USBTX, USBRX);
13beeuishfaq 0:bdfb6afe26e0 11 GPS af(PB_10, PB_11);
13beeuishfaq 0:bdfb6afe26e0 12 //RF22ReliableDatagram (uint8_t thisAddress, PinName slaveSelectPin, PinName mosi, PinName miso, PinName sclk, PinName interrupt)
13beeuishfaq 0:bdfb6afe26e0 13 RF22ReliableDatagram rf22(0,PB_6,PA_7,PA_6,PA_5,PA_10);
13beeuishfaq 0:bdfb6afe26e0 14
13beeuishfaq 0:bdfb6afe26e0 15 float frequency = 433; // frequency
13beeuishfaq 0:bdfb6afe26e0 16
13beeuishfaq 0:bdfb6afe26e0 17 const uint8_t sender_adress = 1; // address of sender
13beeuishfaq 0:bdfb6afe26e0 18 const uint8_t receiver_adress =2; // address of receiver
13beeuishfaq 0:bdfb6afe26e0 19
13beeuishfaq 0:bdfb6afe26e0 20
13beeuishfaq 0:bdfb6afe26e0 21 // send messages forever
13beeuishfaq 0:bdfb6afe26e0 22 void send_loop() {
13beeuishfaq 0:bdfb6afe26e0 23 uint8_t data[32] = "";
13beeuishfaq 0:bdfb6afe26e0 24
13beeuishfaq 0:bdfb6afe26e0 25 while (1) {
13beeuishfaq 0:bdfb6afe26e0 26
13beeuishfaq 0:bdfb6afe26e0 27 if(af.sample()==1)
13beeuishfaq 0:bdfb6afe26e0 28 {
13beeuishfaq 0:bdfb6afe26e0 29 float latitude=af.latitude;
13beeuishfaq 0:bdfb6afe26e0 30 float longitude=af.longitude;
13beeuishfaq 0:bdfb6afe26e0 31 sprintf((char*)data,"%f,%f",latitude,longitude);
13beeuishfaq 0:bdfb6afe26e0 32 pc.printf("%f, %f",latitude,longitude);
13beeuishfaq 0:bdfb6afe26e0 33 //sendtoWait(uint8_t* buf, uint8_t len, uint8_t address);
13beeuishfaq 0:bdfb6afe26e0 34 pc.printf("\n\rStart sending ... ");
13beeuishfaq 0:bdfb6afe26e0 35 if (rf22.sendtoWait(data, sizeof(data), receiver_adress)) {
13beeuishfaq 0:bdfb6afe26e0 36 pc.printf("Send to %i ACK: >>%s<< ", receiver_adress,(char*)data);
13beeuishfaq 0:bdfb6afe26e0 37 } else {
13beeuishfaq 0:bdfb6afe26e0 38 pc.printf("Send to %i NOTACK: >>%s<< ", receiver_adress,(char*)data);
13beeuishfaq 0:bdfb6afe26e0 39 }
13beeuishfaq 0:bdfb6afe26e0 40 pc.printf("sleeping 2 seconds... ");
13beeuishfaq 0:bdfb6afe26e0 41 wait(1);
13beeuishfaq 0:bdfb6afe26e0 42 }
13beeuishfaq 0:bdfb6afe26e0 43 else
13beeuishfaq 0:bdfb6afe26e0 44 {
13beeuishfaq 0:bdfb6afe26e0 45 myled=1;
13beeuishfaq 0:bdfb6afe26e0 46 wait(0.5);
13beeuishfaq 0:bdfb6afe26e0 47 myled=0;
13beeuishfaq 0:bdfb6afe26e0 48 wait(0.5);
13beeuishfaq 0:bdfb6afe26e0 49 } // Wait 2 Seconds
13beeuishfaq 0:bdfb6afe26e0 50 }
13beeuishfaq 0:bdfb6afe26e0 51 }
13beeuishfaq 0:bdfb6afe26e0 52
13beeuishfaq 0:bdfb6afe26e0 53 int main() {
13beeuishfaq 0:bdfb6afe26e0 54
13beeuishfaq 0:bdfb6afe26e0 55 pc.baud(9600);
13beeuishfaq 0:bdfb6afe26e0 56 pc.printf("\n\rConnected to mbed\n\r");
13beeuishfaq 0:bdfb6afe26e0 57
13beeuishfaq 0:bdfb6afe26e0 58 pc.printf ("RF22-Test-Reliable-Send V1.0\n\r");
13beeuishfaq 0:bdfb6afe26e0 59
13beeuishfaq 0:bdfb6afe26e0 60 // initialize the device
13beeuishfaq 0:bdfb6afe26e0 61 if (!rf22.init())
13beeuishfaq 0:bdfb6afe26e0 62 pc.printf("RF22 init failed\n\r");
13beeuishfaq 0:bdfb6afe26e0 63
13beeuishfaq 0:bdfb6afe26e0 64 // set to 19.2 KB
13beeuishfaq 0:bdfb6afe26e0 65 if (!rf22.setModemConfig(RF22::GFSK_Rb19_2Fd9_6))
13beeuishfaq 0:bdfb6afe26e0 66 pc.printf("setModemConfig failed");
13beeuishfaq 0:bdfb6afe26e0 67
13beeuishfaq 0:bdfb6afe26e0 68 if (!rf22.setFrequency(frequency))
13beeuishfaq 0:bdfb6afe26e0 69 pc.printf("setFrequency failed");
13beeuishfaq 0:bdfb6afe26e0 70
13beeuishfaq 0:bdfb6afe26e0 71 // Code for sending
13beeuishfaq 0:bdfb6afe26e0 72 pc.printf("I am sending with address %i to adress %i ...\n\r",sender_adress,receiver_adress );
13beeuishfaq 0:bdfb6afe26e0 73 rf22.setThisAddress(sender_adress); // sender-adress
13beeuishfaq 0:bdfb6afe26e0 74
13beeuishfaq 0:bdfb6afe26e0 75 send_loop(); // start sending
13beeuishfaq 0:bdfb6afe26e0 76 }
13beeuishfaq 0:bdfb6afe26e0 77