• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Вопрос Прямая передача данных между ESP8266

SerЫй

New member
Есть сейчас два модуля 8266.
Первый работает как базовая станция, снимает параметры с датчиков по проводам, отображает их на дисплее, отправляет на сайт статистики и в зависимости от данных отправляет сигналы управления исполняющему устройству на втором модуле.
Второй модуль работает как типичная "умная розетка" с веб интерфейсом (веб сервер).

Оба модуля подключаются к роутеру и данными обмениваются через него. Возникло несколько задач:
1. Добавить веб интерфейс первому модулю, в котором будет содержаться параметры всех датчиков в системе, состояние всех "розеток" и их ручное управление. Это не проблема.
2. Роутер теперь должен учавствовать только в передаче данных на сайт статистики и отображением веб странички первого модуля. То есть сделать передачу данных второму (исполняющему) модулю напрямую, без роутера. Веб интерфейс "умной розетке" становится уже не нужен.
3. Добавить третий модуль - второй (уже беспроводной) датчик, который также должен без подключения к роутеру отправлять данные на базовую станцию (первый модуль).
4. Добавить четвертый модуль - еще одну "розетку".

Не могу придумать кто из них будет клиент кто сервер, как отправлять запросы. Вроде задачи простые, но я запутался..
 

CodeNameHawk

Moderator
Команда форума
Лист бумаги, карандаш - рисуешь кто к кому может подключаться.
К кому больше всего подключений тот и может быть сервером.
Сервер тот, который включен постоянно.
Данные на сайт может отправлять любой из модулей, если подключение через роутер.

Если управлять чем то важным (нп. котлом), то передачу данных доверить ESP, а всю работу делать на независимом проце.
 
Последнее редактирование:

SerЫй

New member
Как это все будет выглядеть я уже давно нарисовал и представляю как это будет работать, и в голове и на листочке и картинку..
Включено будет все постоянно, питание от сети.
Подключений, конечно же, будет больше всего к базовой станции.
Данные на сайт, как и подключение к роутеру будет осуществлять только базовая станция.
Управление не котлом, по аппаратной части вообще вопросов нет. Только по алгоритму и коду.

Схема в итоге будет такая:
wifi.png

Работа модуля базовой станции предполагается в режиме и точки доступа и станции.
Код:
// Base Station code
#include <ESP8266WiFi.h>
WiFi.mode(WIFI_AP_STA);
WiFi.softAP("SSID", "password");
Далее все датчики и реле подключаются к ней и находятся всегда онлайн.
Код:
// Sensors and Relays code
#include <ESP8266WiFi.h>
WiFi.begin(SSID, password);
Из-за асинхронности системы логичнее будет отправлять запросы базовой станцией поочередно к датчикам и реле на получение или отправку данных. Вот собственно вопрос как и в каком виде лучше отправлять эти запросы?

Если для датчика брать за основу принцип веб сервера, как у "умной розетки", то ответ от сервера отправляется исключительно в текстовом виде, по мне так это выглядит криво для отправки пары чисел в формате float.
server.send ( 200, "text/html", "строка..." ); или server.send ( 200, "text/plain", "строка..." );
да и не нужен веб сервер на модуле датчика/реле, веб интерфейс ведь не нужен..
 
Последнее редактирование:

086dx66

Member
mqtt интересная тема
правда появляется промежуточное звено в виде mqtt брокера
если типа умный дом делаешь -смотри majordomo. на ютубе были ролики по настройке
а то что ты сейчас делаешь при небольшом развития хотелок - переделывать все придется (пройденный этап уже :) )

>то передачу данных доверить ESP, а всю работу делать на независимом проце
это про то что есп может висануть в самый неподходящий момент

> ответ от сервера
может быть любым,поиграйс статусами, тогда текст вообще можно не отправлять
ты можешь решить что например статус 201 означает вкл розетку
202 выкл и т.д.

и это глянь
Нужна помощь - Передача данных с одной ESP на другую ESP
через сокеты еще можно
 
Последнее редактирование:

Nickson

New member
Добрый день!
Подскажите пожалуйста, как следует настроить 8266 чтобы организовать обмен данными по UDP как на схеме: Множественными подключениями?

 

tretyakov_sa

Moderator
Команда форума
Добрый день!
Подскажите пожалуйста, как следует настроить 8266 чтобы организовать обмен данными по UDP как на схеме: Множественными подключениями?

Не совсем ясно что вы нарисовали? Если три esp подключить к роутеру, то в сети будет возможность гонять UDP пакеты между любыми точками сети в любом направлении. Или это у вас на рисунке Wi-Fi соединения. Задачу опишите точнее.
 

Nickson

New member
Не совсем ясно что вы нарисовали? Если три esp подключить к роутеру, то в сети будет возможность гонять UDP пакеты между любыми точками сети в любом направлении. Или это у вас на рисунке Wi-Fi соединения. Задачу опишите точнее.
да, стрелки это соединения, или направления пакетов. хотелось бы организовать передачу широковещательных сообщений между идентичными устройствами
 
Сверху Снизу