wui0iuytdsaertyuio

Dependencies:   mbed

Fork of ESP8266-WEB-Mbed-LPC1768-Controller by jim hamblen

Committer:
biswajit007
Date:
Thu Jun 14 10:24:07 2018 +0000
Revision:
5:3d29774cc3e2
Parent:
4:40dd020463ea
wert8

Who changed what in which revision?

UserRevisionLine numberNew contents of line
star297 0:e2a155f50119 1 // ESP8266 Static page WEB server to control Mbed
star297 0:e2a155f50119 2
star297 0:e2a155f50119 3 #include "mbed.h"
4180_1 4:40dd020463ea 4 //#include "DS18B20.h"
star297 0:e2a155f50119 5
star297 0:e2a155f50119 6 Serial pc(USBTX, USBRX);
biswajit007 5:3d29774cc3e2 7 Serial esp(PA_13, PA_14); // tx, rx
star297 0:e2a155f50119 8
4180_1 4:40dd020463ea 9 //DS18B20 thermom(A0, DS18B20::RES_12_BIT);
star297 2:d4c6bc0f2dc4 10
star297 0:e2a155f50119 11 // Standard Mbed LED definitions
4180_1 4:40dd020463ea 12 DigitalOut led1(LED1); // (PTB18)
4180_1 4:40dd020463ea 13 DigitalOut led2(LED2); // (PTB19)
4180_1 4:40dd020463ea 14 DigitalOut led3(LED3); // (PTD1)
star297 0:e2a155f50119 15
star297 0:e2a155f50119 16 // Digital Out and In pins, can be configured to any suitable pin depending on Platform
biswajit007 5:3d29774cc3e2 17 DigitalOut Out1(D13);
star297 0:e2a155f50119 18
star297 0:e2a155f50119 19 Timer t1;
star297 1:71ed1afbf344 20 Timer t2;
star297 1:71ed1afbf344 21
star297 1:71ed1afbf344 22 struct tm t;
star297 0:e2a155f50119 23
star297 3:f7febfa77784 24 int bufflen, DataRX, count, getcount, replycount, servreq, timeout;
star297 2:d4c6bc0f2dc4 25 int bufl, ipdLen, linkID, weberror, webcounter;
4180_1 4:40dd020463ea 26 float temperature, AdcIn, Ht;
star297 0:e2a155f50119 27 float R1=100000, R2=10000; // resistor values to give a 10:1 reduction of measured AnalogIn voltage
star297 0:e2a155f50119 28 char Vcc[10];
star297 0:e2a155f50119 29 char Temp[10];
star297 0:e2a155f50119 30 char temp[10];
star297 2:d4c6bc0f2dc4 31 char webcount[8];
star297 3:f7febfa77784 32 char lasthit[30];
star297 0:e2a155f50119 33 char timebuf[30];
star297 0:e2a155f50119 34 char type[16];
star297 0:e2a155f50119 35 char type1[16];
star297 0:e2a155f50119 36 char channel[2];
star297 3:f7febfa77784 37 char cmdbuff[32];
4180_1 4:40dd020463ea 38 char replybuff[1024];
star297 0:e2a155f50119 39 char webdata[1024]; // This may need to be bigger depending on WEB browser used
star297 3:f7febfa77784 40 char webbuff[4096]; // Currently using 1986 characters, Increase this if more web page data added
biswajit007 5:3d29774cc3e2 41 char ssid[32] = "cdi_WIFI"; // enter WiFi router ssid inside the quotes
biswajit007 5:3d29774cc3e2 42 char pwd [32] = "cdilab@7"; // enter WiFi router password inside the quotes
star297 0:e2a155f50119 43 void SendCMD(),getreply(),ReadWebData(),startserver(),sendpage(),SendWEB(),sendcheck();
biswajit007 5:3d29774cc3e2 44
star297 0:e2a155f50119 45
star297 1:71ed1afbf344 46 // manual set RTC values
4180_1 4:40dd020463ea 47 int minute =00; // 0-59
4180_1 4:40dd020463ea 48 int hour =12; // 2-23
4180_1 4:40dd020463ea 49 int dayofmonth =26; // 1-31
4180_1 4:40dd020463ea 50 int month =8; // 1-12
star297 1:71ed1afbf344 51 int year =15; // last 2 digits
star297 2:d4c6bc0f2dc4 52
4180_1 4:40dd020463ea 53 int port =80; // set server port
4180_1 4:40dd020463ea 54 int SERVtimeout =5; // set server timeout in seconds in case link breaks.
4180_1 4:40dd020463ea 55
star297 0:e2a155f50119 56 // Serial Interrupt read ESP data
4180_1 4:40dd020463ea 57 void callback()
4180_1 4:40dd020463ea 58 {
4180_1 4:40dd020463ea 59 led3=1;
4180_1 4:40dd020463ea 60 while (esp.readable()) {
4180_1 4:40dd020463ea 61 webbuff[count] = esp.getc();
4180_1 4:40dd020463ea 62 count++;
4180_1 4:40dd020463ea 63 }
4180_1 4:40dd020463ea 64 if(strlen(webbuff)>bufflen) {
4180_1 4:40dd020463ea 65 DataRX=1;
4180_1 4:40dd020463ea 66 led3=0;
4180_1 4:40dd020463ea 67 }
star297 0:e2a155f50119 68 }
star297 0:e2a155f50119 69
4180_1 4:40dd020463ea 70 int main()
4180_1 4:40dd020463ea 71 {
biswajit007 5:3d29774cc3e2 72 // reset=0;
biswajit007 5:3d29774cc3e2 73 pc.baud(9600);
4180_1 4:40dd020463ea 74
4180_1 4:40dd020463ea 75 pc.printf("\f\n\r------------ ESP8266 Hardware Reset --------------\n\r");
4180_1 4:40dd020463ea 76 wait(0.5);
biswajit007 5:3d29774cc3e2 77 //reset=1;
4180_1 4:40dd020463ea 78 led1=1,led2=0,led3=0;
4180_1 4:40dd020463ea 79 timeout=6000;
4180_1 4:40dd020463ea 80 getcount=500;
4180_1 4:40dd020463ea 81 getreply();
biswajit007 5:3d29774cc3e2 82 esp.baud(9600); // ESP8266 baudrate. Maximum on KLxx' is 115200, 230400 works on K20 and K22F
biswajit007 5:3d29774cc3e2 83
star297 0:e2a155f50119 84 startserver();
4180_1 4:40dd020463ea 85
4180_1 4:40dd020463ea 86 while(1) {
4180_1 4:40dd020463ea 87 if(DataRX==1) {
star297 0:e2a155f50119 88 ReadWebData();
biswajit007 5:3d29774cc3e2 89
4180_1 4:40dd020463ea 90 if (servreq == 1 && weberror == 0) {
4180_1 4:40dd020463ea 91 sendpage();
4180_1 4:40dd020463ea 92 }
4180_1 4:40dd020463ea 93 esp.attach(&callback);
4180_1 4:40dd020463ea 94 pc.printf(" IPD Data:\r\n\n Link ID = %d,\r\n IPD Header Length = %d \r\n IPD Type = %s\r\n", linkID, ipdLen, type);
4180_1 4:40dd020463ea 95 pc.printf("\n\n HTTP Packet: \n\n%s\n", webdata);
star297 0:e2a155f50119 96 pc.printf(" Web Characters sent : %d\n\n", bufl);
star297 0:e2a155f50119 97 pc.printf(" -------------------------------------\n\n");
star297 2:d4c6bc0f2dc4 98 strcpy(lasthit, timebuf);
4180_1 4:40dd020463ea 99 servreq=0;
4180_1 4:40dd020463ea 100 }
star297 0:e2a155f50119 101 }
4180_1 4:40dd020463ea 102 }
4180_1 4:40dd020463ea 103 // Static WEB page
star297 0:e2a155f50119 104 void sendpage()
4180_1 4:40dd020463ea 105 {
biswajit007 5:3d29774cc3e2 106
4180_1 4:40dd020463ea 107
4180_1 4:40dd020463ea 108 // WEB page data
star297 3:f7febfa77784 109 strcpy(webbuff, "<!DOCTYPE html>");
4180_1 4:40dd020463ea 110 strcat(webbuff, "<html><head><title>ESP8266 Mbed LPC1768</title></head>");
4180_1 4:40dd020463ea 111 strcat(webbuff, "<body>");
4180_1 4:40dd020463ea 112 strcat(webbuff, "<div style=\"text-align:center; background-color:#F4F4F4; color:#00AEDB;\"><h1>ESP8266 Mbed IoT Web Controller</h1>");
star297 3:f7febfa77784 113 strcat(webbuff, "Hit Count - ");
star297 3:f7febfa77784 114 strcat(webbuff, webcount);
star297 3:f7febfa77784 115 strcat(webbuff, "<br>Last Hit - ");
4180_1 4:40dd020463ea 116 strcat(webbuff, lasthit);
star297 3:f7febfa77784 117 strcat(webbuff, "</div><br /><hr>");
4180_1 4:40dd020463ea 118 strcat(webbuff, "<h3>Mbed RTC Time -&nbsp&nbsp");
star297 3:f7febfa77784 119 strcat(webbuff, timebuf);
star297 3:f7febfa77784 120 strcat(webbuff, "</h3>\r\n");
4180_1 4:40dd020463ea 121 strcat(webbuff, "<p><form method=\"POST\"><strong> Analog 1:&nbsp&nbsp<input type=\"text\" size=6 value=\"");
star297 3:f7febfa77784 122 strcat(webbuff, Temp);
4180_1 4:40dd020463ea 123 strcat(webbuff, "\"> </sup>V <form method=\"POST\"> <strong> &nbsp&nbspAnalog 2:&nbsp&nbsp<input type=\"text\" size=4 value=\"");
star297 3:f7febfa77784 124 strcat(webbuff, Vcc);
4180_1 4:40dd020463ea 125 strcat(webbuff, "\"> </sup>V");
4180_1 4:40dd020463ea 126 if(led1==0) {
4180_1 4:40dd020463ea 127 strcat(webbuff, "<p><input type=\"radio\" name=\"led1\" value=\"0\" checked> LED 1 off");
4180_1 4:40dd020463ea 128 strcat(webbuff, "<br><input type=\"radio\" name=\"led1\" value=\"1\" > LED 1 on");
4180_1 4:40dd020463ea 129 } else {
4180_1 4:40dd020463ea 130 strcat(webbuff, "<p><input type=\"radio\" name=\"led1\" value=\"0\" > LED 1 off");
4180_1 4:40dd020463ea 131 strcat(webbuff, "<br><input type=\"radio\" name=\"led1\" value=\"1\" checked> LED 1 on");
4180_1 4:40dd020463ea 132 }
4180_1 4:40dd020463ea 133 if(Out1==0) {
4180_1 4:40dd020463ea 134 strcat(webbuff, "<p><input type=\"radio\" name=\"Out1\" value=\"0\" checked> Digital Out 1 off");
4180_1 4:40dd020463ea 135 strcat(webbuff, "<br><input type=\"radio\" name=\"Out1\" value=\"1\" > Digital Out 1 on");
4180_1 4:40dd020463ea 136 } else {
4180_1 4:40dd020463ea 137 strcat(webbuff, "<p><input type=\"radio\" name=\"Out1\" value=\"0\" > Digital Out 1 off");
4180_1 4:40dd020463ea 138 strcat(webbuff, "<br><input type=\"radio\" name=\"Out1\" value=\"1\" checked> Digital Out 1 on");
4180_1 4:40dd020463ea 139 }
biswajit007 5:3d29774cc3e2 140
4180_1 4:40dd020463ea 141 strcat(webbuff, "</strong><p><input type=\"submit\" value=\"send-refresh\" style=\"background: #3498db;");
4180_1 4:40dd020463ea 142 strcat(webbuff, "background-image:-webkit-linear-gradient(top, #3498db, #2980b9);");
star297 3:f7febfa77784 143 strcat(webbuff, "background-image:linear-gradient(to bottom, #3498db, #2980b9);");
star297 3:f7febfa77784 144 strcat(webbuff, "-webkit-border-radius:12;border-radius: 12px;font-family: Arial;color:#ffffff;font-size:20px;padding:");
4180_1 4:40dd020463ea 145 strcat(webbuff, "10px 20px 10px 20px; border:solid #103c57 3px;text-decoration: none;");
star297 3:f7febfa77784 146 strcat(webbuff, "background: #3cb0fd;");
4180_1 4:40dd020463ea 147 strcat(webbuff, "background-image:-webkit-linear-gradient(top,#3cb0fd,#1a5f8a);");
star297 3:f7febfa77784 148 strcat(webbuff, "background-image:linear-gradient(to bottom,#3cb0fd,#1a5f8a);");
star297 3:f7febfa77784 149 strcat(webbuff, "text-decoration:none;\"></form></span>");
star297 3:f7febfa77784 150 strcat(webbuff, "<p/><h2>How to use:</h2><ul>");
star297 3:f7febfa77784 151 strcat(webbuff, "<li>Select the Radio buttons to control the digital out pins.</li>");
4180_1 4:40dd020463ea 152 strcat(webbuff, "<li>Click 'Send-Refresh' to send.</li>");
4180_1 4:40dd020463ea 153 strcat(webbuff, "<li>Use the 'Send-Refresh' button to refresh the data.</li>");
star297 3:f7febfa77784 154 strcat(webbuff, "</ul>");
4180_1 4:40dd020463ea 155 strcat(webbuff, "</body></html>");
4180_1 4:40dd020463ea 156 // end of WEB page data
4180_1 4:40dd020463ea 157 bufl = strlen(webbuff); // get total page buffer length
star297 3:f7febfa77784 158 sprintf(cmdbuff,"AT+CIPSEND=%d,%d\r\n", linkID, bufl); // send IPD link channel and buffer character length.
4180_1 4:40dd020463ea 159 timeout=200;
4180_1 4:40dd020463ea 160 getcount=7;
star297 3:f7febfa77784 161 SendCMD();
4180_1 4:40dd020463ea 162 getreply();
star297 0:e2a155f50119 163 SendWEB(); // send web page
star297 3:f7febfa77784 164 memset(webbuff, '\0', sizeof(webbuff));
4180_1 4:40dd020463ea 165 sendcheck();
star297 0:e2a155f50119 166 }
star297 0:e2a155f50119 167
star297 3:f7febfa77784 168 // wait for ESP "SEND OK" reply, then close IP to load web page
star297 0:e2a155f50119 169 void sendcheck()
star297 0:e2a155f50119 170 {
4180_1 4:40dd020463ea 171 weberror=1;
4180_1 4:40dd020463ea 172 timeout=500;
4180_1 4:40dd020463ea 173 getcount=24;
4180_1 4:40dd020463ea 174 t2.reset();
4180_1 4:40dd020463ea 175 t2.start();
4180_1 4:40dd020463ea 176 while(weberror==1 && t2.read() <5) {
star297 0:e2a155f50119 177 getreply();
4180_1 4:40dd020463ea 178 if (strstr(replybuff, "SEND OK") != NULL) {
4180_1 4:40dd020463ea 179 weberror=0; // wait for valid SEND OK
star297 0:e2a155f50119 180 }
4180_1 4:40dd020463ea 181 }
4180_1 4:40dd020463ea 182 if(weberror==1) { // restart connection
4180_1 4:40dd020463ea 183 strcpy(cmdbuff, "AT+CIPMUX=1\r\n");
4180_1 4:40dd020463ea 184 timeout=500;
4180_1 4:40dd020463ea 185 getcount=10;
4180_1 4:40dd020463ea 186 SendCMD();
4180_1 4:40dd020463ea 187 getreply();
4180_1 4:40dd020463ea 188 pc.printf(replybuff);
star297 3:f7febfa77784 189 sprintf(cmdbuff,"AT+CIPSERVER=1,%d\r\n", port);
4180_1 4:40dd020463ea 190 timeout=500;
4180_1 4:40dd020463ea 191 getcount=10;
4180_1 4:40dd020463ea 192 SendCMD();
4180_1 4:40dd020463ea 193 getreply();
4180_1 4:40dd020463ea 194 pc.printf(replybuff);
4180_1 4:40dd020463ea 195 } else {
4180_1 4:40dd020463ea 196 sprintf(cmdbuff, "AT+CIPCLOSE=%s\r\n",channel); // close current connection
4180_1 4:40dd020463ea 197 SendCMD();
4180_1 4:40dd020463ea 198 getreply();
4180_1 4:40dd020463ea 199 pc.printf(replybuff);
4180_1 4:40dd020463ea 200 }
4180_1 4:40dd020463ea 201 t2.reset();
4180_1 4:40dd020463ea 202 }
star297 0:e2a155f50119 203
4180_1 4:40dd020463ea 204 // Reads and processes GET and POST web data
star297 0:e2a155f50119 205 void ReadWebData()
4180_1 4:40dd020463ea 206 {
4180_1 4:40dd020463ea 207 wait_ms(200);
star297 3:f7febfa77784 208 esp.attach(NULL);
4180_1 4:40dd020463ea 209 count=0;
4180_1 4:40dd020463ea 210 DataRX=0;
4180_1 4:40dd020463ea 211 weberror=0;
4180_1 4:40dd020463ea 212 memset(webdata, '\0', sizeof(webdata));
star297 3:f7febfa77784 213 int x = strcspn (webbuff,"+");
4180_1 4:40dd020463ea 214 if(x) {
4180_1 4:40dd020463ea 215 strcpy(webdata, webbuff + x);
4180_1 4:40dd020463ea 216 weberror=0;
4180_1 4:40dd020463ea 217 int numMatched = sscanf(webdata,"+IPD,%d,%d:%s", &linkID, &ipdLen, type);
4180_1 4:40dd020463ea 218 if( strstr(webdata, "led1=1") != NULL ) {
4180_1 4:40dd020463ea 219 led1=1;
4180_1 4:40dd020463ea 220 }
4180_1 4:40dd020463ea 221 if( strstr(webdata, "led1=0") != NULL ) {
4180_1 4:40dd020463ea 222 led1=0;
4180_1 4:40dd020463ea 223 }
4180_1 4:40dd020463ea 224 if( strstr(webdata, "Out1=1") != NULL ) {
4180_1 4:40dd020463ea 225 Out1=1;
4180_1 4:40dd020463ea 226 }
4180_1 4:40dd020463ea 227 if( strstr(webdata, "Out1=0") != NULL ) {
4180_1 4:40dd020463ea 228 Out1=0;
4180_1 4:40dd020463ea 229 }
biswajit007 5:3d29774cc3e2 230
4180_1 4:40dd020463ea 231 sprintf(channel, "%d",linkID);
4180_1 4:40dd020463ea 232 if (strstr(webdata, "GET") != NULL) {
4180_1 4:40dd020463ea 233 servreq=1;
4180_1 4:40dd020463ea 234 }
4180_1 4:40dd020463ea 235 if (strstr(webdata, "POST") != NULL) {
4180_1 4:40dd020463ea 236 servreq=1;
4180_1 4:40dd020463ea 237 }
star297 2:d4c6bc0f2dc4 238 webcounter++;
star297 2:d4c6bc0f2dc4 239 sprintf(webcount, "%d",webcounter);
4180_1 4:40dd020463ea 240 } else {
4180_1 4:40dd020463ea 241 memset(webbuff, '\0', sizeof(webbuff));
4180_1 4:40dd020463ea 242 esp.attach(&callback);
4180_1 4:40dd020463ea 243 weberror=1;
4180_1 4:40dd020463ea 244 }
star297 0:e2a155f50119 245 }
star297 0:e2a155f50119 246 // Starts and restarts webserver if errors detected.
star297 0:e2a155f50119 247 void startserver()
star297 0:e2a155f50119 248 {
biswajit007 5:3d29774cc3e2 249
star297 1:71ed1afbf344 250 pc.printf("\n\n RTC time %s\r\n\n",timebuf);
4180_1 4:40dd020463ea 251 pc.printf("++++++++++ Resetting ESP ++++++++++\r\n");
star297 3:f7febfa77784 252 strcpy(cmdbuff,"AT+RST\r\n");
4180_1 4:40dd020463ea 253 timeout=8000;
4180_1 4:40dd020463ea 254 getcount=1000;
star297 0:e2a155f50119 255 SendCMD();
star297 1:71ed1afbf344 256 getreply();
star297 3:f7febfa77784 257 pc.printf(replybuff);
star297 3:f7febfa77784 258 pc.printf("%d",count);
star297 3:f7febfa77784 259 if (strstr(replybuff, "OK") != NULL) {
star297 1:71ed1afbf344 260 pc.printf("\n++++++++++ Starting Server ++++++++++\r\n");
4180_1 4:40dd020463ea 261 strcpy(cmdbuff, "AT+CIPMUX=1\r\n"); // set multiple connections.
4180_1 4:40dd020463ea 262 timeout=500;
4180_1 4:40dd020463ea 263 getcount=20;
star297 1:71ed1afbf344 264 SendCMD();
star297 2:d4c6bc0f2dc4 265 getreply();
4180_1 4:40dd020463ea 266 pc.printf(replybuff);
biswajit007 5:3d29774cc3e2 267 pc.printf("\n---------- Setting Mode ----------\r\n");
biswajit007 5:3d29774cc3e2 268 strcpy(cmdbuff, "AT+CWMODE=2\r\n");
biswajit007 5:3d29774cc3e2 269 SendCMD();
biswajit007 5:3d29774cc3e2 270 timeout=4;
biswajit007 5:3d29774cc3e2 271 getreply();
biswajit007 5:3d29774cc3e2 272 pc.printf(replybuff);
biswajit007 5:3d29774cc3e2 273
biswajit007 5:3d29774cc3e2 274 wait(2);
biswajit007 5:3d29774cc3e2 275 pc.printf("\n---------- Setting Connection Mode ----------\r\n");
biswajit007 5:3d29774cc3e2 276 strcpy(cmdbuff, "AT+CWSAP=\"");
biswajit007 5:3d29774cc3e2 277 strcat(cmdbuff, ssid);
biswajit007 5:3d29774cc3e2 278 strcat(cmdbuff, "\",\"");
biswajit007 5:3d29774cc3e2 279 strcat(cmdbuff, pwd);
biswajit007 5:3d29774cc3e2 280 strcat(cmdbuff, "\",5,");
biswajit007 5:3d29774cc3e2 281 strcat(cmdbuff, "3\r\n");
biswajit007 5:3d29774cc3e2 282 // strcat(snd, "\"");
biswajit007 5:3d29774cc3e2 283 SendCMD();
biswajit007 5:3d29774cc3e2 284 timeout=10;
biswajit007 5:3d29774cc3e2 285 getreply();
biswajit007 5:3d29774cc3e2 286 pc.printf(replybuff);
biswajit007 5:3d29774cc3e2 287
biswajit007 5:3d29774cc3e2 288 wait(2);
star297 3:f7febfa77784 289 sprintf(cmdbuff,"AT+CIPSERVER=1,%d\r\n", port);
4180_1 4:40dd020463ea 290 timeout=500;
4180_1 4:40dd020463ea 291 getcount=20;
star297 1:71ed1afbf344 292 SendCMD();
star297 3:f7febfa77784 293 getreply();
4180_1 4:40dd020463ea 294 pc.printf(replybuff);
4180_1 4:40dd020463ea 295 wait(1);
star297 3:f7febfa77784 296 sprintf(cmdbuff,"AT+CIPSTO=%d\r\n",SERVtimeout);
4180_1 4:40dd020463ea 297 timeout=500;
4180_1 4:40dd020463ea 298 getcount=50;
star297 3:f7febfa77784 299 SendCMD();
star297 2:d4c6bc0f2dc4 300 getreply();
4180_1 4:40dd020463ea 301 pc.printf(replybuff);
4180_1 4:40dd020463ea 302 wait(5);
4180_1 4:40dd020463ea 303 pc.printf("\n Getting Server IP \r\n");
star297 3:f7febfa77784 304 strcpy(cmdbuff, "AT+CIFSR\r\n");
4180_1 4:40dd020463ea 305 timeout=2500;
4180_1 4:40dd020463ea 306 getcount=200;
4180_1 4:40dd020463ea 307 while(weberror==0) {
4180_1 4:40dd020463ea 308 SendCMD();
4180_1 4:40dd020463ea 309 getreply();
4180_1 4:40dd020463ea 310 if (strstr(replybuff, "0.0.0.0") == NULL) {
4180_1 4:40dd020463ea 311 weberror=1; // wait for valid IP
star297 1:71ed1afbf344 312 }
4180_1 4:40dd020463ea 313 }
4180_1 4:40dd020463ea 314 pc.printf("\n Enter WEB address (IP) found below in your browser \r\n\n");
4180_1 4:40dd020463ea 315 pc.printf("\n The MAC address is also shown below,if it is needed \r\n\n");
4180_1 4:40dd020463ea 316 replybuff[strlen(replybuff)-1] = '\0';
4180_1 4:40dd020463ea 317 //char* IP = replybuff + 5;
4180_1 4:40dd020463ea 318 sprintf(webdata,"%s", replybuff);
4180_1 4:40dd020463ea 319 pc.printf(webdata);
4180_1 4:40dd020463ea 320 led2=1;
4180_1 4:40dd020463ea 321 bufflen=200;
4180_1 4:40dd020463ea 322 count=0;
star297 1:71ed1afbf344 323 pc.printf("\n\n++++++++++ Ready ++++++++++\r\n\n");
star297 1:71ed1afbf344 324 esp.attach(&callback);
4180_1 4:40dd020463ea 325 } else {
4180_1 4:40dd020463ea 326 pc.printf("\n++++++++++ ESP8266 error, check power/connections ++++++++++\r\n");
4180_1 4:40dd020463ea 327 while(1) {}
4180_1 4:40dd020463ea 328 }
4180_1 4:40dd020463ea 329 t2.reset();
4180_1 4:40dd020463ea 330 t2.start();
biswajit007 5:3d29774cc3e2 331
4180_1 4:40dd020463ea 332 }
star297 0:e2a155f50119 333 // ESP Command data send
star297 0:e2a155f50119 334 void SendCMD()
star297 0:e2a155f50119 335 {
4180_1 4:40dd020463ea 336 esp.printf("%s", cmdbuff);
4180_1 4:40dd020463ea 337 }
star297 0:e2a155f50119 338 // Large WEB buffer data send
star297 0:e2a155f50119 339 void SendWEB()
4180_1 4:40dd020463ea 340 {
star297 0:e2a155f50119 341 int i=0;
star297 0:e2a155f50119 342 if(esp.writeable()) {
4180_1 4:40dd020463ea 343 while(webbuff[i]!='\0') {
4180_1 4:40dd020463ea 344 esp.putc(webbuff[i]);
4180_1 4:40dd020463ea 345 i++;
4180_1 4:40dd020463ea 346 }
4180_1 4:40dd020463ea 347 }
4180_1 4:40dd020463ea 348 }
4180_1 4:40dd020463ea 349 // Get Command and ESP status replies
star297 0:e2a155f50119 350 void getreply()
4180_1 4:40dd020463ea 351 {
star297 3:f7febfa77784 352 memset(replybuff, '\0', sizeof(replybuff));
4180_1 4:40dd020463ea 353 t1.reset();
4180_1 4:40dd020463ea 354 t1.start();
4180_1 4:40dd020463ea 355 replycount=0;
star297 3:f7febfa77784 356 while(t1.read_ms()< timeout && replycount < getcount) {
star297 0:e2a155f50119 357 if(esp.readable()) {
4180_1 4:40dd020463ea 358 replybuff[replycount] = esp.getc();
4180_1 4:40dd020463ea 359 replycount++;
star297 2:d4c6bc0f2dc4 360 }
4180_1 4:40dd020463ea 361 }
4180_1 4:40dd020463ea 362 t1.stop();
star297 0:e2a155f50119 363 }
star297 0:e2a155f50119 364 // Analog in example
star297 0:e2a155f50119 365
biswajit007 5:3d29774cc3e2 366
star297 2:d4c6bc0f2dc4 367
star297 1:71ed1afbf344 368 void setRTC()
star297 1:71ed1afbf344 369 {
4180_1 4:40dd020463ea 370 t.tm_sec = (0); // 0-59
4180_1 4:40dd020463ea 371 t.tm_min = (minute); // 0-59
4180_1 4:40dd020463ea 372 t.tm_hour = (hour); // 0-23
4180_1 4:40dd020463ea 373 t.tm_mday = (dayofmonth); // 1-31
4180_1 4:40dd020463ea 374 t.tm_mon = (month-1); // 0-11 "0" = Jan, -1 added for Mbed RCT clock format
4180_1 4:40dd020463ea 375 t.tm_year = ((year)+100); // year since 1900, current DCF year + 100 + 1900 = correct year
4180_1 4:40dd020463ea 376 set_time(mktime(&t)); // set RTC clock
4180_1 4:40dd020463ea 377 }