• Система автоматизации с открытым исходным кодом на базе 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);
}
 
Сверху Снизу