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

Вопрос Возможно ли соединить две esp8266?

stepa3800

New member
У меня есть две esp8266-01. Возможно ли их соединить, т.е. одну сделать сервером а другую клиентом? Ситуация такая, на сервере есть веб страница на которой есть две кнопки и при нажатии на них команда отправляется на 2 модуль (на клиента).
 

stepa3800

New member
@stepa3800 возможно, почему вопрос возник?
диплом пишу, теперь разбираться приходиться. пробовал с помощью такого кода, но что то идет не так и второй не подключается. это код от сервера, а у клиента меняется только ssid и password на тот который у сервера. долдно вообще так работать или что то другое нужно?
Код:
const char* host = "esp8266-server";
const char* pass = "12345678";
// Вместо звездочек свои параметры WiFi сети
const char* ssid = "ds904921";
const char* password = "14775555";
ESP8266WebServer server(80);

void setup() {
// Последовательный порт для отладки
  Serial.begin(115200);
  Serial.printf("\n\nFree memory %d\n",ESP.getFreeHeap());

  // Инициализация выхода реле
  pinMode(PowerPin , OUTPUT);
  digitalWrite(PowerPin , PowerOn);
pinMode(TXD, OUTPUT);
digitalWrite(TXD , PowerOn2);
// Подлючение к WiFi
     IPAddress ip(192,168,0,5);
     IPAddress gateway(192,168,0,1);
     IPAddress subnet(255,255,255,0);
  WiFi.mode(WIFI_AP_STA);
  WiFi.begin(ssid, password);
  WiFi.config(ip, gateway, subnet);
  if(WiFi.waitForConnectResult() == WL_CONNECTED){
// Запуск WEB-сервера
     WiFi.softAP(host, pass);
     server.on ( "/", HTTP_handleRoot );
     server.onNotFound ( HTTP_handleRoot );
     server.begin();
 

stepa3800

New member
Это как? Сервер - это сервер, клиент - это клиент. Как код может быть одинаков?
тогда на клиенте подобное должно быть?
Код:
/*
*  This sketch sends a message to a TCP server
*
*/

#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>

ESP8266WiFiMulti WiFiMulti;

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

    // We start by connecting to a WiFi network
    WiFiMulti.addAP("SSID", "passpasspass");

    Serial.println();
    Serial.println();
    Serial.print("Wait for WiFi... ");

    while(WiFiMulti.run() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
    }

    Serial.println("");
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());

    delay(500);
}


void loop() {
    const uint16_t port = 80;
    const char * host = "192.168.1.1"; // ip or dns

   
   
    Serial.print("connecting to ");
    Serial.println(host);

    // Use WiFiClient class to create TCP connections
    WiFiClient client;

    if (!client.connect(host, port)) {
        Serial.println("connection failed");
        Serial.println("wait 5 sec...");
        delay(5000);
        return;
    }

    // This will send the request to the server
    client.print("Send this data to server");

    //read back one line from server
    String line = client.readStringUntil('\r');
    client.println(line);

    Serial.println("closing connection");
    client.stop();
   
    Serial.println("wait 5 sec...");
    delay(5000);
}
 
Сверху Снизу