Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: ESP8266 mbed nRF24L01P
Fork of NRF-THING by
main.cpp@2:1cb1ec283154, 2017-12-04 (annotated)
- Committer:
- mrbhatter
- Date:
- Mon Dec 04 11:01:16 2017 +0000
- Revision:
- 2:1cb1ec283154
- Parent:
- 1:44646476456d
NRF with ESP8266 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 | 2:1cb1ec283154 | 16 | |
mrbhatter | 2:1cb1ec283154 | 17 | int timeout = 1000; |
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 | 2:1cb1ec283154 | 28 | int abt; |
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 | 2:1cb1ec283154 | 106 | sprintf(http_cmd,"/update?api_key=%s&field1=%d",Update_Key,abt); |
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 | 2:1cb1ec283154 | 124 | wifi_initialize(); |
mrbhatter | 0:ec3b5f850a28 | 125 | char RxDataCnt; |
mrbhatter | 0:ec3b5f850a28 | 126 | char temp; |
mrbhatter | 2:1cb1ec283154 | 127 | char count[1]; |
mrbhatter | 0:ec3b5f850a28 | 128 | my_nrf24l01p.powerUp(); |
mrbhatter | 2:1cb1ec283154 | 129 | my_nrf24l01p.setRfFrequency(2400); |
mrbhatter | 0:ec3b5f850a28 | 130 | |
mrbhatter | 0:ec3b5f850a28 | 131 | // Display the (default) setup of the nRF24L01+ chip |
mrbhatter | 0:ec3b5f850a28 | 132 | pc.printf( "nRF24L01+ Frequency : %d MHz\r\n", my_nrf24l01p.getRfFrequency() ); |
mrbhatter | 0:ec3b5f850a28 | 133 | pc.printf( "nRF24L01+ Output power : %d dBm\r\n", my_nrf24l01p.getRfOutputPower() ); |
mrbhatter | 0:ec3b5f850a28 | 134 | pc.printf( "nRF24L01+ Data Rate : %d kbps\r\n", my_nrf24l01p.getAirDataRate() ); |
mrbhatter | 0:ec3b5f850a28 | 135 | pc.printf( "nRF24L01+ TX Address : 0x%010llX\r\n", my_nrf24l01p.getTxAddress() ); |
mrbhatter | 0:ec3b5f850a28 | 136 | pc.printf( "nRF24L01+ RX Address : 0x%010llX\r\n", my_nrf24l01p.getRxAddress() ); |
mrbhatter | 0:ec3b5f850a28 | 137 | |
mrbhatter | 0:ec3b5f850a28 | 138 | RxDataCnt = 2; |
mrbhatter | 0:ec3b5f850a28 | 139 | my_nrf24l01p.setTransferSize( RxDataCnt ); |
mrbhatter | 0:ec3b5f850a28 | 140 | my_nrf24l01p.setReceiveMode(); |
mrbhatter | 0:ec3b5f850a28 | 141 | my_nrf24l01p.enable(); |
mrbhatter | 2:1cb1ec283154 | 142 | |
mrbhatter | 0:ec3b5f850a28 | 143 | while (1) { |
mrbhatter | 2:1cb1ec283154 | 144 | if ( my_nrf24l01p.readable() ) |
mrbhatter | 2:1cb1ec283154 | 145 | { |
mrbhatter | 0:ec3b5f850a28 | 146 | temp = my_nrf24l01p.read( NRF24L01P_PIPE_P0, count, RxDataCnt ); |
mrbhatter | 2:1cb1ec283154 | 147 | abt=count[0]; |
mrbhatter | 1:44646476456d | 148 | pc.printf( "%d\r\n",count[0]); |
mrbhatter | 2:1cb1ec283154 | 149 | wifi_send(); |
mrbhatter | 2:1cb1ec283154 | 150 | wait(24); |
mrbhatter | 2:1cb1ec283154 | 151 | |
mrbhatter | 2:1cb1ec283154 | 152 | } |
mrbhatter | 2:1cb1ec283154 | 153 | // |
mrbhatter | 2:1cb1ec283154 | 154 | // wait(20); |
mrbhatter | 2:1cb1ec283154 | 155 | |
mrbhatter | 0:ec3b5f850a28 | 156 | } |
mrbhatter | 0:ec3b5f850a28 | 157 | } |