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

Вопрос Управление ногами ESP <-> ESP

kab

New member
Уточните пожалуйста, что вы хотите? Что бы на странице html периодически выскакивала информация которая попадает на порт UART1 ?
Не совсем. Попробую объяснить подробнее свою "хотелку":
- Сейчас здесь очень много примеров и проектов, как с удаленного (от слова "далеко", а не "удалить") браузера через вебсервер, расположенный на ESP, можно управлять пинами этой ESP -"ногодрыг :)" , отправляя с браузера вручную либо добавки к адресной строке в запросе, либо формируя такой запрос через кнопки на странице HTML.
А я хочу понять, как (наиболее простым способом) аналогичный запрос(к серверу на ESP) отправить автоматически (без браузера), как из какой-то простой программы на компе, так и из другой ESP. В приоритете, вариант - с другой ESP. Наверно, это то, что называется "бот"?
Если совсем коротко: как с одной ESP через Wi-Fi подергать ногами другой?Точнее, как передать команду для этого?
Возможно - взаимодействие двух ESP можно организовать и проще, чем описано выше?
Уточняю - по Wi-Fi напрямую, без посредников (допустимо использование простого роутера без дополнительных сервисов)
 
Последнее редактирование:

Andy Korg

Moderator
Команда форума
....Уточняю - по Wi-Fi напрямую, без посредников ...
Т.е. необходимо на одной esp включить режим AP (Acess point), а на другой включить ST (Station mode). Затем на той, что ST настроить подключение к esp которая AP.
Дальше необходимо на стороне esp-ST запрограммировать клиента http который будет отправлять POST запрос на esp_AP, который в свою очередь будет командовать esp-AP дернуть ногой.
Как то так.
 

kab

New member
запрограммировать клиента http который будет отправлять POST
Вот как раз это-то и непонятно. Где можно посмотреть, какие функции в этом можно использовать и как? Желательно на Arduino IDE, но можно и в других системах - для общего понимания.

Спасибо!
 

kab

New member
Вот как раз это-то и непонятно. Где можно посмотреть, какие функции в этом можно использовать и как? Желательно на Arduino IDE, но можно и в других системах - для общего понимания.

Спасибо!
Просматривается еще один вариант реализации SUBJ -через UDP протокол (Udp.read,Udp.send и т. п.). Принципиальных трудностей в этом варианте пока не ощущаю, но оставлю его на вторую очередь. А подход, описанный @Andy Korg в посте Управление ногами ESP <-> ESP пока преобразую в более простую (может быть) задачу. Т. к. ESP у меня только одна ("пока","еще","да и хватит" - выбрать по вкусу), решил что буду пытаться на ней сделать аналог веббраузера(с вебсервером наESP всё очевидно), пытаясь достучаться до, например, http://esp8266.ru - и посмотреть ответ в serial-мониторе. Какие это функции и библиотеки - пока не знаю, но "будем искать".
 

kab

New member
@kab
спасибо
Получить ssl certificate fingerprint of gmail
- взято за основу

Ну вот - и научились (в простейшем варианте) подключаться с вебсерверу, делать запрос, смотреть ответ...
Т. о. вариант @Andy Korg - вполне возможен

Код:
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
const char* ssid  = "--------";   // your network SSID (name of wifi network)
const char* password = "--------"; // your network password
 
WiFiClientSecure client;
 
void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(115200);
  delay(100);
 
  Serial.println("\nAttempting to connect to SSID: ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
 
  // attempt to connect to Wifi network:
  while (WiFi.status() != WL_CONNECTED) {
  Serial.print(".");
  // wait 1 second for re-trying
  delay(1000);
  }
 
  Serial.print("Connected to ");
  Serial.println(ssid);
 
  Serial.println("\nStarting connection to server...");
  if (!client.connect("esp8266.ru", 443))
    Serial.println("Connection failed!");
  else {
  Serial.println("Connected to server!");
  // Make a HTTP request:
 
 client.print(String("GET ") + "/" + " HTTP/1.1\r\n\Host:esp8266.ru\r\n\r\n");
 Serial.println("Request sent");
 int recv;
  while (client.connected()) {  // Wait for the response. 
  recv = client.read();  
  
  if (recv >0)Serial.print(char(recv));// convert from  int to char
  //break;
  }
 
  client.stop();
  }
}
 
void loop() {
  // do nothing
}
 
Сверху Снизу