Optron
24.Август.2024 16:51:07
1
Здравствуйте.
Вот скетч разработки 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).
А есть ли способ прочитать эту ссылку в какую-то строковую переменную, а затем работать с этой переменной?
Спасибо.
v258
24.Август.2024 17:09:02
2
Разъясните более понятным языком, что вы хотите
Optron
24.Август.2024 17:19:38
3
Например, если я подключаюсь к ESP01 по такой ссылке:
http://xx.xxx.x.xxx:10200/l40h60
то ARDUINO-UNO должна получить команду на поддержание влажности почвы в пределах от 40% до 60%.
Не назначать же функцию для обработки вот этой подстроки: “l40h60”.
v258
24.Август.2024 17:34:40
4
Вы хотите странного. При обращении к web-серверу по указанному адресу у вас вызывается функция f2(). Что мешает вам прописать в ней нужный функционал?
Optron
24.Август.2024 17:37:00
5
А если мне надо передать другие настройки:
http://xx.xxx.x.xxx:10200/l38h62 , то для этих настроек прописывать еще одну функцию?
Конечно, есть, иначе как вообще все веб-серверы работают?
Например, вот здесь, автор считывает пришедшие данные в строку strData
, а потом её печатает.
Привет! Это мой первый пост здесь! Решил его написать, чтобы облегчить путь всем начинающим знакомство с ESP 8266. Итак, у нас есть ESP-01. И USB-UART преобразователь. Лично у меня такой, но это не...
rkit
24.Август.2024 17:39:26
7
Используй POST, а не вот эту чушь.
1 лайк
Optron
24.Август.2024 18:40:44
8
А так можно, если ESP у меня работает в режиме станции?
Optron
24.Август.2024 20:51:20
10
Мне надо отсылать запросы на ESP и получать ответы. А не наоборот.
Попробую для чтения URL server.available
v258
24.Август.2024 20:54:30
12
Удалять гланды можно и через задний проход. Удачи ))
Optron
24.Август.2024 20:58:49
13
Посоветуйте как это сделать. В смысле, не гланды удалять.
Мне всего-навсего надо URL,примерно такой:
http://xx.xxx.x.xx:10200/katastrofa
загнать в стриноговую переменную. А в примерах, которые мне приводили, ошибки.
v258
24.Август.2024 21:06:02
14
Предлагаете перепечатать вам здесь учебник?
Optron
24.Август.2024 21:08:22
15
Именно это и называется “сервер” - тот, кто принимает запросы и отвечает на них. Если бы Ваш есп сам слал запросы, он был бы клиентом
По ссылке что я дал, тоже сервер, он принимает запросы и отвечает. Вы бы разобрались с начала, а потом уж возвращались сюда с дополнительными вопросами
Можете, конечно, и попробовать, только по ссылке, что я Вам дал, для чтения используется Serial.read()
. Вы вообще читали? Разбирались?
Ну я же Вам дал ссылку! Там это делается и печатается, я ахреневаю, что Вам ещё нужно?
Или Вы ни слова не понимаете ни в том коде, ни в своём и Вам нужно, чтобы кто-то просто вписал это в Ваш код? Так?
Optron
25.Август.2024 03:51:47
17
В своем коде, как раз-таки, понимаю. Иначе как бы у меня получилось связать IP-адрес 192.168.0.62, которого ТУТ НЕТ, портом 10200?
v258
25.Август.2024 04:05:33
18
Набор слов какой-то. Вы реально не понимаете, о чем говорите
Optron
25.Август.2024 04:07:17
19
Не понимал бы - этот скетч не работал бы.
v258
25.Август.2024 04:21:10
20
Много ль ума нужно скопировать готовый код? ))