NRF24L01P with FRDM KL-25Z as Receiver

Dependencies:   ESP8266 mbed nRF24L01P

Fork of NRFRxCode by Karkhana Makerspace

Committer:
mrbhatter
Date:
Mon Dec 04 09:44:41 2017 +0000
Revision:
1:44646476456d
Parent:
0:ec3b5f850a28
NRF and ESP data to thingspeak;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mrbhatter 0:ec3b5f850a28 1 #include "mbed.h"
mrbhatter 0:ec3b5f850a28 2 #include "nRF24L01P.h"
mrbhatter 1:44646476456d 3 #include "ESP8266.h"
mrbhatter 0:ec3b5f850a28 4
mrbhatter 0:ec3b5f850a28 5 Serial pc(USBTX, USBRX); // tx, rx
mrbhatter 0:ec3b5f850a28 6
mrbhatter 0:ec3b5f850a28 7 nRF24L01P my_nrf24l01p(PTD2, PTD3, PTD1, PTD0, PTD5, PTD4); // MOSI, MISO, SCK, CSN, CE, IRQ
mrbhatter 1:44646476456d 8 DigitalOut GreenLED(LED2);
mrbhatter 1:44646476456d 9
mrbhatter 1:44646476456d 10
mrbhatter 1:44646476456d 11 ESP8266 wifi(PTE0, PTE1, 115200);
mrbhatter 1:44646476456d 12
mrbhatter 1:44646476456d 13 //buffers for wifi library
mrbhatter 1:44646476456d 14 char resp[1000];
mrbhatter 1:44646476456d 15 char http_cmd[300], comm[300];
mrbhatter 1:44646476456d 16 char count[1];
mrbhatter 1:44646476456d 17 int timeout = 8000;
mrbhatter 1:44646476456d 18
mrbhatter 1:44646476456d 19 //SSID and password for connection
mrbhatter 1:44646476456d 20 #define SSID "TAT"
mrbhatter 1:44646476456d 21 #define PASS "tatuniversity"
mrbhatter 1:44646476456d 22
mrbhatter 1:44646476456d 23 //Remote IP
mrbhatter 1:44646476456d 24 #define IP "184.106.153.149" // 52.202.122.57
mrbhatter 1:44646476456d 25 //global variable
mrbhatter 1:44646476456d 26 //float potvalue = 0;
mrbhatter 1:44646476456d 27 //float litvalue = 0;
mrbhatter 1:44646476456d 28
mrbhatter 1:44646476456d 29 //Update key for thingspeak
mrbhatter 1:44646476456d 30 char* Update_Key = "P2GMSKA9NY7KV0LW";
mrbhatter 1:44646476456d 31
mrbhatter 1:44646476456d 32
mrbhatter 1:44646476456d 33
mrbhatter 1:44646476456d 34
mrbhatter 1:44646476456d 35 void wifi_initialize(void)
mrbhatter 1:44646476456d 36 {
mrbhatter 1:44646476456d 37 pc.printf("******** Resetting wifi module ********\r\n");
mrbhatter 1:44646476456d 38 wifi.Reset();
mrbhatter 1:44646476456d 39
mrbhatter 1:44646476456d 40 //wait for 5 seconds for response, else display no response receiveed
mrbhatter 1:44646476456d 41 if (wifi.RcvReply(resp, 5000))
mrbhatter 1:44646476456d 42 pc.printf("%s",resp);
mrbhatter 1:44646476456d 43 else
mrbhatter 1:44646476456d 44 pc.printf("No response");
mrbhatter 1:44646476456d 45
mrbhatter 1:44646476456d 46
mrbhatter 1:44646476456d 47 pc.printf("******** Setting Station mode of wifi with AP ********\r\n");
mrbhatter 1:44646476456d 48 wifi.SetMode(1); // set transparent mode
mrbhatter 1:44646476456d 49 if (wifi.RcvReply(resp, timeout)) //receive a response from ESP
mrbhatter 1:44646476456d 50 pc.printf("%s",resp); //Print the response onscreen
mrbhatter 1:44646476456d 51 else
mrbhatter 1:44646476456d 52 pc.printf("No response while setting mode. \r\n");
mrbhatter 1:44646476456d 53
mrbhatter 1:44646476456d 54
mrbhatter 1:44646476456d 55 pc.printf("******** Joining network with SSID and PASS ********\r\n");
mrbhatter 1:44646476456d 56 wifi.Join(SSID, PASS);
mrbhatter 1:44646476456d 57 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 58 pc.printf("%s",resp);
mrbhatter 1:44646476456d 59 else
mrbhatter 1:44646476456d 60 pc.printf("No response while connecting to network \r\n");
mrbhatter 0:ec3b5f850a28 61
mrbhatter 0:ec3b5f850a28 62
mrbhatter 1:44646476456d 63 pc.printf("******** Getting IP and MAC of module ********\r\n");
mrbhatter 1:44646476456d 64 wifi.GetIP(resp);
mrbhatter 1:44646476456d 65 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 66 pc.printf("%s",resp);
mrbhatter 1:44646476456d 67 else
mrbhatter 1:44646476456d 68 pc.printf("No response while getting IP \r\n");
mrbhatter 1:44646476456d 69
mrbhatter 1:44646476456d 70
mrbhatter 1:44646476456d 71 pc.printf("******** Setting WIFI UART passthrough ********\r\n");
mrbhatter 1:44646476456d 72 wifi.setTransparent();
mrbhatter 1:44646476456d 73 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 74 pc.printf("%s",resp);
mrbhatter 1:44646476456d 75 else
mrbhatter 1:44646476456d 76 pc.printf("No response while setting wifi passthrough. \r\n");
mrbhatter 1:44646476456d 77 wait(1);
mrbhatter 1:44646476456d 78
mrbhatter 1:44646476456d 79
mrbhatter 1:44646476456d 80 pc.printf("******** Setting single connection mode ********\r\n");
mrbhatter 1:44646476456d 81 wifi.SetSingle();
mrbhatter 1:44646476456d 82 wifi.RcvReply(resp, timeout);
mrbhatter 1:44646476456d 83 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 84 pc.printf("%s",resp);
mrbhatter 1:44646476456d 85 else
mrbhatter 1:44646476456d 86 pc.printf("No response while setting single connection \r\n");
mrbhatter 1:44646476456d 87 wait(1);
mrbhatter 1:44646476456d 88 }
mrbhatter 1:44646476456d 89
mrbhatter 1:44646476456d 90
mrbhatter 1:44646476456d 91
mrbhatter 1:44646476456d 92
mrbhatter 1:44646476456d 93
mrbhatter 1:44646476456d 94 void wifi_send(void)
mrbhatter 1:44646476456d 95 {
mrbhatter 1:44646476456d 96 pc.printf("******** Starting TCP connection on IP and port ********\r\n");
mrbhatter 1:44646476456d 97 wifi.startTCPConn(IP,80); //cipstart
mrbhatter 1:44646476456d 98 wifi.RcvReply(resp, timeout);
mrbhatter 1:44646476456d 99 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 100 pc.printf("%s",resp);
mrbhatter 1:44646476456d 101 else
mrbhatter 1:44646476456d 102 pc.printf("No response while starting TCP connection \r\n");
mrbhatter 1:44646476456d 103 wait(1);
mrbhatter 1:44646476456d 104
mrbhatter 1:44646476456d 105 //create link
mrbhatter 1:44646476456d 106 sprintf(http_cmd,"/update?api_key=%s&field1=%d",Update_Key,count);
mrbhatter 1:44646476456d 107
mrbhatter 1:44646476456d 108 pc.printf(http_cmd);
mrbhatter 1:44646476456d 109
mrbhatter 1:44646476456d 110 pc.printf("******** Sending URL to wifi ********\r\n");
mrbhatter 1:44646476456d 111 wifi.sendURL(http_cmd, comm); //cipsend and get command
mrbhatter 1:44646476456d 112 if (wifi.RcvReply(resp, timeout))
mrbhatter 1:44646476456d 113 pc.printf("%s",resp);
mrbhatter 1:44646476456d 114 else
mrbhatter 1:44646476456d 115 pc.printf("No response while sending URL \r\n");
mrbhatter 1:44646476456d 116 }
mrbhatter 1:44646476456d 117
mrbhatter 1:44646476456d 118
mrbhatter 1:44646476456d 119
mrbhatter 1:44646476456d 120
mrbhatter 1:44646476456d 121
mrbhatter 1:44646476456d 122 int main()
mrbhatter 1:44646476456d 123 {
mrbhatter 0:ec3b5f850a28 124 char RxDataCnt;
mrbhatter 0:ec3b5f850a28 125 char temp;
mrbhatter 0:ec3b5f850a28 126
mrbhatter 0:ec3b5f850a28 127 my_nrf24l01p.powerUp();
mrbhatter 1:44646476456d 128 my_nrf24l01p.setRfFrequency(2500);
mrbhatter 0:ec3b5f850a28 129
mrbhatter 0:ec3b5f850a28 130 // Display the (default) setup of the nRF24L01+ chip
mrbhatter 0:ec3b5f850a28 131 pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() );
mrbhatter 0:ec3b5f850a28 132 pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() );
mrbhatter 0:ec3b5f850a28 133 pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() );
mrbhatter 0:ec3b5f850a28 134 pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() );
mrbhatter 0:ec3b5f850a28 135 pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() );
mrbhatter 0:ec3b5f850a28 136
mrbhatter 0:ec3b5f850a28 137 RxDataCnt = 2;
mrbhatter 0:ec3b5f850a28 138 my_nrf24l01p.setTransferSize( RxDataCnt );
mrbhatter 0:ec3b5f850a28 139 my_nrf24l01p.setReceiveMode();
mrbhatter 0:ec3b5f850a28 140 my_nrf24l01p.enable();
mrbhatter 1:44646476456d 141 wifi_initialize();
mrbhatter 0:ec3b5f850a28 142 while (1) {
mrbhatter 1:44646476456d 143 //if ( my_nrf24l01p.readable() ) {
mrbhatter 0:ec3b5f850a28 144 temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt );
mrbhatter 1:44646476456d 145 pc.printf( "%d\r\n",count[0]);
mrbhatter 0:ec3b5f850a28 146 wait_ms(10);
mrbhatter 1:44646476456d 147 //}
mrbhatter 1:44646476456d 148 wifi_send();
mrbhatter 1:44646476456d 149 wait(30);
mrbhatter 0:ec3b5f850a28 150 }
mrbhatter 0:ec3b5f850a28 151 }