Yeah it works!

Dependencies:   GPS RF22 mbed

Fork of Geofence_sender by Umair Ishfaq

Committer:
afahadshujah
Date:
Fri Jan 01 19:31:35 2016 +0000
Revision:
2:c1f0b54834a5
Parent:
0:bdfb6afe26e0
Geofencer Fahad;

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
afahadshujah 2:c1f0b54834a5 22 int send_loop() {
13beeuishfaq 0:bdfb6afe26e0 23 uint8_t data[32] = "";
afahadshujah 2:c1f0b54834a5 24 int flagcheck1=0;
13beeuishfaq 0:bdfb6afe26e0 25
afahadshujah 2:c1f0b54834a5 26 while (flagcheck1==0) {
13beeuishfaq 0:bdfb6afe26e0 27
13beeuishfaq 0:bdfb6afe26e0 28 if(af.sample()==1)
13beeuishfaq 0:bdfb6afe26e0 29 {
13beeuishfaq 0:bdfb6afe26e0 30 float latitude=af.latitude;
13beeuishfaq 0:bdfb6afe26e0 31 float longitude=af.longitude;
13beeuishfaq 0:bdfb6afe26e0 32 sprintf((char*)data,"%f,%f",latitude,longitude);
13beeuishfaq 0:bdfb6afe26e0 33 pc.printf("%f, %f",latitude,longitude);
13beeuishfaq 0:bdfb6afe26e0 34 //sendtoWait(uint8_t* buf, uint8_t len, uint8_t address);
13beeuishfaq 0:bdfb6afe26e0 35 pc.printf("\n\rStart sending ... ");
13beeuishfaq 0:bdfb6afe26e0 36 if (rf22.sendtoWait(data, sizeof(data), receiver_adress)) {
13beeuishfaq 0:bdfb6afe26e0 37 pc.printf("Send to %i ACK: >>%s<< ", receiver_adress,(char*)data);
afahadshujah 2:c1f0b54834a5 38 }
afahadshujah 2:c1f0b54834a5 39 else {
13beeuishfaq 0:bdfb6afe26e0 40 pc.printf("Send to %i NOTACK: >>%s<< ", receiver_adress,(char*)data);
13beeuishfaq 0:bdfb6afe26e0 41 }
13beeuishfaq 0:bdfb6afe26e0 42 pc.printf("sleeping 2 seconds... ");
afahadshujah 2:c1f0b54834a5 43 flagcheck1=1;
13beeuishfaq 0:bdfb6afe26e0 44 wait(1);
13beeuishfaq 0:bdfb6afe26e0 45 }
13beeuishfaq 0:bdfb6afe26e0 46 else
13beeuishfaq 0:bdfb6afe26e0 47 {
13beeuishfaq 0:bdfb6afe26e0 48 myled=1;
13beeuishfaq 0:bdfb6afe26e0 49 wait(0.5);
13beeuishfaq 0:bdfb6afe26e0 50 myled=0;
13beeuishfaq 0:bdfb6afe26e0 51 wait(0.5);
13beeuishfaq 0:bdfb6afe26e0 52 } // Wait 2 Seconds
13beeuishfaq 0:bdfb6afe26e0 53 }
13beeuishfaq 0:bdfb6afe26e0 54 }
afahadshujah 2:c1f0b54834a5 55 void rfcheck()
afahadshujah 2:c1f0b54834a5 56 {
13beeuishfaq 0:bdfb6afe26e0 57 pc.printf("\n\rConnected to mbed\n\r");
13beeuishfaq 0:bdfb6afe26e0 58
13beeuishfaq 0:bdfb6afe26e0 59 pc.printf ("RF22-Test-Reliable-Send V1.0\n\r");
13beeuishfaq 0:bdfb6afe26e0 60
13beeuishfaq 0:bdfb6afe26e0 61 // initialize the device
13beeuishfaq 0:bdfb6afe26e0 62 if (!rf22.init())
13beeuishfaq 0:bdfb6afe26e0 63 pc.printf("RF22 init failed\n\r");
13beeuishfaq 0:bdfb6afe26e0 64
13beeuishfaq 0:bdfb6afe26e0 65 // set to 19.2 KB
13beeuishfaq 0:bdfb6afe26e0 66 if (!rf22.setModemConfig(RF22::GFSK_Rb19_2Fd9_6))
13beeuishfaq 0:bdfb6afe26e0 67 pc.printf("setModemConfig failed");
13beeuishfaq 0:bdfb6afe26e0 68
13beeuishfaq 0:bdfb6afe26e0 69 if (!rf22.setFrequency(frequency))
13beeuishfaq 0:bdfb6afe26e0 70 pc.printf("setFrequency failed");
13beeuishfaq 0:bdfb6afe26e0 71
13beeuishfaq 0:bdfb6afe26e0 72 // Code for sending
13beeuishfaq 0:bdfb6afe26e0 73 pc.printf("I am sending with address %i to adress %i ...\n\r",sender_adress,receiver_adress );
13beeuishfaq 0:bdfb6afe26e0 74 rf22.setThisAddress(sender_adress); // sender-adress
afahadshujah 2:c1f0b54834a5 75
afahadshujah 2:c1f0b54834a5 76 }
afahadshujah 2:c1f0b54834a5 77 int main() {
13beeuishfaq 0:bdfb6afe26e0 78
afahadshujah 2:c1f0b54834a5 79 pc.baud(9600);
afahadshujah 2:c1f0b54834a5 80 rfcheck();
afahadshujah 2:c1f0b54834a5 81
13beeuishfaq 0:bdfb6afe26e0 82 send_loop(); // start sending
13beeuishfaq 0:bdfb6afe26e0 83 }
13beeuishfaq 0:bdfb6afe26e0 84