Задать вопрос
@timur_sa

[Wemos D1 mini] Почему не получается управлять платой через точку доступа?

Не получается управлять мк через точку доступа. Когда в последний раз тестировал просто работоспособность платы - она отлично работала с вай фай (который раздавался с телефона).

Подключаюсь по телефону к точке доступа, ввожу "http/192.168.4.1/запрос", но получаю ERR_CONNECTION_REFUSED ("Не удаётся получить доступ к сайту")

Код ниже, хотел просто проверить, получится-ли чтобы плата раздавала вай-фай.
#include <ESP8266WiFi.h>

class WiFiSetup
{
  ...
};

// Подготавливаем объекты
WiFiSetup wifiSetup;
WiFiServer server(wifiSetup.PORT);

void setup() {
  // Подготавливаем AP
  Serial.begin(115200);
  Serial.println("===PROGRAMM STARTED!===");
  WiFi.mode(WIFI_AP);
  WiFi.softAP(wifiSetup.NAME, wifiSetup.PASS);
  wifiSetup.StatsShow();
  

  // Готовим Пины
  pinMode(D4, OUTPUT);
  digitalWrite(D4, 0);
  delay(500);
  digitalWrite(D4, 1);
  delay(500);
  digitalWrite(D4, 0);
}


void loop() 
{ 
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  while(!client.available()){
    delay(1);
  }

  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();

  if(req == "1")
  {
    digitalWrite(D4, 0);
    delay(1000);
    digitalWrite(D4, 1);
  }
  else if (req == "2")
  {
    digitalWrite(D4, 0);
    delay(250);
    digitalWrite(D4, 1);
    delay(250);
    digitalWrite(D4, 0);
    delay(250);
    digitalWrite(D4, 1);
  }

  else
  {
    digitalWrite(D4, 1);
  }

  client.flush();
  client.print("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n <!DOCTYPE HTML>\r\n<html>\r\ OK!");
}
  • Вопрос задан
  • 188 просмотров
Подписаться 1 Простой 18 комментариев
Решения вопроса 1
@timur_sa Автор вопроса
Кратко: забыл запустить сервер.

Подробнее:
1) Необходимо запустить на плате сервер server.begin() чтобы плата могла обрабатывать запросы которые на неё приходят, а не просто быть устройством в сети.
2) Также я неправильно обрабатывал запросы [req == "Что-нибудь"], ведь структура HTTP запроса сложнее, чем просто передаваемый текст, например - GET /Что-нибудь HTTP1.1, поэтому условия не выполнялись.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы