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

Решено Задать статический IP-адрес

ildarado

New member
Доброго времени суток.
Пытаюсь подружить два ESP8266 ESP-01 между собой:
первый ESP создает точку доступа с WPA2-PSK шифрованием и на нем запускается клиент;
второй ESP подключается к первому по WiFi и запускает сервер.
Хочу задать статический IP-адрес для сервера функцией WiFi.config(ip), на что компилятор ругается : "no matching function for call to 'ESP8266WiFiClass::config(IPAddress&)'". Как я понимаю данной функции нет в библиотеке ESP8266WiFi? Как можно задать статический IP-адрес для сервера?
 

ildarado

New member
Прошу прощения, вчера ночью похоже был утомлен, почему-то зациклился на библиотеке WiFi.h ) С утра посмотрел библиотеку ESP8266WiF, там синтаксис немного другой: void config(IPAddress local_ip, IPAddress gateway, IPAddress subnet);
 

soznik

New member
Прошу прощения, вчера ночью похоже был утомлен, почему-то зациклился на библиотеке WiFi.h ) С утра посмотрел библиотеку ESP8266WiF, там синтаксис немного другой: void config(IPAddress local_ip, IPAddress gateway, IPAddress subnet);
Появилась такая-же задачка . опишите по подробнее.
 

soznik

New member
Собрал датчик сигнализации на балконную дверь ESP8266-01 + HMC5883
основной блок планирую ESP8266-07 и SIM900
необходимо при срабатывании просто отправить 1 на вторую ESP
Скетч написал на основе примера из библиотеки HMC5883 .
Малейшее перемещение отслеживает отлично.
 

Вложения

Рубен

Member
Последнее редактирование:

espeshka

New member
у меня подобная проблема, может у кого получилось? поделитесь плиз
 

NutsXXXL

New member
У меня так работает:
IPAddress apIP(192, 168, 1, 1);
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
WiFi.softAP("Server example");
 

Рубен

Member
Я давал ссылку ранее, отлично все работает:
Код:
IPAddress ip(192, 168, 0, 128); //Node static IP
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
......
void setup()
{
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
......
 
Последнее редактирование:

espeshka

New member
спасибо, у мня не много тут все посложнее будет, мне нужно из eeprom навесить сюда WiFi.config(ip, gateway, subnet); но данные через веб форму получаю в тексте.
 

NutsXXXL

New member
@espeshka это две отдельные задачи
1) добиться чтобы все конектилось по констатным значениям
2) проверить что идет из eeprom и ы
вебформ
а уж потом слить все в общее целое
 
Объясните мне, не образованному, как вы смотрите функции, содержащиеся в библиотеке, все перерыл- не могу понять.
 

sER

New member
Код:
/*
*  This sketch demonstrates how to set up a simple HTTP-like server.
*  The server will set a GPIO pin depending on the request
*    http://server_ip/gpio/0 will set the GPIO2 low,
*    http://server_ip/gpio/1 will set the GPIO2 high
*  server_ip is the IP address of the ESP8266 module, will be
*  printed to Serial when the module is connected.
*/

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";
const char* password = "your-password";
IPAddress ip(192, 168, 1, 99);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

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

  // prepare GPIO2
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  //WiFi.begin(ssid, password);
  WiFi.softAP(ssid, password);
  WiFi.config(ip, gateway, subnet);
 
  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());
  Serial.println(WiFi.softAPIP());
}

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");

  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}

Почему не устанавливается нужный мне IP адрес?
 

CodeNameHawk

Moderator
Команда форума
  • WiFi.softAP(ssid, password);
  • WiFi.config(ip, gateway, subnet);
А если так :
Код:
IPAddress ip(192, 168, 1, 25); //static IP address
IPAddress ip_gate(192, 168, 1, 1);
IPAddress ip_subnet(255, 255, 255, 0);
IPAddress ip_dns1(8, 8, 8, 8);
IPAddress ip_dns2(8, 8, 4, 4);

 WiFi.mode(WIFI_STA);
  WiFi.config(ip, ip_gate, ip_subnet, ip_dns1, ip_dns2);

  WiFi.begin ( ssid, password );
 

sER

New member
1.png
К точке доступа подключается и принимает указанный IP.
192.168.4.1 Адрес в режиме точки доступа, его мне и нужно изменить.

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

sER

New member
Две платы получают один и тот же адрес 192.168.4.1.
Как исправить?
Можно ли вместо адреса указать домен?
 

sER

New member
Код:
IPAddress local_IP(192,168,4,22);
IPAddress gateway(192,168,4,1);
IPAddress subnet(255,255,255,0);

  WiFi.mode(WIFI_AP);
WiFi.softAPConfig(local_IP, gateway, subnet);
  WiFi.softAP(ssid, password);
Спасибо, получилось
 

avense

New member
Как можно связать два ESP между собой?
К примеру на простейшей задачи, передать сигнал с одного ESP на другой и включить на втором светодиод.
 

kab

New member
Сверху Снизу