• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как назначить IP и МАС контроллеру ESP01

Gercon2

New member
Посмотрите wifimanualwebserver.

Скетч, который размещён в #10, брал именно с этого урока. Только доработал его слегка.

Придумал MAC-адрес ESP, и локальный IP-адрес 192.168.0.62. На роутере в в разделе DHCP для этого MAC-адрес зарезервиловал IP-адрес 192.168.0.62. В виртуальном сервере связал этот IP-адрес 192.168.0.62 с портом 10200. В строке браузера набираю: http://xx.xxx.x.xx:10200. И все работает. Здесь xx.xxx.x.xx - статический IP-адрес.

На этом этапе получается обратиться к ESP через интернет и получть ответ от него непосредственно С КОМПЬЮТЕРА, не привлекая браузер.

Загвоздка сейчас только в том, что я не знаю как из переданной ссылки
http://xx.xxx.x.xx:10200/?parametr выделить слово "parametr", для того, чтобы это слово через UART передать в ARDUINO-UNO.

Если я решу эту проблему (имеено выделение слова), то буду чувствовать себя как рыба в воде, которую изредка вытаскивают на сушу.
 

CodeNameHawk

Moderator
Команда форума
https://github.com/esp8266/Arduino/...s/WiFiManualWebServer/WiFiManualWebServer.ino

Так вызывают
http://server_ip/gpio/0 will set the GPIO2 low,
http://server_ip/gpio/1 will set the GPIO2 high

Так строку получают
// Read the first line of the request
String req = client.readStringUntil('\r');

Так ищут в строке
if (req.indexOf(F("/gpio/0")) != -1) {
val = 0;
} else if (req.indexOf(F("/gpio/1")) != -1) {
val = 1;
 

CodeNameHawk

Moderator
Команда форума
Нет там ошибки, просто надо брать пример из своей версии плат есп.
 

Gercon2

New member
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
char sim;
uint8_t newMACAddress[] = {0xFA, 0xEB, 0xDC, 0xCD, 0xBE, 0xAF};

const char* ssid = "ABRAKADABRA"; // SSID
const char* password = "19661117"; // пароль

ESP8266WebServer server(10200);
void setup()
{
Serial.begin(9600);
delay(100);

WiFi.begin(ssid, password);
WiFi.mode(WIFI_STA);
wifi_set_macaddr(STATION_IF, &newMACAddress[0]);

while (WiFi.status() != WL_CONNECTED)
{
delay(1000);
}


server.on("/s", handleSpecificArg);
server.begin();
}

void loop()
{
server.handleClient(); // обработка входящих запросов
}

void handleSpecificArg()
{
Serial.println(server.arg(0)); // отправление в Arduino
delay(250); // жду ответ от Arduino

String stroka = "w"; // символ "w" для отладки
if (Serial.available() > 0)
{
while (Serial.available() > 0)
{
char sim = Serial.read();
byte simb = (byte) sim;
if (!((simb == 10) || (simb == 13))) stroka += sim;
}
server.send(200, "text/plain", stroka); // ответ
}
else
{
server.send(200, "text/plain", "Oblom"); // ответ
}
}
 
Сверху Снизу