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