ESP01 как избавиться от server.on?

Здравствуйте.
Вот скетч разработки WEB-сервера.

[code]
#include "ESP8266WiFi.h"
#include "ESP8266WebServer.h"

String ssss="PRIVET_PRIVET";

uint8_t newMACAddress[] = {0xFA, 0xEB, 0xDC, 0xCD, 0xBE, 0xAF};

ESP8266WebServer server(10200);

const char* ssid = "ABRAKADABRA";
const char* password =  "19661117";
byte tries = 10;

void setup()
{

  Serial.begin(9600);
  WiFi.begin(ssid, password);

  WiFi.mode(WIFI_STA);

  Serial.print("[OLD] ESP8266 Board MAC Address:  ");
  Serial.println(WiFi.macAddress());

  wifi_set_macaddr(STATION_IF, &newMACAddress[0]);
  Serial.print("[NEW] ESP8266 Board MAC Address:  ");
  Serial.println(WiFi.macAddress());

  while (--tries && WiFi.status() != WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }

  if (WiFi.status() != WL_CONNECTED)
  {
    Serial.println("Non Connecting to WiFi..");
  }
  else
  {
    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }

  server.on("/",f1);
  server.on("/armageddon", f2);
  server.on("/katastrofa", f3);
  server.begin();
  Serial.println("Server listening");
}

void loop()
{
  server.handleClient();
}

void f1()
{
  server.send(200, "text/plain","PRIVET");
}

void f2()
{
  server.send(200, "text/plain","ARMAGEDDON");
}

void f3()
{
  server.send(200, "text/plain","KATASTROFA");
}
[/code]

Посылаю ему по очереди из интернета:

http://xx.xxx.x.xxx:10200
http://xx.xxx.x.xxx:10200/armageddon
http://xx.xxx.x.xxx:10200/katastrofa

xx.xxx.x.xxx - статический адрес.

Работает отлично.

Например, для обработки ссылки:
http://xx.xxx.x.xxx:10200/armageddon
назначена функция f2 (строки 49, 65).

А есть ли способ прочитать эту ссылку в какую-то строковую переменную, а затем работать с этой переменной?

Спасибо.

Разъясните более понятным языком, что вы хотите

Например, если я подключаюсь к ESP01 по такой ссылке:

http://xx.xxx.x.xxx:10200/l40h60

то ARDUINO-UNO должна получить команду на поддержание влажности почвы в пределах от 40% до 60%.

Не назначать же функцию для обработки вот этой подстроки: “l40h60”.

Вы хотите странного. При обращении к web-серверу по указанному адресу у вас вызывается функция f2(). Что мешает вам прописать в ней нужный функционал?

А если мне надо передать другие настройки:

http://xx.xxx.x.xxx:10200/l38h62, то для этих настроек прописывать еще одну функцию?

Конечно, есть, иначе как вообще все веб-серверы работают?

Например, вот здесь, автор считывает пришедшие данные в строку strData, а потом её печатает.

Используй POST, а не вот эту чушь.

1 лайк

А так можно, если ESP у меня работает в режиме станции?

А какая разница?

Мне надо отсылать запросы на ESP и получать ответы. А не наоборот.

Попробую для чтения URL server.available

И? В чем проблема?

Удалять гланды можно и через задний проход. Удачи ))

Посоветуйте как это сделать. В смысле, не гланды удалять.

Мне всего-навсего надо URL,примерно такой:

http://xx.xxx.x.xx:10200/katastrofa

загнать в стриноговую переменную. А в примерах, которые мне приводили, ошибки.

Предлагаете перепечатать вам здесь учебник?

Перепечатывать не надо. Просто скажите - где он находится, этот учебник.

Даже вот здесь солидный человек километровый скетч выложил, а там в строке WiFi.begin(ssid, password); ошибка конвертации.

А в моем скетче все проходит без ошибок.

  1. Именно это и называется “сервер” - тот, кто принимает запросы и отвечает на них. Если бы Ваш есп сам слал запросы, он был бы клиентом
  2. По ссылке что я дал, тоже сервер, он принимает запросы и отвечает. Вы бы разобрались с начала, а потом уж возвращались сюда с дополнительными вопросами

Можете, конечно, и попробовать, только по ссылке, что я Вам дал, для чтения используется Serial.read(). Вы вообще читали? Разбирались?

Ну я же Вам дал ссылку! Там это делается и печатается, я ахреневаю, что Вам ещё нужно?

Или Вы ни слова не понимаете ни в том коде, ни в своём и Вам нужно, чтобы кто-то просто вписал это в Ваш код? Так?

В своем коде, как раз-таки, понимаю. Иначе как бы у меня получилось связать IP-адрес 192.168.0.62, которого ТУТ НЕТ, портом 10200?

Набор слов какой-то. Вы реально не понимаете, о чем говорите

Не понимал бы - этот скетч не работал бы.

Много ль ума нужно скопировать готовый код? ))