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

Проблема при прошивке ESP-07

CAP33

New member
Хочу сделать Web server на esp8266 esp-o7. В Arduino IDE выбираю: Файл/Примеры/ESP8266WiFi/WiFiWebServer. (код ниже) Вместо "your-ssid" и "your-password" ввожу название сети на английском и пароль. Загрузка проходит нормально. В итоге почему-то сеть получается с названием "ESP_FFA25F" (это не то, что я вводил) и без пароля. Устройства к сети подключаются нормально. В мониторе порта выводится только "Connecting to (название сети)" и точки,хотя должен ещё и IP адрес. (скриншот ниже кода) Подскажите пожалуйста, как решить проблему?

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";
const char* password = "your-password";

WiFiServer server(80);

void setup() {
Serial.begin(115200);
delay(10);

pinMode(2, OUTPUT);
digitalWrite(2, 0);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");

// Start the server
server.begin();
Serial.println("Server started");

// Print the IP address
Serial.println(WiFi.localIP());
}

void loop() {
// Check if a client has connected
WiFiClient client = server.available();
if (!client) {
return;
}

// Wait until the client sends some data
Serial.println("new client");
while(!client.available()){
delay(1);
}

// Read the first line of the request
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

// Match the request
int val;
if (req.indexOf("/gpio/0") != -1)
val = 0;
else if (req.indexOf("/gpio/1") != -1)
val = 1;
else {
Serial.println("invalid request");
client.stop();
return;
}

// Set GPIO2 according to the request
digitalWrite(2, val);

client.flush();

// Prepare the response
String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
s += (val)?"high":"low";
s += "</html>\n";

// Send the response to the client
client.print(s);
delay(1);
Serial.println("Client disonnected");

Безымянный.png
 
Последнее редактирование:

Victor

Administrator
Команда форума
Вам нужно разобраться в терминах. WebServer - это сервис на 80 порту, который позволяет подключаться браузерам и отдает HTML.
AP (SoftAP) - Access Point - это WiFi точка доступа, к которой могут подключаться устройства WiFi.
Данный пример кода, который вы рассматриваете подразумевает подключение к существующей WiFi сети [inline]WiFi.begin(ssid, password);[/inline] вашего роутера. После успешного подключения модуля к WiFi вы уже из своей сети (вы подключаетесь к тому же роутеру, не к ESP8266) браузером сможете зайти на WebServer ESP8266.
На [inline]ESP_FFA25F[/inline] пока не обращайте внимание - позднее научитесь ее отключать, или делать с нужным SSID.
 

CAP33

New member
Victor, спасибо за объяснение. Теперь я загрузил скетч с называнием "WiFiAccessPoint". (код ниже) Вместо "ESPap" и "thereisnospoon" опять же написал название сети и пароль. Загрузил. Название сети и пароль почему-то стоят по умолчанию "ESPap" и "thereisnospoon", хотя перед загрузкой я их менял. В мониторе порта вроде всё нормально. Что я неправильно делаю?
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

/* Set these to your desired credentials. */
const char *ssid = "ESPap";
const char *password = "thereisnospoon";

ESP8266WebServer server(80);

/* Just a little test message. Go to http://192.168.4.1 in a web browser
* connected to this access point to see it.
*/
void handleRoot() {
server.send(200, "text/html", "<h1>You are connected</h1>");
}

void setup() {
delay(1000);
Serial.begin(115200);
Serial.println();
Serial.print("Configuring access point...");
/* You can remove the password parameter if you want the AP to be open. */
WiFi.softAP(ssid, password);

IPAddress myIP = WiFi.softAPIP();
Serial.print("AP IP address: ");
Serial.println(myIP);
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
}

void loop() {
server.handleClient();
}
Безымянный.png
 

Victor

Administrator
Команда форума
стоят по умолчанию "ESPap" и "thereisnospoon", хотя перед загрузкой я их менял
на вид у вас все ок, пробуйте подключиться к новой точке доступа и в браузере набирайте [inline]http://192.168.4.1[/inline]
что в скетче прописано, то и будет в прошивке - раз у вас в скетче старые ssid и пароль, значит меняли в файле другим редактором и не сохранили или еще что. Может еще что-то криво сделали (например начали компилировать, а потом поменяли в редакторе). В любом случае, раз вы вставили сюда в форум старые SSID и pass, значит в скетче у вас тоже старые данные, они и залились. Сделайте все сначала по порядку и аккуратно, не забывайте что минимальная длина пароля в WiFI - 8 знаков.
 

CAP33

New member
Victor, спасибо. Всё получилось. Скорее всего, ошибка была из-за того, что пароль состоял меньше чем из 8-ми символов. Теперь всё работает.
 
Сверху Снизу