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

Соединение двух микроконтроллеров при помощи ESP8266.

jenya7

Member
Я хочу подсоеденить к каждому микроконтролеру модуль ESP8266 и посылать данные между ними. Управлять хочу AT командами. Может у кого нибудь есть пример как это сделать?
 

russo

Member
Лучше это сделать на радиомодулях,
например
si4432
CC1101
nrlf2401
и т.д.

SI4432 самые дальнобойные.
 

Atom

Member
Я хочу подсоеденить к каждому микроконтролеру модуль ESP8266 и посылать данные между ними. Управлять хочу AT командами. Может у кого нибудь есть пример как это сделать?
Можно, но сложно получится.
Взаимодействие между микроконтроллером и радиомодулем проходит асинхронно. Поэтому вам нужно писать для микроконтроллера программу так, чтоб анализировать получение ответов от радио в динамическом режиме (всвязи с ограниченностью ресурсов).

Но нет ничего невыполнимого.
 

jenya7

Member
Можно, но сложно получится.
Взаимодействие между микроконтроллером и радиомодулем проходит асинхронно. Поэтому вам нужно писать для микроконтроллера программу так, чтоб анализировать получение ответов от радио в динамическом режиме (всвязи с ограниченностью ресурсов).

Но нет ничего невыполнимого.
Ну программу написать не проблема. Меня интересует как сконфигурировать модули.
 

Atom

Member
Ну программу написать не проблема. Меня интересует как сконфигурировать модули.
Если используется своя локальная сеть с внешним рутером, то тут все просто итпонятно.

Если рутера нет, то один должен быть сидом, другой подключаемый к нему.

По способу обмена инфы - один из них клиент, другой сервер. Либо каждый модуль и клиент и сервер.
 

jenya7

Member
Если используется своя локальная сеть с внешним рутером, то тут все просто итпонятно.

Если рутера нет, то один должен быть сидом, другой подключаемый к нему.

По способу обмена инфы - один из них клиент, другой сервер. Либо каждый модуль и клиент и сервер.
Если у нас конфигурация CLIENT-SERVER - могут ли они обмениваться информацией в обе стороны? Это полу-дуплекс получается?
 

Atom

Member
Если у нас конфигурация CLIENT-SERVER - могут ли они обмениваться информацией в обе стороны? Это полу-дуплекс получается?
Клиент-сервер означает, что сервер все время слушает возможных клиентов и только принимает от них данные и отвечает на запросы. Клиент никого не слушает, он как бы независим - ему нужно оформить запрос к серверу и получить ответ от него.

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

jenya7

Member
Клиент-сервер означает, что сервер все время слушает возможных клиентов и только принимает от них данные и отвечает на запросы. Клиент никого не слушает, он как бы независим - ему нужно оформить запрос к серверу и получить ответ от него.

К режимам обмена данных это не имеет никакого значения. Вы можете послать запрос серверу по одному порту и получить ответ по другому. Но соединение этих двух портов обязан устанавливать клиент.
А если у меня контроллер опрашивает датчики - он сервер а датчики клиенты?
 

Atom

Member
А если у меня контроллер опрашивает датчики - он сервер а датчики клиенты?
И ? Имеет различие, делает он это в дуплексно или полудуплексном режиме?

или в шем подколка? сервер опрашивает клиентов? тогда они не клиенты, а серверы и обязаны слушать заранее выделенный порт.
 

jenya7

Member
И ? Имеет различие, делает он это в дуплексно или полудуплексном режиме?

или в шем подколка? сервер опрашивает клиентов? тогда они не клиенты, а серверы и обязаны слушать заранее выделенный порт.
Алгоритм такой - центральный контроллер обращается к периферийным контроллерам на которых установлены датчики. Центральный контроллер опрашивает периферийные по очереди. Как мне в таком случае сконфигурировать центральный и переферийные контроллеры?
 

planar74

New member
@jenya7
1. Можно через WebSockets попробовать. Тогда клиенты повиснут на сервере центрального контроллера и нормально получат от него запросы.
2. Через MQTT брокера. Клиенты вешаются слушать на канале запроса, сервер слушает на канале ответа. При отправке сообщения клиенты публикуются в канал ответа и сервер все собирает.
 

jenya7

Member
@jenya7
1. Можно через WebSockets попробовать. Тогда клиенты повиснут на сервере центрального контроллера и нормально получат от него запросы.
2. Через MQTT брокера. Клиенты вешаются слушать на канале запроса, сервер слушает на канале ответа. При отправке сообщения клиенты публикуются в канал ответа и сервер все собирает.
Я так понимаю что это возможно когда есть интернет. У меня общение между модулями напрямую, посредством AT команд которые выдают контроллеры.
 

Alex_82

New member
Вообще не понятна суть проблемы. Вроде все просто как тапочек.
Вариант 1 - все на прямую без роутера
1- делаете AP на одном из устройств. Не важно это датчик или опросник (девайс который опрашивает датчики и/или слушает их).
2 - подымаете TCP сервер на опроснике
3 - запускаете на датчиках клиенты и сливаете инфу. И придумайте логику общения.

Вариант 2 - Есть роутер
1- подключаете всех в сеть как клиенты сети
и пункты 2 и 3 те же.

Еще надо настроить IP, ведь вы не хотите сканировать сеть при каждом включении устройства.
 

jenya7

Member
Вообще не понятна суть проблемы. Вроде все просто как тапочек.
Вариант 1 - все на прямую без роутера
1- делаете AP на одном из устройств. Не важно это датчик или опросник (девайс который опрашивает датчики и/или слушает их).
2 - подымаете TCP сервер на опроснике
3 - запускаете на датчиках клиенты и сливаете инфу. И придумайте логику общения.

Вариант 2 - Есть роутер
1- подключаете всех в сеть как клиенты сети
и пункты 2 и 3 те же.

Еще надо настроить IP, ведь вы не хотите сканировать сеть при каждом включении устройства.
Спасибо.
 

AlVal

New member
Пример соединения двух ESP8266 (ESP-01) с помощью AT-команд, и последующим обменом данными.
ESP8266.png
В примере устройства называются "ESP01" и "ESP02".
Настройка начинается после сброса обоих устройств.
IP адрес того устройства, которое будет сервером: 192.168.4.1 Если адрес другой, то соответственно его и указывать в команде AT+CIPSTART.
При обмене отправляется избыточное количество символов, чтоб проиллюстрировать как лишние данные отсекаются.
 

jenya7

Member
Пример соединения двух ESP8266 (ESP-01) с помощью AT-команд, и последующим обменом данными.
В примере устройства называются "ESP01" и "ESP02".
Настройка начинается после сброса обоих устройств.
IP адрес того устройства, которое будет сервером: 192.168.4.1 Если адрес другой, то соответственно его и указывать в команде AT+CIPSTART.
При обмене отправляется избыточное количество символов, чтоб проиллюстрировать как лишние данные отсекаются.
Большое спасибо.
 
Сверху Снизу