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

Сквозной УАРТ мост между двумя модулями. КАК????

Geraldot

New member
Привет!
Помогите решить эту задачу.
Я не умею кодить, но умею заливать прошивки. Много изучал разных проектов но так и не нашел ни одного, который может легко обеспечить передачу данных в обе стороны как по обычному проводу, именно между двумя отдельными модулями, так что бы с двух сторон их можно было подключать как УАРТ.

Может есть готовые, нормально документированные прошивки?
 

comphelptiras

New member
Добрый!. Тоже хотел бы сделать беспроводной шнурок для подключения к мозгам ГБО на авто.
 

aZholtikov

Active member
Привет!
Помогите решить эту задачу.
Я не умею кодить, но умею заливать прошивки. Много изучал разных проектов но так и не нашел ни одного, который может легко обеспечить передачу данных в обе стороны как по обычному проводу, именно между двумя отдельными модулями, так что бы с двух сторон их можно было подключать как УАРТ.

Может есть готовые, нормально документированные прошивки?
Порекомендую парочку постов:
 

Geraldot

New member
Порекомендую парочку постов:
Похоже совсем не по теме.
Вопрос о том как настроить два 8266 в качестве беспроводного УАРТ удлинителя.
 

aloika

Active member
Похоже совсем не по теме.
Вопрос о том как настроить два 8266 в качестве беспроводного УАРТ удлинителя.
Зачем вам 8266-то. Возьмите два телинка (tlsr8253, например), сделайте один мастером, другой слейвом и организуйте UART-BLE / BLE-UART "переходники".
Но надо писать прошивки, готовых нет.
 

Geraldot

New member
tlsr8253не подходит - там ЮСБ, а не УАРТ. И БЛЕ не подходит по параметрам. И прошивок нет.

Под 8266 наверняка есть готовое решение.
 

aloika

Active member
tlsr8253не подходит - там ЮСБ, а не УАРТ. И БЛЕ не подходит по параметрам. И прошивок нет.

Под 8266 наверняка есть готовое решение.
Готовое решение - вряд ли. Телинк подходит гораздо лучше по многим критериям. ESP8266 вообще не стоит использовать в новых разработках. А в старых - уходить с нее скорее.
 

Geraldot

New member
Хотелось бы предложить перечитать мой первый пост.

Я точно знаю, что люди делают и все работает на 8266 , и ничего писать для этого не надо.
Предлагать варианты из разряда полностью абсурдных, вряд ли имеет смысл.
 

aZholtikov

Active member
Похоже совсем не по теме.
Вопрос о том как настроить два 8266 в качестве беспроводного УАРТ удлинителя.
Ступил... :)

Ну а как удлинитель еще проще (по моему). ESP-NOW для связи напрямую между 8266. ESP-NOW что от UART получил, то и передал (без обработки). На втором обратная ситуация. Прошивка на 20 строк (шучу конечно, но небольшая).

З.Ы. Зря хаите 8266 (не лично, а в общем по теме). Очень дешевая и сильная "машинка". У меня на них весь дом "стоит". Безотказно и уже долго.
 

aZholtikov

Active member
Хотелось бы предложить перечитать мой первый пост.

Я точно знаю, что люди делают и все работает на 8266 , и ничего писать для этого не надо.
Предлагать варианты из разряда полностью абсурдных, вряд ли имеет смысл.
Если известен протокол обмена по UART (начальные и конечные байты, возможно длина сообщения) - пришлите. "Сговнякаю" прошивку. :)
 

Geraldot

New member
Хотелось бы гонять разные протоколы. Объясните пожалуйста, почему необходимо привязываться к одному конкретному протоколу?
 

aZholtikov

Active member
Хотелось бы гонять разные протоколы. Объясните пожалуйста, почему необходимо привязываться к одному конкретному протоколу?
С протоколом просто легче и прошивка меньше (возможно). В любом случае меня самого заинтересовала эта тема. Я думаю на днях напишу прошивку и пришлю.
 

aZholtikov

Active member
Хотелось бы предложить перечитать мой первый пост.

Я точно знаю, что люди делают и все работает на 8266 , и ничего писать для этого не надо.
Предлагать варианты из разряда полностью абсурдных, вряд ли имеет смысл.
Прошивка ниже и в приложенном файле (написана в VSCode и проверена на "железе" - фсё работает ;-) ).
Так как точно не известны протоколы, скорости и размеры - нет защиты от переполнения буфера. Но возможно и не понадобится...
Дальность связи примерно 10-15 метров "в поле". Надеюсь хватит. :)
Постарался максимально откомментировать.

#include "arduino.h"
#include "espnow.h"
#include "user_interface.h"

byte targetMAC[6]{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}; // Лучше изменить на MAC второго ESP, но можно оставить и так.
char buffer[128]{0}; // Буфер данных из UART. 128 байт ограничение "железного" буфера ESP.
int counter{0}; // Счетчик принятых по UART байт в каждой сессии.

void IRAM_ATTR onDataReceive(byte *mac, byte *data, byte len) // При поступлении пакета через ESP-NOW:
{
Serial.write(data, len); // Загоняем его без обработки в UART.
}

void setup()
{
Serial.begin(115200); // Выставить необходимую скорость.
wifi_set_opmode(STATION_MODE); // Настройки ESP-NOW. Менять не требуется.
esp_now_init(); // Настройки ESP-NOW. Менять не требуется.
esp_now_set_self_role(ESP_NOW_ROLE_COMBO); // Настройки ESP-NOW. Менять не требуется.
esp_now_register_recv_cb(onDataReceive); // Настройки ESP-NOW. Менять не требуется.
}

void loop()
{
while (Serial.available() > 0) // Если и пока поступают данные по UART крутим этот цикл:
{
char temp[1]; // Временная переменная для принятого байта.
Serial.readBytes(temp, 1); // Читаем байт из UART.
buffer[counter++] = temp[0]; // Добавляем его в буфер.
}
if (!counter) // Если нет принятых данных:
return; // Начинаем loop с начала.
esp_now_send(targetMAC, (byte *)&buffer, counter); // Отправляем пакет через ESP-NOW.
os_memset(&buffer, 0, sizeof(buffer)); // Обнуляем буфер.
counter = 0; // Обнуляем счетчик.
}
 

Вложения

Geraldot

New member
Спасибо большое, постараюсь ближайшее время потестить.
С чем связана такая маленькая дальность? Я думал эти модули могут работать гораздо дальше?

для 8285 эта прошивка тоже подходит? У меня сейчас только они есть.
 

aZholtikov

Active member
Спасибо большое, постараюсь ближайшее время потестить.
С чем связана такая маленькая дальность? Я думал эти модули могут работать гораздо дальше?

для 8285 эта прошивка тоже подходит? У меня сейчас только они есть.
Для 8285 подходит. По дальности - чисто экспериментально на даче. Участок 6 соток. 2 8266 по диагонали. Связь периодически отваливалась. Но это в N режиме. Он по умолчанию.

Можно поставить или B или G. Добавить в setup wifi_set_phy_mode(PHY_MODE_11B); или wifi_set_phy_mode(PHY_MODE_11G);

Подробно здесь:

Sets WiFi physical mode.

  • wifi.PHYMODE_B 802.11b, more range, low Transfer rate, more current draw
  • wifi.PHYMODE_G 802.11g, medium range, medium transfer rate, medium current draw
  • wifi.PHYMODE_N 802.11n, least range, fast transfer rate, least current draw (STATION ONLY) Information from the Espressif datasheet v4.3
ParametersTypical Power Usage
Tx 802.11b, CCK 11Mbps, P OUT=+17dBm170 mA
Tx 802.11g, OFDM 54Mbps, P OUT =+15dBm140 mA
Tx 802.11n, MCS7 65Mbps, P OUT =+13dBm120 mA
Rx 802.11b, 1024 bytes packet length, -80dBm50 mA
Rx 802.11g, 1024 bytes packet length, -70dBm56 mA
Rx 802.11n, 1024 bytes packet length, -65dBm56 mA
 

Geraldot

New member
Спасибо за подробное объяснение! Подберу оптимальный.

Основные протоколы которые предполагается использовать называются crsf, Mavlink.
 
Сверху Снизу