Ahmad Fahad
/
Geofence_sender
Yeah it works!
Fork of Geofence_sender by
main.cpp@0:bdfb6afe26e0, 2015-12-31 (annotated)
- Committer:
- 13beeuishfaq
- Date:
- Thu Dec 31 16:30:36 2015 +0000
- Revision:
- 0:bdfb6afe26e0
- Child:
- 2:c1f0b54834a5
Fixed an issue that gave false GPS Coordinates;
Who changed what in which revision?
User | Revision | Line number | New 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 |