NRF24L01P with FRDM KL-25Z as Receiver
Dependencies: ESP8266 mbed nRF24L01P
Fork of NRFRxCode by
main.cpp@1:44646476456d, 2017-12-04 (annotated)
- 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?
User | Revision | Line number | New 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 | } |