Цифровая электроника для начинающих (Елисеев) - страница 48


// Инициализация дисплея

display.init();

display.flipScreenVertically();

display.clear();

display.setFont(ArialMT_Plain_10);

display.setTextAlignment(TEXT_ALIGN_LEFT);

display.drawString(0, 0, "App started");

display.display();


delay(10);


// Запуск WiFi

Serial.print("Connecting to ");

Serial.println(ssid);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

WiFi.begin(ssid, password);

Serial.print(".");

}


Serial.println("");

Serial.println("WiFi connected.");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

server.begin();

}


void loop(){

while (WiFi.status() != WL_CONNECTED) {

delay(500);

WiFi.begin(ssid, password);

Serial.print(".");

}


WiFiClient client = server.available();

if (client) {

Serial.println("New Client.");

String currentLine = "";

while (client.connected()) {

if (client.available()) {

char c = client.read();

if (c == '\n') { // if the byte is a newline character

if (currentLine.length() == 0) {

client.println("HTTP/1.1 200 OK");

client.println("Content-type:text/html");

client.println();

client.print("");

client.print("ESP32 Server");

client.print("");

client.print("

ESP32 sensors data

");

client.print("

");

client.print("Enter the message:
");

client.print("");

client.print("

");

client.print("");

client.print("");

client.println();

break;

} else {

if (currentLine.startsWith("GET /send?msg=") &&

currentLine.endsWith(" HTTP/1.1")) {

// Строка выглядит как “GET /send?msg=123+456 HTTP/1.1”

String msg = currentLine.substring(14, currentLine.length()-8);

msg.replace("+", " ");


// Вывод строки на дисплей

display.clear();

display.setFont(ArialMT_Plain_10);

display.setTextAlignment(TEXT_ALIGN_LEFT);

display.drawString(0, 0, msg);

display.display();

}

currentLine = "";

}

} else if (c != '\r') {

currentLine += c;

}

}

}

client.stop();