Library für ESP01 Webserver STM32F103RB Nucleo

Dependents:   Nucleo_dht11_Webserver WebServerGSOEWorkshopSlider WebServerGSOEWorkshopDynamisch WebServerGSOEWorkshopStatisch ... more

Committer:
jack1930
Date:
Thu Jun 10 07:32:53 2021 +0000
Revision:
14:d17cfd8131b1
Parent:
13:ed5c59ed4ae5
Child:
15:e710f0431920
einstellungen.h

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jack1930 13:ed5c59ed4ae5 1 #include "ESP8266Webserver.h"
jack1930 13:ed5c59ed4ae5 2
jack1930 14:d17cfd8131b1 3 ESP8266Webserver::ESP8266Webserver()
jack1930 13:ed5c59ed4ae5 4 {
jack1930 13:ed5c59ed4ae5 5 //HAL_Delay(1000);
jack1930 13:ed5c59ed4ae5 6 hs_count=0;
jack1930 13:ed5c59ed4ae5 7 clientIdx=0;
jack1930 13:ed5c59ed4ae5 8 if (pDebug) printf("\nATCmdParser with ESP8266 example");
jack1930 13:ed5c59ed4ae5 9 port=Port;
jack1930 13:ed5c59ed4ae5 10
jack1930 13:ed5c59ed4ae5 11 dbg=pDebug;
jack1930 13:ed5c59ed4ae5 12 _serial = new BufferedSerial(tx,rx, ESP8266_DEFAULT_BAUD_RATE);
jack1930 13:ed5c59ed4ae5 13 _parser = new ATCmdParser(_serial, "\r\n");
jack1930 13:ed5c59ed4ae5 14 _parser->debug_on(false);//pDebug);
jack1930 13:ed5c59ed4ae5 15
jack1930 13:ed5c59ed4ae5 16 _parser->set_timeout(1000);
jack1930 13:ed5c59ed4ae5 17
jack1930 13:ed5c59ed4ae5 18 //AT
jack1930 13:ed5c59ed4ae5 19 if (pDebug) printf("\nATCmdParser: AT\r\n");
jack1930 13:ed5c59ed4ae5 20 _parser->send("AT");
jack1930 13:ed5c59ed4ae5 21
jack1930 13:ed5c59ed4ae5 22 //HAL_Delay(1000);
jack1930 13:ed5c59ed4ae5 23
jack1930 13:ed5c59ed4ae5 24 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 25 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 26 } else {
jack1930 13:ed5c59ed4ae5 27 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 28 }
jack1930 13:ed5c59ed4ae5 29
jack1930 13:ed5c59ed4ae5 30 _parser->send("ATE0");
jack1930 13:ed5c59ed4ae5 31 //HAL_Delay(300);
jack1930 13:ed5c59ed4ae5 32 //AT+CWMODE=1
jack1930 13:ed5c59ed4ae5 33 if (pDebug) printf("\nATCmdParser: //AT+CWMODE=2 \r\n");
jack1930 13:ed5c59ed4ae5 34 _parser->send("AT+CWMODE=2");
jack1930 13:ed5c59ed4ae5 35
jack1930 13:ed5c59ed4ae5 36 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 37 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 38 } else {
jack1930 13:ed5c59ed4ae5 39 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 40 }
jack1930 13:ed5c59ed4ae5 41
jack1930 13:ed5c59ed4ae5 42 //AT+CWMODE?
jack1930 13:ed5c59ed4ae5 43 if (pDebug) printf("\nATCmdParser: //AT+CWMODE? \r\n");
jack1930 13:ed5c59ed4ae5 44 _parser->send("AT+CWMODE?");
jack1930 13:ed5c59ed4ae5 45
jack1930 13:ed5c59ed4ae5 46 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 47 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 48 } else {
jack1930 13:ed5c59ed4ae5 49 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 50 }
jack1930 13:ed5c59ed4ae5 51
jack1930 13:ed5c59ed4ae5 52
jack1930 13:ed5c59ed4ae5 53 //AT+CIFSR
jack1930 13:ed5c59ed4ae5 54 if (pDebug) printf("\nATCmdParser: //AT+CIFSR \r\n");
jack1930 13:ed5c59ed4ae5 55 _parser->send("AT+CIFSR");
jack1930 13:ed5c59ed4ae5 56
jack1930 13:ed5c59ed4ae5 57 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 58 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 59 } else {
jack1930 13:ed5c59ed4ae5 60 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 61 }
jack1930 13:ed5c59ed4ae5 62
jack1930 13:ed5c59ed4ae5 63 /*
jack1930 13:ed5c59ed4ae5 64 //AT+CWJAP= “Wi-FiNetwork”,“Password”
jack1930 13:ed5c59ed4ae5 65 printf("\nATCmdParser: //AT+CWJAP= \"Wi-FiNetwork\",\"Password\" \r\n");
jack1930 13:ed5c59ed4ae5 66 _parser->send("AT+CWJAP=\"x-Netz\",\"aCT3xuSbm9rt\"");
jack1930 13:ed5c59ed4ae5 67
jack1930 13:ed5c59ed4ae5 68 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 69 printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 70 } else {
jack1930 13:ed5c59ed4ae5 71 printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 72 }
jack1930 13:ed5c59ed4ae5 73 */
jack1930 13:ed5c59ed4ae5 74 //AT+CIPAP="192.168.5.1","192.168.5.1","255.255.255.0"
jack1930 14:d17cfd8131b1 75 if (pDebug) printf("\nATCmdParser: //AT+CIPAP=\"%s\",\"%s\",\"%s\" \r\n",ipad.c_str(),ipad.c_str(),netzmaske);
jack1930 14:d17cfd8131b1 76 // _parser->send("AT+CIPAP=\"192.168.5.1\",\"192.168.5.1\",\"255.255.255.0\"");
jack1930 14:d17cfd8131b1 77 _parser->send("AT+CIPAP=\"%s\",\"%s\",\"%s\"",ipad.c_str(),ipad.c_str(),netzmaske);
jack1930 13:ed5c59ed4ae5 78
jack1930 13:ed5c59ed4ae5 79 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 80 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 81 } else {
jack1930 13:ed5c59ed4ae5 82 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 83 }
jack1930 13:ed5c59ed4ae5 84
jack1930 13:ed5c59ed4ae5 85
jack1930 13:ed5c59ed4ae5 86 //AT+CIPMUX=1
jack1930 13:ed5c59ed4ae5 87 if (pDebug) printf("\nATCmdParser: //AT+CIPMUX=1");
jack1930 13:ed5c59ed4ae5 88 _parser->send("AT+CIPMUX=1");
jack1930 13:ed5c59ed4ae5 89
jack1930 13:ed5c59ed4ae5 90 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 91 if (pDebug) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 92 } else {
jack1930 13:ed5c59ed4ae5 93 if (pDebug) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 94 }
jack1930 13:ed5c59ed4ae5 95
jack1930 13:ed5c59ed4ae5 96 }
jack1930 13:ed5c59ed4ae5 97
jack1930 13:ed5c59ed4ae5 98
jack1930 13:ed5c59ed4ae5 99
jack1930 13:ed5c59ed4ae5 100 int ESP8266Webserver::on(const char* handlestring,Callback< void()> func)
jack1930 13:ed5c59ed4ae5 101 {
jack1930 13:ed5c59ed4ae5 102 if (hs_count>9) return -1;
jack1930 13:ed5c59ed4ae5 103 else
jack1930 13:ed5c59ed4ae5 104 {
jack1930 13:ed5c59ed4ae5 105 strcpy(hs[hs_count],handlestring);
jack1930 13:ed5c59ed4ae5 106 if (dbg) printf("\r\n\r\n%s, %s\r\n",handlestring,hs[hs_count]);
jack1930 13:ed5c59ed4ae5 107 cbs[hs_count]=func;
jack1930 13:ed5c59ed4ae5 108 hs_count++;
jack1930 13:ed5c59ed4ae5 109 return 0;
jack1930 13:ed5c59ed4ae5 110 }
jack1930 13:ed5c59ed4ae5 111
jack1930 13:ed5c59ed4ae5 112 }
jack1930 13:ed5c59ed4ae5 113
jack1930 13:ed5c59ed4ae5 114 int ESP8266Webserver::begin(void)
jack1930 13:ed5c59ed4ae5 115 {
jack1930 13:ed5c59ed4ae5 116 //AT+CIPSERVER=1,80
jack1930 13:ed5c59ed4ae5 117 if (dbg) printf("\nATCmdParser: //AT+CIPSERVER=1,80");
jack1930 13:ed5c59ed4ae5 118 _parser->send("AT+CIPSERVER=1,80");
jack1930 13:ed5c59ed4ae5 119 if (_parser->recv("OK")) {
jack1930 13:ed5c59ed4ae5 120 if (dbg) printf("\nAntw.: OK\r\n");
jack1930 13:ed5c59ed4ae5 121 return 0;
jack1930 13:ed5c59ed4ae5 122 } else {
jack1930 13:ed5c59ed4ae5 123 if (dbg) printf("\nATCmdParser: OK failed\r\n");
jack1930 13:ed5c59ed4ae5 124 return -1;
jack1930 13:ed5c59ed4ae5 125 }
jack1930 13:ed5c59ed4ae5 126 }
jack1930 13:ed5c59ed4ae5 127
jack1930 13:ed5c59ed4ae5 128 //durchsucht recbuf nach suchstring
jack1930 13:ed5c59ed4ae5 129 bool ESP8266Webserver::beinhaltet(char* suchstring)
jack1930 13:ed5c59ed4ae5 130 {
jack1930 13:ed5c59ed4ae5 131 char* referer;
jack1930 13:ed5c59ed4ae5 132 char* fundort;
jack1930 13:ed5c59ed4ae5 133 char* favicon;
jack1930 13:ed5c59ed4ae5 134 favicon=strstr(recbuf,"favicon");
jack1930 13:ed5c59ed4ae5 135 if (favicon!=NULL) return false;
jack1930 13:ed5c59ed4ae5 136 referer=strstr(recbuf,"Referer");
jack1930 13:ed5c59ed4ae5 137 fundort=strstr(recbuf, suchstring);
jack1930 13:ed5c59ed4ae5 138 if (strstr(recbuf,"ERROR")==NULL)
jack1930 13:ed5c59ed4ae5 139 if( fundort != NULL&&(fundort<referer||referer==NULL)) return true;
jack1930 13:ed5c59ed4ae5 140 return false;
jack1930 13:ed5c59ed4ae5 141 }
jack1930 13:ed5c59ed4ae5 142
jack1930 13:ed5c59ed4ae5 143 int ESP8266Webserver::handleClient(void)
jack1930 13:ed5c59ed4ae5 144 {
jack1930 13:ed5c59ed4ae5 145 int value,value2;
jack1930 13:ed5c59ed4ae5 146 if (_serial->readable())
jack1930 13:ed5c59ed4ae5 147 {
jack1930 13:ed5c59ed4ae5 148 /* HAL_Delay(1000);
jack1930 13:ed5c59ed4ae5 149 _serial->read(buf,1000);
jack1930 13:ed5c59ed4ae5 150 printf("\r\n ich %s\r\n",buf);
jack1930 13:ed5c59ed4ae5 151 */
jack1930 13:ed5c59ed4ae5 152 if (_parser->recv("+IPD,%d,%d:",&clientID[clientIdx],&value2)) //_parser->recv("+IPD,%d",value)
jack1930 13:ed5c59ed4ae5 153 {
jack1930 13:ed5c59ed4ae5 154
jack1930 13:ed5c59ed4ae5 155 //HAL_Delay(1000);
jack1930 13:ed5c59ed4ae5 156
jack1930 13:ed5c59ed4ae5 157 if (dbg) printf("\r\nich Client ID=%d, Anzahl=%d",clientID[clientIdx],value2);
jack1930 13:ed5c59ed4ae5 158 _parser->read(recbuf, value2);
jack1930 13:ed5c59ed4ae5 159 //HAL_Delay(1000);
jack1930 13:ed5c59ed4ae5 160
jack1930 13:ed5c59ed4ae5 161 //recbuf[value2]=0;
jack1930 13:ed5c59ed4ae5 162 if (dbg) printf("\r\nBuf=\n%s",recbuf);
jack1930 13:ed5c59ed4ae5 163
jack1930 13:ed5c59ed4ae5 164 //(cbs[1])();
jack1930 13:ed5c59ed4ae5 165 gefunden=false;
jack1930 13:ed5c59ed4ae5 166 for (int i=0;i<hs_count&&!gefunden;i++)
jack1930 13:ed5c59ed4ae5 167 {
jack1930 13:ed5c59ed4ae5 168
jack1930 13:ed5c59ed4ae5 169 if (beinhaltet(hs[i]))
jack1930 13:ed5c59ed4ae5 170 {
jack1930 13:ed5c59ed4ae5 171
jack1930 13:ed5c59ed4ae5 172 (cbs[i])();
jack1930 13:ed5c59ed4ae5 173
jack1930 13:ed5c59ed4ae5 174 gefunden=true;
jack1930 13:ed5c59ed4ae5 175 }
jack1930 13:ed5c59ed4ae5 176 }
jack1930 13:ed5c59ed4ae5 177
jack1930 13:ed5c59ed4ae5 178 if (dbg) for (int i=0;i<hs_count;i++)
jack1930 13:ed5c59ed4ae5 179 {
jack1930 13:ed5c59ed4ae5 180 printf("\r\n%s\r\n",hs[i]);
jack1930 13:ed5c59ed4ae5 181 }
jack1930 13:ed5c59ed4ae5 182
jack1930 13:ed5c59ed4ae5 183 if (dbg) printf("\r\nich Got\r\n");
jack1930 13:ed5c59ed4ae5 184
jack1930 13:ed5c59ed4ae5 185 //_parser->flush();
jack1930 13:ed5c59ed4ae5 186
jack1930 13:ed5c59ed4ae5 187 }
jack1930 13:ed5c59ed4ae5 188
jack1930 13:ed5c59ed4ae5 189 }
jack1930 13:ed5c59ed4ae5 190
jack1930 13:ed5c59ed4ae5 191 return 0;
jack1930 13:ed5c59ed4ae5 192 }
jack1930 13:ed5c59ed4ae5 193
jack1930 13:ed5c59ed4ae5 194
jack1930 13:ed5c59ed4ae5 195 int ESP8266Webserver::send(int HTTPStatus,const char* Mimetype, string webseite)
jack1930 13:ed5c59ed4ae5 196 {
jack1930 13:ed5c59ed4ae5 197 return ESP8266Webserver::send(HTTPStatus,Mimetype, webseite.c_str());
jack1930 13:ed5c59ed4ae5 198 }
jack1930 13:ed5c59ed4ae5 199 int ESP8266Webserver::send(int HTTPStatus,const char* Mimetype, const char* webseite)
jack1930 13:ed5c59ed4ae5 200 {
jack1930 13:ed5c59ed4ae5 201 char hilf[40];
jack1930 13:ed5c59ed4ae5 202
jack1930 13:ed5c59ed4ae5 203 printf("\r\nHallo\r\n");
jack1930 13:ed5c59ed4ae5 204 Aufrufe++;
jack1930 13:ed5c59ed4ae5 205 sprintf(sendstring,"HTTP/1.1 %d OK\n",HTTPStatus);
jack1930 13:ed5c59ed4ae5 206 strcat(sendstring,"Date: Wed, 23 Apr 2021 04:36:25 GMT\n");
jack1930 13:ed5c59ed4ae5 207 strcat(sendstring,"Connection: close\n");
jack1930 13:ed5c59ed4ae5 208 strcat(sendstring,"Content-Type: ");
jack1930 13:ed5c59ed4ae5 209 strcat(sendstring,Mimetype);
jack1930 13:ed5c59ed4ae5 210 strcat(sendstring,"\n");
jack1930 13:ed5c59ed4ae5 211 sprintf(hilf,"%d",strlen(webseite));
jack1930 13:ed5c59ed4ae5 212 strcat(sendstring,"Content-Length: ");
jack1930 13:ed5c59ed4ae5 213 strcat(sendstring,hilf);
jack1930 13:ed5c59ed4ae5 214 strcat(sendstring,"\n\n");
jack1930 13:ed5c59ed4ae5 215 strcat(sendstring,webseite);
jack1930 13:ed5c59ed4ae5 216 if (dbg) printf("len=%d, inhalt=\n%s",strlen(sendstring),sendstring);
jack1930 13:ed5c59ed4ae5 217 //sprintf(hilf,"AT+CIPSEND=%d,%d\r\n",clientID,strlen(sendstring));
jack1930 13:ed5c59ed4ae5 218 //printf("\n %s, %d\n",hilf,strlen(hilf));
jack1930 13:ed5c59ed4ae5 219 //_serial->write(hilf,strlen(hilf));
jack1930 13:ed5c59ed4ae5 220 _parser->debug_on(true);
jack1930 13:ed5c59ed4ae5 221 _parser->send("AT+CIPSEND=%d,%d",clientID[clientIdx],strlen(sendstring));
jack1930 13:ed5c59ed4ae5 222 _parser->debug_on(false);
jack1930 13:ed5c59ed4ae5 223 _parser->write(sendstring,strlen(sendstring));
jack1930 13:ed5c59ed4ae5 224 HAL_Delay(200);
jack1930 13:ed5c59ed4ae5 225 _parser->send("AT+CIPCLOSE=%d",clientID[clientIdx]);
jack1930 13:ed5c59ed4ae5 226 return 0;
jack1930 13:ed5c59ed4ae5 227 }
jack1930 13:ed5c59ed4ae5 228
jack1930 13:ed5c59ed4ae5 229 void ESP8266Webserver::debugOn(bool pD)
jack1930 13:ed5c59ed4ae5 230 {
jack1930 13:ed5c59ed4ae5 231 dbg=pD;
jack1930 13:ed5c59ed4ae5 232 _parser->debug_on(pD);
jack1930 13:ed5c59ed4ae5 233
jack1930 13:ed5c59ed4ae5 234 }
jack1930 13:ed5c59ed4ae5 235
jack1930 13:ed5c59ed4ae5 236 string ESP8266Webserver::gibWertString(string suchstring)
jack1930 13:ed5c59ed4ae5 237 {
jack1930 13:ed5c59ed4ae5 238 return ESP8266Webserver::gibWert(suchstring.c_str());
jack1930 13:ed5c59ed4ae5 239 }
jack1930 13:ed5c59ed4ae5 240
jack1930 13:ed5c59ed4ae5 241 const char* ESP8266Webserver::gibWert(const char* suchstring)
jack1930 13:ed5c59ed4ae5 242 {
jack1930 13:ed5c59ed4ae5 243 static char hilf[20];
jack1930 13:ed5c59ed4ae5 244
jack1930 13:ed5c59ed4ae5 245 char *fundort;
jack1930 13:ed5c59ed4ae5 246 int i=0;
jack1930 13:ed5c59ed4ae5 247 fundort=strstr(recbuf,suchstring);
jack1930 13:ed5c59ed4ae5 248 if (fundort!=NULL)
jack1930 13:ed5c59ed4ae5 249 {
jack1930 13:ed5c59ed4ae5 250 fundort=fundort+strlen(suchstring)+1;
jack1930 13:ed5c59ed4ae5 251 while(i<20 && fundort[i]!=38 && fundort[i]>32 ) //space, &
jack1930 13:ed5c59ed4ae5 252 {
jack1930 13:ed5c59ed4ae5 253 hilf[i]=fundort[i];
jack1930 13:ed5c59ed4ae5 254 i++;
jack1930 13:ed5c59ed4ae5 255 }
jack1930 13:ed5c59ed4ae5 256 hilf[i]=0;
jack1930 13:ed5c59ed4ae5 257 if (dbg) printf("\r\nsuchergebnis=%s\r\n",hilf);
jack1930 13:ed5c59ed4ae5 258 return hilf;
jack1930 13:ed5c59ed4ae5 259 }
jack1930 13:ed5c59ed4ae5 260 else
jack1930 13:ed5c59ed4ae5 261 return NULL;
jack1930 14:d17cfd8131b1 262 }
jack1930 14:d17cfd8131b1 263
jack1930 14:d17cfd8131b1 264 void ESP8266Webserver::connect_wifi(string cmd, int t) //This function is for connecting ESP8266 with wifi network by using AT commands
jack1930 14:d17cfd8131b1 265 {
jack1930 14:d17cfd8131b1 266 int i=0;
jack1930 14:d17cfd8131b1 267 while(1)
jack1930 14:d17cfd8131b1 268 {
jack1930 14:d17cfd8131b1 269 //Serial2println(cmd); //sends to ESP8266 via serial communication
jack1930 14:d17cfd8131b1 270 HAL_Delay(t);
jack1930 14:d17cfd8131b1 271 /*
jack1930 14:d17cfd8131b1 272 while(Serial2available())
jack1930 14:d17cfd8131b1 273 {
jack1930 14:d17cfd8131b1 274 if(Serial2find("OK"))
jack1930 14:d17cfd8131b1 275 i=8;
jack1930 14:d17cfd8131b1 276 }
jack1930 14:d17cfd8131b1 277 */
jack1930 14:d17cfd8131b1 278 if(i>5)
jack1930 14:d17cfd8131b1 279 break;
jack1930 14:d17cfd8131b1 280 i++;
jack1930 14:d17cfd8131b1 281 }
jack1930 14:d17cfd8131b1 282
jack1930 14:d17cfd8131b1 283 void ESP8266Webserver::WIFIsetup(string pSSID, string pPW)
jack1930 14:d17cfd8131b1 284 {
jack1930 14:d17cfd8131b1 285 ssid=pSSID;
jack1930 14:d17cfd8131b1 286 password=pPW;
jack1930 14:d17cfd8131b1 287 wifi_init();
jack1930 14:d17cfd8131b1 288 }
jack1930 14:d17cfd8131b1 289
jack1930 14:d17cfd8131b1 290 void ESP8266Webserver::wifi_init() //This function contains AT commands that passes to connect_wifi()
jack1930 14:d17cfd8131b1 291 {
jack1930 14:d17cfd8131b1 292 //clearBuffer();
jack1930 14:d17cfd8131b1 293 //connect_wifi("AT",100); //Sends AT command with time(Command for Achknowledgement)
jack1930 14:d17cfd8131b1 294 //connect_wifi("AT+CWMODE=1",100); //Sends AT command with time (For setting mode of Wifi)
jack1930 14:d17cfd8131b1 295 //connect_wifi("AT+CIFSR",100);
jack1930 14:d17cfd8131b1 296 //bool No_IP=check4IP(100);
jack1930 14:d17cfd8131b1 297 if (No_IP)
jack1930 14:d17cfd8131b1 298 {
jack1930 14:d17cfd8131b1 299 char anmeldedaten[50];
jack1930 14:d17cfd8131b1 300 strcpy(anmeldedaten,"AT+CWJAP=\"");
jack1930 14:d17cfd8131b1 301 strcat(anmeldedaten,ssid);
jack1930 14:d17cfd8131b1 302 strcat(anmeldedaten,"\",\"");
jack1930 14:d17cfd8131b1 303 strcat(anmeldedaten,password);
jack1930 14:d17cfd8131b1 304 strcat(anmeldedaten,"\"");
jack1930 14:d17cfd8131b1 305 connect_wifi(anmeldedaten,7000);
jack1930 14:d17cfd8131b1 306 //connect_wifi("AT+CWJAP=\"x-Netz\",\"aCT3xuSbm9rt\"",7000); //provide your WiFi username and password here
jack1930 14:d17cfd8131b1 307 }
jack1930 14:d17cfd8131b1 308 IP[0]=0;
jack1930 14:d17cfd8131b1 309 get_ip();
jack1930 14:d17cfd8131b1 310 LCD_i2c_textzeile1(IP);
jack1930 14:d17cfd8131b1 311
jack1930 14:d17cfd8131b1 312 connect_wifi("AT+CIPMUX=1",100); //Sends AT command with time (For creating multiple connections)
jack1930 14:d17cfd8131b1 313 connect_wifi("AT+CIPSERVER=1,80",100); //Sends AT command with time (For setting up server with port 80)
jack1930 14:d17cfd8131b1 314 clearBuffer();
jack1930 14:d17cfd8131b1 315 writeBit(PC7,1);
jack1930 14:d17cfd8131b1 316 }
jack1930 14:d17cfd8131b1 317
jack1930 14:d17cfd8131b1 318 bool ESP8266Webserver::check4IP(int t1) //A function to check ip of ESP8266
jack1930 14:d17cfd8131b1 319 {
jack1930 14:d17cfd8131b1 320 HAL_Delay((long)t1);
jack1930 14:d17cfd8131b1 321 bool No_IP=true;
jack1930 14:d17cfd8131b1 322 /*
jack1930 14:d17cfd8131b1 323 while(Serial2available()>0)
jack1930 14:d17cfd8131b1 324 {
jack1930 14:d17cfd8131b1 325 if(Serial2find("STAIP"))
jack1930 14:d17cfd8131b1 326 {
jack1930 14:d17cfd8131b1 327 No_IP=false;
jack1930 14:d17cfd8131b1 328 }
jack1930 14:d17cfd8131b1 329 }
jack1930 14:d17cfd8131b1 330 */
jack1930 14:d17cfd8131b1 331 return No_IP;
jack1930 14:d17cfd8131b1 332
jack1930 13:ed5c59ed4ae5 333 }