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

Нужна помощь ESP32 UART<->WiFi мост

kreker

New member
Доброго дня.

Надо реализовать связь с низкой интенсивностью обмена данными между двумя удалёнными контроллерами.

Может кто проверить в работе пример по ссылке?
Заказал пару отладок, но они в пути. И может это вовсе не то, что мне надо.

Работу примера понял так: можно связать два модуля ESP32 по WiFi и отсылать \ принимать данные через UART с обоих концов.

Заблуждаюсь?
 

Алексей.

Active member
Надо реализовать связь с низкой интенсивностью обмена данными между двумя удалёнными контроллерами.
В примере, том что по ссылке, организовано "прозрачное" соединение TCP<->UART
Работу примера понял так: можно связать два модуля ESP32 по WiFi и отсылать \ принимать данные через UART с обоих концов.
В примере реализован только tcp сервер, клиенты там не реализованы, некому исходящее соединение устанавливать.
UART<->TCP<->UART не реализовано, проверять пока нечего.
 

nikolz

Well-known member
Доброго дня.

Надо реализовать связь с низкой интенсивностью обмена данными между двумя удалёнными контроллерами.

Может кто проверить в работе пример по ссылке?
Заказал пару отладок, но они в пути. И может это вовсе не то, что мне надо.

Работу примера понял так: можно связать два модуля ESP32 по WiFi и отсылать \ принимать данные через UART с обоих концов.

Заблуждаюсь?
чтобы не гонять из пустого в порожнее,
давайте уточним задачу.
-----------------------
У вас два контроллера, которые что-то иногда выдают в uart. Верно?
Вопрос куда и ждут ли ответа.
какой формат сообщений
как синхронизируется переда-прием
допускается ли пропуск сообщений
какие контроллеры.
пока все.
 

kreker

New member
@nikolz
>У вас два контроллера, которые что-то иногда выдают в uart. Верно?
Верно.

>Вопрос куда и ждут ли ответа.
Пока не проработано: передал контроллер 1 -> принял контроллер 2 или передал контроллер 2 -> принял контроллер 1. Т.е. прям постоянного обмена не надо.

>какой формат сообщений
В данный момент - его нет.

>допускается ли пропуск сообщений
Не желателен.

>как синхронизируется передача-прием
Пока никак. Самое простое - отправка запроса на передачу и получение разрешение на её осуществление. Нет ответа на запрос или ответ отрицательный - принимаем. Ничего не принято в течении n-ого времени - снова запрос на передачу.
В таком вот сыром виде.

>какие контроллеры
Не важно.

Вообще, надо бы самому делать... Только с ESP32 не знаком.
На одной ESP32 - TCP сервер и чтение \ запись буфера UART.
На другой ESP32 - TCP клиент и чтение \ запись буфера UART.
 

nikolz

Well-known member
@nikolz
>У вас два контроллера, которые что-то иногда выдают в uart. Верно?
Верно.

>Вопрос куда и ждут ли ответа.
Пока не проработано: передал контроллер 1 -> принял контроллер 2 или передал контроллер 2 -> принял контроллер 1. Т.е. прям постоянного обмена не надо.

>какой формат сообщений
В данный момент - его нет.

>допускается ли пропуск сообщений
Не желателен.

>как синхронизируется передача-прием
Пока никак. Самое простое - отправка запроса на передачу и получение разрешение на её осуществление. Нет ответа на запрос или ответ отрицательный - принимаем. Ничего не принято в течении n-ого времени - снова запрос на передачу.
В таком вот сыром виде.

>какие контроллеры
Не важно.

Вообще, надо бы самому делать... Только с ESP32 не знаком.
На одной ESP32 - TCP сервер и чтение \ запись буфера UART.
На другой ESP32 - TCP клиент и чтение \ запись буфера UART.
из ваших ответов следует, что готового решения нет.
Будете делать сами.
Вашу задачу можно решить и на ESP8266 или ESP8285,
так как решение на ESP32 избыточно,
сложнее,дороже и нет преимуществ.
 

nikolz

Well-known member
из своего опыта
я решил бы эту задачу одним из следующих вариантов
1) сообщения от микроконтроллера через UART на ESP8285 и далее широковещание по UDP . кому надо, тот принимает по UDP и далее на UART.
по такому решению могут обмениваться любое число микроконтроллеров.
2) если сообщения не более 512 байт, то вместо широковещательного UDP применил бы ESP-NOW.
------------------
оба решения в инете не найдете.
 

kreker

New member
@nikolz
Подскажите, а может ли приложение использовать встроенную (которой располагает модуль) память этих модулей (ESP8266 или ESP8285, ESP32), чтобы сократить лишние интерфейсы и не устанавливать внешнюю микросхему (организовать передачу UART MCU -> UART ESP?? -> Built-in ?RAM)?
Или лучше писать на внешнюю память?
 

nikolz

Well-known member
@nikolz
Подскажите, а может ли приложение использовать встроенную (которой располагает модуль) память этих модулей (ESP8266 или ESP8285, ESP32), чтобы сократить лишние интерфейсы и не устанавливать внешнюю микросхему (организовать передачу UART MCU -> UART ESP?? -> Built-in ?RAM)?
Или лучше писать на внешнюю память?
если хватит, то лучше использовать внутреннюю память.
у 8266 Есть 40 Кбайт энергозависимой памяти, которая не сохраняется в режиме deep-sleep
примерно 3 Мбайта свободной флеш
и 512 байт RAM RTC - сохраняемой в режиме deep-sleep
у ESP32 еще больше
------------
deep-sleep используется для сокращения энергопотребления. Тоr потребления при этом ESP8266 -20 мка, ESP8285 -10 мка.ESP32<10
 
Сверху Снизу