debug

Dependencies:   mbed wave_player mbed-rtos 4DGL-uLCD-SE SDFileSystem

Committer:
mbrzozowski3
Date:
Thu Dec 13 19:25:01 2018 +0000
Revision:
2:4789078c7519
Parent:
1:02e619c9b205
debugging

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbrzozowski3 1:02e619c9b205 1 #include "mbed.h"
mbrzozowski3 1:02e619c9b205 2 #include <sstream>
mbrzozowski3 1:02e619c9b205 3 #include "rtos.h"
mbrzozowski3 1:02e619c9b205 4 Serial pc(USBTX, USBRX);
mbrzozowski3 1:02e619c9b205 5 Serial esp(p13, p14); // tx, rx
mbrzozowski3 2:4789078c7519 6 DigitalOut reset(p16);
mbrzozowski3 1:02e619c9b205 7 Timer t;
mbrzozowski3 1:02e619c9b205 8
mbrzozowski3 1:02e619c9b205 9 int count,ended,timeout;
mbrzozowski3 1:02e619c9b205 10 char buf[2024];
mbrzozowski3 1:02e619c9b205 11 char snd[1024];
mbrzozowski3 1:02e619c9b205 12
mbrzozowski3 1:02e619c9b205 13 char ssid[32] = "iPhone"; // enter WiFi router ssid inside the quotes
mbrzozowski3 1:02e619c9b205 14 char pwd [32] = "ece-4180"; // enter WiFi router password inside the quotes
mbrzozowski3 1:02e619c9b205 15
mbrzozowski3 1:02e619c9b205 16 void SendCMD(),getreply(),ESPconfig(),ESPsetbaudrate();
mbrzozowski3 1:02e619c9b205 17 void dev_recv()
mbrzozowski3 1:02e619c9b205 18 {
mbrzozowski3 1:02e619c9b205 19 while(esp.readable()) {
mbrzozowski3 1:02e619c9b205 20 pc.putc(esp.getc());
mbrzozowski3 1:02e619c9b205 21 }
mbrzozowski3 1:02e619c9b205 22 }
mbrzozowski3 1:02e619c9b205 23
mbrzozowski3 1:02e619c9b205 24 void pc_recv()
mbrzozowski3 1:02e619c9b205 25 {
mbrzozowski3 1:02e619c9b205 26 while(pc.readable()) {
mbrzozowski3 1:02e619c9b205 27 esp.putc(pc.getc());
mbrzozowski3 1:02e619c9b205 28 }
mbrzozowski3 1:02e619c9b205 29 }
mbrzozowski3 1:02e619c9b205 30
mbrzozowski3 1:02e619c9b205 31 // Sets new ESP8266 baurate, change the esp.baud(xxxxx) to match your new setting once this has been executed
mbrzozowski3 1:02e619c9b205 32 void ESPsetbaudrate()
mbrzozowski3 1:02e619c9b205 33 {
mbrzozowski3 1:02e619c9b205 34 strcpy(snd, "AT+CIOBAUD=115200\r\n"); // change the numeric value to the required baudrate
mbrzozowski3 1:02e619c9b205 35 SendCMD();
mbrzozowski3 1:02e619c9b205 36 }
mbrzozowski3 1:02e619c9b205 37
mbrzozowski3 1:02e619c9b205 38 // +++++++++++++++++++++++++++++++++ This is for ESP8266 config only, run this once to set up the ESP8266 +++++++++++++++
mbrzozowski3 1:02e619c9b205 39 void ESPconfig()
mbrzozowski3 1:02e619c9b205 40 {
mbrzozowski3 1:02e619c9b205 41 reset=0; //hardware reset for 8266
mbrzozowski3 1:02e619c9b205 42 pc.baud(9600); // set what you want here depending on your terminal program speed
mbrzozowski3 1:02e619c9b205 43 pc.printf("\f\n\r-------------ESP8266 Hardware Reset-------------\n\r");
mbrzozowski3 1:02e619c9b205 44 wait(5);
mbrzozowski3 1:02e619c9b205 45 reset=1;
mbrzozowski3 1:02e619c9b205 46 timeout=2;
mbrzozowski3 1:02e619c9b205 47 wait(5);
mbrzozowski3 1:02e619c9b205 48 pc.printf("\f---------- Starting ESP Config ----------\r\n\n");
mbrzozowski3 1:02e619c9b205 49 strcpy(snd,".\r\n.\r\n");
mbrzozowski3 1:02e619c9b205 50 SendCMD();
mbrzozowski3 1:02e619c9b205 51 wait(1);
mbrzozowski3 1:02e619c9b205 52 pc.printf("---------- Reset & get Firmware ----------\r\n");
mbrzozowski3 1:02e619c9b205 53 strcpy(snd,"node.restart()\r\n");
mbrzozowski3 1:02e619c9b205 54 SendCMD();
mbrzozowski3 1:02e619c9b205 55 timeout=5;
mbrzozowski3 1:02e619c9b205 56 // getreply();
mbrzozowski3 1:02e619c9b205 57 // pc.printf(buf);
mbrzozowski3 1:02e619c9b205 58
mbrzozowski3 1:02e619c9b205 59 wait(2);
mbrzozowski3 1:02e619c9b205 60
mbrzozowski3 1:02e619c9b205 61 // set CWMODE to 1=Station,2=AP,3=BOTH, default mode 1 (Station)
mbrzozowski3 1:02e619c9b205 62 pc.printf("\n---------- Setting Mode ----------\r\n");
mbrzozowski3 1:02e619c9b205 63 strcpy(snd, "wifi.setmode(wifi.STATION)\r\n");
mbrzozowski3 1:02e619c9b205 64 SendCMD();
mbrzozowski3 1:02e619c9b205 65 // timeout=4;
mbrzozowski3 1:02e619c9b205 66 // getreply();
mbrzozowski3 1:02e619c9b205 67 pc.printf(buf);
mbrzozowski3 1:02e619c9b205 68
mbrzozowski3 1:02e619c9b205 69 wait(2);
mbrzozowski3 1:02e619c9b205 70
mbrzozowski3 1:02e619c9b205 71 pc.printf("\n---------- Connecting to AP ----------\r\n");
mbrzozowski3 1:02e619c9b205 72 pc.printf("ssid = %s pwd = %s\r\n",ssid,pwd);
mbrzozowski3 1:02e619c9b205 73 strcpy(snd, "wifi.sta.config(\"");
mbrzozowski3 1:02e619c9b205 74 strcat(snd, ssid);
mbrzozowski3 1:02e619c9b205 75 strcat(snd, "\",\"");
mbrzozowski3 1:02e619c9b205 76 strcat(snd, pwd);
mbrzozowski3 1:02e619c9b205 77 strcat(snd, "\")\r\n");
mbrzozowski3 1:02e619c9b205 78 SendCMD();
mbrzozowski3 1:02e619c9b205 79 timeout=10;
mbrzozowski3 1:02e619c9b205 80 // getreply();
mbrzozowski3 1:02e619c9b205 81 // pc.printf(buf);
mbrzozowski3 1:02e619c9b205 82 //
mbrzozowski3 1:02e619c9b205 83 wait(5);
mbrzozowski3 1:02e619c9b205 84
mbrzozowski3 1:02e619c9b205 85 pc.printf("\n---------- Get Connection Status ----------\r\n");
mbrzozowski3 1:02e619c9b205 86 strcpy(snd, "print(wifi.sta.status())\r\n");
mbrzozowski3 1:02e619c9b205 87 SendCMD();
mbrzozowski3 1:02e619c9b205 88 timeout=5;
mbrzozowski3 1:02e619c9b205 89 getreply();
mbrzozowski3 1:02e619c9b205 90 pc.printf(buf);
mbrzozowski3 1:02e619c9b205 91 wait(1);
mbrzozowski3 1:02e619c9b205 92 }
mbrzozowski3 1:02e619c9b205 93
mbrzozowski3 1:02e619c9b205 94 void sendData(int temp, int heartRate){
mbrzozowski3 1:02e619c9b205 95
mbrzozowski3 1:02e619c9b205 96 //// pc.printf("\n---------- Sending Data ----------\r\n");
mbrzozowski3 1:02e619c9b205 97 //
mbrzozowski3 1:02e619c9b205 98 std::ostringstream getRequest;
mbrzozowski3 1:02e619c9b205 99 getRequest << "conn:send(\"GET /?temp=" << temp << "&heartRate=" << heartRate << " HTTP/1.1\\r\\nHost: 18.218.170.174\\r\\nConnection: keep-alive\\r\\nAccept: */*\\r\\n\\r\\n\")\r\n";
mbrzozowski3 1:02e619c9b205 100
mbrzozowski3 1:02e619c9b205 101 strcpy(snd,"conn=net.createConnection(net.TCP, 0)\r\n");
mbrzozowski3 1:02e619c9b205 102 SendCMD();
mbrzozowski3 1:02e619c9b205 103 // getreply();
mbrzozowski3 1:02e619c9b205 104 wait(1);
mbrzozowski3 1:02e619c9b205 105 //
mbrzozowski3 1:02e619c9b205 106 strcpy(snd,"conn:on(\"receive\", function(sck, c) print(c) end )\r\n");
mbrzozowski3 1:02e619c9b205 107 SendCMD();
mbrzozowski3 1:02e619c9b205 108 // getreply();
mbrzozowski3 1:02e619c9b205 109 wait(1);
mbrzozowski3 1:02e619c9b205 110
mbrzozowski3 1:02e619c9b205 111 strcpy(snd,"conn:connect(8080,\"18.218.170.174\")\r\n");
mbrzozowski3 1:02e619c9b205 112 SendCMD();
mbrzozowski3 1:02e619c9b205 113 // getreply();
mbrzozowski3 1:02e619c9b205 114 wait(1);
mbrzozowski3 1:02e619c9b205 115
mbrzozowski3 1:02e619c9b205 116 strcpy(snd, getRequest.str().c_str());
mbrzozowski3 1:02e619c9b205 117 SendCMD();
mbrzozowski3 1:02e619c9b205 118 // timeout=1;
mbrzozowski3 1:02e619c9b205 119 // getreply();
mbrzozowski3 1:02e619c9b205 120 ////
mbrzozowski3 1:02e619c9b205 121 //// pc.printf(buf);
mbrzozowski3 1:02e619c9b205 122 //// pc.printf("\r\nDONE");
mbrzozowski3 1:02e619c9b205 123 }
mbrzozowski3 1:02e619c9b205 124
mbrzozowski3 1:02e619c9b205 125 std::string getWeather(){
mbrzozowski3 1:02e619c9b205 126
mbrzozowski3 1:02e619c9b205 127 pc.printf("\n---------- Getting Weather ----------\r\n");
mbrzozowski3 1:02e619c9b205 128
mbrzozowski3 1:02e619c9b205 129 std::ostringstream getRequest;
mbrzozowski3 1:02e619c9b205 130 getRequest << "conn:send(\"GET /data/2.5/weather?q=Atlanta&APPID=b874d9efc9f1f67309cd8b6ed596ef1a HTTP/1.1\\r\\nHost: api.openweathermap.org\\r\\nConnection: close\\r\\nAccept: */*\\r\\n\\r\\n\")\r\n";
mbrzozowski3 1:02e619c9b205 131
mbrzozowski3 1:02e619c9b205 132 strcpy(snd,"conn=net.createConnection(net.TCP, 0)\r\n");
mbrzozowski3 1:02e619c9b205 133 SendCMD();
mbrzozowski3 1:02e619c9b205 134 getreply();
mbrzozowski3 1:02e619c9b205 135 wait(1);
mbrzozowski3 1:02e619c9b205 136
mbrzozowski3 1:02e619c9b205 137 strcpy(snd,"conn:on(\"receive\", function(sck, c) print(c) end )\r\n");
mbrzozowski3 1:02e619c9b205 138 SendCMD();
mbrzozowski3 1:02e619c9b205 139 getreply();
mbrzozowski3 1:02e619c9b205 140 wait(1);
mbrzozowski3 1:02e619c9b205 141
mbrzozowski3 1:02e619c9b205 142 strcpy(snd,"conn:connect(80,\"api.openweathermap.org\")\r\n");
mbrzozowski3 1:02e619c9b205 143 SendCMD();
mbrzozowski3 1:02e619c9b205 144 getreply();
mbrzozowski3 1:02e619c9b205 145 wait(1);
mbrzozowski3 1:02e619c9b205 146
mbrzozowski3 1:02e619c9b205 147 strcpy(snd, getRequest.str().c_str());
mbrzozowski3 1:02e619c9b205 148 SendCMD();
mbrzozowski3 1:02e619c9b205 149 timeout=1;
mbrzozowski3 1:02e619c9b205 150 getreply();
mbrzozowski3 1:02e619c9b205 151 pc.printf("Weather Response:\n");
mbrzozowski3 1:02e619c9b205 152 std::string reply(buf);
mbrzozowski3 1:02e619c9b205 153 pc.printf(buf);
mbrzozowski3 1:02e619c9b205 154 pc.printf("\r\nDONE");
mbrzozowski3 1:02e619c9b205 155 return reply;
mbrzozowski3 1:02e619c9b205 156 }
mbrzozowski3 1:02e619c9b205 157
mbrzozowski3 1:02e619c9b205 158 void SendCMD()
mbrzozowski3 1:02e619c9b205 159 {
mbrzozowski3 1:02e619c9b205 160 esp.printf("%s", snd);
mbrzozowski3 1:02e619c9b205 161 }
mbrzozowski3 1:02e619c9b205 162
mbrzozowski3 1:02e619c9b205 163 void getreply()
mbrzozowski3 1:02e619c9b205 164 {
mbrzozowski3 1:02e619c9b205 165 memset(buf, '\0', sizeof(buf));
mbrzozowski3 1:02e619c9b205 166 t.start();
mbrzozowski3 1:02e619c9b205 167 ended=0;
mbrzozowski3 1:02e619c9b205 168 count=0;
mbrzozowski3 1:02e619c9b205 169 while(!ended) {
mbrzozowski3 1:02e619c9b205 170 if(esp.readable()) {
mbrzozowski3 1:02e619c9b205 171 buf[count] = esp.getc();
mbrzozowski3 1:02e619c9b205 172 count++;
mbrzozowski3 1:02e619c9b205 173 }
mbrzozowski3 1:02e619c9b205 174 if(t.read() > timeout) {
mbrzozowski3 1:02e619c9b205 175 ended = 1;
mbrzozowski3 1:02e619c9b205 176 t.stop();
mbrzozowski3 1:02e619c9b205 177 t.reset();
mbrzozowski3 1:02e619c9b205 178 }
mbrzozowski3 1:02e619c9b205 179 }
mbrzozowski3 1:02e619c9b205 180 }
mbrzozowski3 1:02e619c9b205 181
mbrzozowski3 1:02e619c9b205 182