Связь нескольких ESP8266 WIFI NodeMCU по WIFI каналу

Arkan
Offline
Зарегистрирован: 24.09.2018

Джентльмены! Прошу помощи!

Создаю проект. Основной компанент ESP8266 Node MCU WIFI V3/ Необходимо чтобы все контроллеры были связаны постоянно между собой. Т.е. имели возможность передавать и получать информацию друг от друга мгновенно, без процесса авторизации. Один раз законнектились, , получили данные об авторизации других устройств WIFI сети,запомнили. При установке нового устройства, оно коннектится к ближайшему, автоматически назначает себе имя и пароль, и "входит в семью". Нигде не нашел ничего похожего. Проблема в том, что я инженер. Не программист. 

Если, кто может помочь, помогите, пожалуйста!

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Чтобы жизнь себе и нам упростить - обратись в раздел "Ищу исполнителя". Потому что сказано много букафф, которые сказаны не понимая как далеко слова от реализации.

По сути (если поможет):
1. - "и получать информацию друг от друга мгновенно, без процесса авторизации" - крипта с получением ключа авторизации.
2. - "Один раз законнектились, , получили данные об авторизации других устройств WIFI сети,запомнили." - крипта, с запоминанием ключей.
3. - "При установке нового устройства, оно коннектится к ближайшему, автоматически назначает себе имя и пароль, и "входит в семью"." - крипта, с сочетанием 1 и 2.

b707
Offline
Зарегистрирован: 26.05.2017

Arkan пишет:

При установке нового устройства, оно коннектится к ближайшему, автоматически назначает себе имя и пароль, и "входит в семью". Нигде не нашел ничего похожего.

зачем выдумывать велосипед, если он давно изобретен? У сети WiFi есть имя ("ssid") и пароль. Эти данные одни общие у всех устройств сети. Каждый девайс Wifi. которые знает пароль, может приконнектится к сети и соединится с любым другим участником.

sadman41
Offline
Зарегистрирован: 19.10.2016

mesh он хочет, поди. Чтобы кто-то начуфырил кот, а инженер токо бы заливал и к питанью подсоединял.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

b707 пишет:

Arkan пишет:

При установке нового устройства, оно коннектится к ближайшему, автоматически назначает себе имя и пароль, и "входит в семью". Нигде не нашел ничего похожего.

зачем выдумывать велосипед, если он давно изобретен? У сети WiFi есть имя ("ssid") и пароль. Эти данные одни общие у всех устройств сети. Каждый девайс Wifi. которые знает пароль, может приконнектится к сети и соединится с любым другим участником.

Так задача стоит другая. И только проводами тут не обойтись...

Arkan
Offline
Зарегистрирован: 24.09.2018

Спасибо! Главное, что это в принципе, возможно. Вся проблема в том, что у устройства не будет времени на постоянные проверки. Постараюсь воспользоваться Вашей подсказкой!

Arkan
Offline
Зарегистрирован: 24.09.2018

Спасибо за Ваш ответ!

Очень важно, по возможности, избежать повторных проверок имени и пароля. Буду думать. Дело шаманов не умрет никогда!))

Arkan
Offline
Зарегистрирован: 24.09.2018

Уважаемый. Boom! Возможно я так бы и сделал, лет двадцать назад. Но, увы. Я нынче инвалид армии на Украине. Это, типа, бомжа в Эфиопии. Так, что делаю как могу. Со всем уважением)

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

А чем я Вас, так сказать, обидел? Я высказался согласно поставленной задаче. "Мгновенно" - это тоже такое себе условное значение. Но ключами обменяться куда быстрее логин/пароль вводить, так это точно. Еще и шифрование трафика автоматически подтянуть можно и много других плюшек... И причем тут 20 лет? 20 лет назад никто и не думал о ключах, криптографии и тому подобном. Ну разве что спецслужбы и то только в самом зарождении...

Arkan
Offline
Зарегистрирован: 24.09.2018

 

зачем выдумывать велосипед, если он давно изобретен? У сети WiFi есть имя ("ssid") и пароль. Эти данные одни общие у всех устройств сети. Каждый девайс Wifi. которые знает пароль, может приконнектится к сети и соединится с любым другим участником.

[/quote]

Так задача стоит другая. И только проводами тут не обойтись...

[/quote]

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

Я, действительно, не настолько владею ситуацией, чтобы сходу решить этот вопрос. Но... танки грязи не боятся.)

Arkan
Offline
Зарегистрирован: 24.09.2018

И, в помине не было)

20 лет назад у меня были деньги. И, возможно, я так бы и поступил. Но тогда были другие проблемы. Простите, если не корректно вышло!

inspiritus
Offline
Зарегистрирован: 17.12.2012

Тогда копайте слово Mesh

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Это, похоже, что я всю цитату прокоментил, потому и недопонимание.

По вопросу Вашему еще раз повторю - ключи-ключи-ключи. Найдите и почитайте в гугле статейки по криптографии, шифровании трафика с помощью криптографических ключей и вообще что это такое. Почерпнете много интересной информации и множество вопросов отпадут сами собой. А какие останутся - нужно будет упаковать в емкие вопросы и задать уже их тут. (даже если сочтете в итоге мой подход слишком сложным - почитайте в любом случае).

Для начала: Криптография

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

inspiritus пишет:

Тогда копайте слово Mesh

Ну ТС говорит из любой точки мира (или я фразу не совсем понял, про удаленного физически хз куда), то есть не подходит как бэ...

Arkan
Offline
Зарегистрирован: 24.09.2018

Mesh несколько другая тема. Там я уже копал. Задача не идти с девайсом по длинному коридору, и передаваться от одного модуля другому. А веерно завязать между собой все эти модули, выполняющие другие свои инструкции, не связанные с передачей данных. А так как скорость контрллера далека от скорости света, а задача ждать не хочет, нужно минимизировать все  фоновые процессы. Желательно свести их к нулю. Ну, или близко того.

Еще раз приношу извинение, если Вас расстроил.)

Arkan
Offline
Зарегистрирован: 24.09.2018

Ну ТС говорит из любой точки мира (или я фразу не совсем понял, про удаленного физически хз куда), то есть не подходит как бэ...

Когда я написал "физически",это значит в зоне досягаемости, но не в радиусе действия собственного устройства WiFi

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Arkan пишет:

Ну ТС говорит из любой точки мира (или я фразу не совсем понял, про удаленного физически хз куда), то есть не подходит как бэ...

Когда я написал "физически",это значит в зоне досягаемости, но не в радиусе действия собственного устройства WiFi

Я это понимаю как «из любой точки мира, где есть соединение», к примеру интернет. Если я правильно понимаю, то мое видение решения ещё больше укрепляется. 

Arkan
Offline
Зарегистрирован: 24.09.2018

Спасибо большое за то, что возитесь со мной! Не уверен, что криптография является камнем предкновения. Предкновением является, для меня, во всяком случае, время коннекта меду устройствами, и быстрое переключение их между сервером и клиентом. Я не знаю, работают ли устройства WiFi в дуплексном режиме?

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Камнем преткновения является вообще другое - Вы не можете сформулировать что вам нужно. То одно, то другое всплывает. Давайте представим, что Ваш проект рассекретили и просто расскажите его. Что куда и зачем. Так будет проще и вполне вероятно, что можно обойтись меньшей «кровью»...

Arkan
Offline
Зарегистрирован: 24.09.2018

Я это понимаю как «из любой точки мира, где есть соединение», к примеру интернет. Если я правильно понимаю, то мое видение решения ещё больше укрепляется. 

 

Да, нет. Представьте удаленные друг от друга контроллеры с wifi на расстоянии 7метров друг от друга, при радиусе действия собственного wifi передатчика 10 м. Один из них (первый) подключен к точке доступа интернета (роутеру). Остальные вне досягаемости роутера. Кроме того контроллеры выполняют свои задачи. И при наступлении какого-то условия (у любого из них) они должны передать информацию выбранному другому контроллеру, либо адресовать информацию всем устройствам, либо передать ее в сеть интернета. Аналогично и с получением информации. Примерно так. Если сжато.

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Вы изначально что то не так думаете или понимаете не все. Узлы wi-fi должны подключаться к общей точке доступа, роутеру например. Это обеспечит и связь с другими узлами сети wi-fi и к интернету (если нужно). А вы куда то не туда полезли. 

Arkan
Offline
Зарегистрирован: 24.09.2018

 Давайте представим, что Ваш проект рассекретили и просто расскажите его. Что куда и зачем. Так будет проще и вполне вероятно, что можно обойтись меньшей «кровью»...

 

В 90-м году я передал амер. электр. корпорациям проект разделения устройств сотовой связи на две составляющие: устройства: свч и ср волн. В 93 был анонсирован bluetooth))) Ну, это, к слову))

Arkan
Offline
Зарегистрирован: 24.09.2018

Простите, если, что-то не так говорю. Изначально контроллер WiFi может выступать и в роли Web сервера, и формировать собственную сеть, и в роли Web клиента. И поключаться к точке доступа.

Мне так сдается)

Nosferatu
Offline
Зарегистрирован: 04.11.2012

Думаю, что в вашей "семье" контроллеров должен быть один общий "архивариус", где будут собираться и хранится данные со всех контроллеров.

Arkan
Offline
Зарегистрирован: 24.09.2018

Стандартная схема. Но, мы же легких путей не ищем)) Нужно создать такую себе нейросеть. Где каждый из контроллеров в определенный промежуток времени выступает в роли web сервера, в другой _ web клиента. Причем, в web клиент он переключается автоматически в момент запроса на получение данных от другого контроллера. Интернет, может существовать может нет. Это вторично

Arkan
Offline
Зарегистрирован: 24.09.2018

Спасибо, что были со мной! Обязательно отпишусь, как решу вопрос. С уважением, и остальными атрибутами!..)

Nosferatu
Offline
Зарегистрирован: 04.11.2012

Arkan пишет:

Нужно создать такую себе нейросеть.

Нейронная сеть == самообучающаяся система. По Сеньки шапка?

negavoid
Offline
Зарегистрирован: 09.07.2016

Нейронная сеть - это такой товарищ Новосельцев с мымрой, и делает она то же самое - считает статистику, всё, точка. А то, что вам нужно, о изобретатель блютуса :) - это mesh сеть, как выше вам уже и сказали.

Arkan
Offline
Зарегистрирован: 24.09.2018

Благодарю за дельное предложение! Обязательно извещу о том, что получилось)

Arkan
Offline
Зарегистрирован: 24.09.2018

Владимир Ульянов (Ленин) утверждал, что страной может управлять любая кухарка. И не ошибся. А вы сомневаетесь в управлении нейросетью))) Все будет ок!)

Nosferatu
Offline
Зарегистрирован: 04.11.2012

Arkan пишет:

Владимир Ульянов (Ленин) утверждал, что страной может управлять любая кухарка.

Ульянов такого не утверждал кстати.

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

 

Arkan
Offline
Зарегистрирован: 24.09.2018

Практика показала, что способны! К сожалению.

Однако, ближе к теме.) 

1 задача: Как создать условие, при котором вновь устанавливаемому устройству при первом его включении, близлежащее устройство присваивало уникальный номер в сети, SSID и password?

sadman41
Offline
Зарегистрирован: 19.10.2016

Что Вы подразумеваете под вопросом "как"? 

Для большинства здесь присутствующих данный вопрос эквивалентен следующему: "Как сделать крыльцо у дома?" или "Как сделать пирог?" Вот у Вас есть ответы на такие вопросы?

Nosferatu
Offline
Зарегистрирован: 04.11.2012

Уникальный идентификатор в сети это IP и\или MAC адрес.

mixail844
Offline
Зарегистрирован: 30.04.2012

ТС, вы можете схематично нарисовать и описать какие проблемы будет решать желаемый вами результат?
Например, вот сеть, в ней 4 узла(схема расположения узлов), вот один из узлов выходит из строя, нужно что бы сеть в этом случае поступила "так и так", вот мы решили добавить новый узел, нужно что бы он отвечал требованиям 1,2,3..вот мы удалили узел, сеть поступит "так и так", то есть как данные будут обходить не существующий узел, или что делать с данными которые предназначалиь удалённому узлу?
Когда сеть функционирует нормально, по ней могут пересылаться пакеты данных "такие-то“.
Возможны допущения сети, например, не все узлы обязаны уметь выходить в Интернет, но могут отправлять данные в глобальную сеть, через узлы которые могут.(как сеть поступить, когла узел который имел доступ в Интернет, вышел из строя/ был удалён : назначит новый узел для выхода в интернет(если такой есть, но небыл для этого использован)) или прекратит попытки достучаться до кого-то через инет?
Лишь некоторые узлы имеют право инициализировать отправку данных а не все, остальные только слушают.

Arkan
Offline
Зарегистрирован: 24.09.2018

mixail844Спасибо большое за подсказку!

Что-то написал на целую странницу. Удалил. Поставраюсь в двух словах.

Есть первое подключаемое устройство "А". Кроме сетевых, устройство выполняет еще ряд других (технических) функций (считает, управляет, и т.д.). При подключении, оно  сканирует эфир на предмет поиска других wifi устройств. Нпример оно нашло три сети. Одна из которых хранится в программе, и которой оно подключилось. это роутер. После подключения, устройство отключается от роутера и дает запрос на поиск "родственных сетей". Ответа нет. Устройство записывает видимые сети в список игнорируемых. И присваивает себе SSID, Ip, Мас и pass. Не найдя других аналогичных устройств, Создает собственную сеть. Подключается следующее устройство "Б"с аналогичными функциями. И здесь, первая проблема. Для меня важно, чтобы имя (IP и Mac adress) ему присвоил не маршрутизатор (роутер), а первое устройство "А". Оно должно создать из "Б" новую точку доступа. Кроме этого, первое устройство должно присвоить ему SSID и сгенерировать пароль. После чего они должны (не могу подыскать производную от "сопряжение") законнектиться. Теперь у нас образовалось две сети с двумя серверами. И, вот, второй вопрос: При наступлении определенных условий, "А" и "Б" должны иметь возможность менять учетные данные друг друга. Так же они должны  иметь возможность обмениваться информацией друг с другом, и выходить в интернет, создавая сквозное подключение.

Arkan
Offline
Зарегистрирован: 24.09.2018

Признаю Вашу правоту. "Как" неуместное слово.) Хотя, я с удовольствием мог бы рассказать, как, к примеру, разобрать компьютер. Т.е. опишу последовательность действий. ))

Arkan
Offline
Зарегистрирован: 24.09.2018

С этим не поспоришь))

sadman41
Offline
Зарегистрирован: 19.10.2016

Сидит человек на лавочке, пиво пьет. Видит - идет кто-то. Окликнул: мужик, триписят есть? Не отвечают ему. "Ну, раз так, запомнил я тебя" - говорит человек незнакомцу и меняет себе паспорт, имя и лицо. Опять сидит... Через какое-то время откликнулся прохожий и получил тоже новый паспорт, лицо, имя. Третьему так же досталось. Потом первый взял и уснул - сколько же можно пить-то? Тут взошла луна и двое оставшихся как начали менять друг другу паспорта и лица... Только эфир потрескивает от напряжения. Проснулся первый, смотрит и не понимает - кто тут рядом с ним. Вроде как пил с одними, а сейчас черти вокруг скачут и документами свежевыправленным машут. Заорал: "да кто вы, б..дь, такие-то?!"

А тут уже и скорая психиатрическая приветливо двери открыла, да руками санитаров его укладывает на белые простыни. И санитары эти со старыми лицами и без документов вовсе. Непорядок.

Arkan
Offline
Зарегистрирован: 24.09.2018

BOOM пишет:

Вы изначально что то не так думаете или понимаете не все. Узлы wi-fi должны подключаться к общей точке доступа, роутеру например. Это обеспечит и связь с другими узлами сети wi-fi и к интернету (если нужно). А вы куда то не туда полезли. 

Уважаемый BOOM, это вы изначально, что-то не так думаете. WiFi  это лишь способ передачи информации по радиоканалу. Радиопередатчик. И все А куда вы посредством него подключитесь, дело вашего вкуса.

Arkan
Offline
Зарегистрирован: 24.09.2018

"Тебе бы  книжки писать, начальник" -- недословная цитата из кф "Место встречи изменить нельзя".

Все вы правильно написали. Если бы мужики меняли себе паспорта и лица по своему усмотрению. И именно для того, чтобы не было таких ситуаций и нужно создать те функции, о которых я говорю. Я же не спрашиваю, дай триписят. Я говорю о том. что нужно сделать. Если вы считаете, что нельзя, не стоит придумывать притчи, извращающие то, о чем никто не писал. Сам себе надумал. Сам себе ответил. Если можно сделать, напишите "можно", А если не знаете, не пишите ничего.

mixail844
Offline
Зарегистрирован: 30.04.2012

Arkan пишет:

При подключении, оно  сканирует эфир на предмет поиска других wifi устройств. Нпример оно нашло три сети. Одна из которых хранится в программе, и которой оно подключилось. это роутер. После подключения, устройство отключается от роутера и дает запрос на поиск "родственных сетей". Ответа нет. Устройство записывает видимые сети в список игнорируемых. И присваивает себе SSID, Ip, Мас и pass. Не найдя других аналогичных устройств, Создает собственную сеть. Подключается следующее устройство "Б"с аналогичными функциями. И здесь, первая проблема. Для меня важно, чтобы имя (IP и Mac adress) ему присвоил не маршрутизатор (роутер), а первое устройство "А". Оно должно создать из "Б" новую точку доступа. Кроме этого, первое устройство должно присвоить ему SSID и сгенерировать пароль. После чего они должны (не могу подыскать производную от "сопряжение") законнектиться. Теперь у нас образовалось две сети с двумя серверами. И, вот, второй вопрос: При наступлении определенных условий, "А" и "Б" должны иметь возможность менять учетные данные друг друга. Так же они должны  иметь возможность обмениваться информацией друг с другом, и выходить в интернет, создавая сквозное подключение.

 

вы описываете решение ,а не здачу котоую пытаетесь решить и решение выглядит сложноватым.
понимаете , сетевую модель OSI разработали в 70-80ых годах, и с тех пор она отвечает большинству самым извращенным потребностям сети. так что я пытаюсь понять какую прикладную задачу вы пытаетесь решить (не "как?" ,а "что?") 
после описания здачи будет ясно что можно и нужно возложить на существующие инструменты (маршрутизация пакетов,авторизация ) а что допиливать самому 
sadman41
Offline
Зарегистрирован: 19.10.2016

Arkan пишет:

Если можно сделать, напишите "можно", А если не знаете, не пишите ничего.

Коли сумеете заинтересовать разработчиков уровня Mikrotik (хотя бы), то теоретически можно. А в других случаях описание данного прожекта можно сразу на полку фантастической литературы ставить, а затем переслушивать композиции группы Ноль. "Человек и кошка", например, хорошо подойдёт.

Logik
Offline
Зарегистрирован: 05.08.2014

//вы описываете решение ,а не здачу

Да.

Arkan, прочитайте http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov#comment-406523 п.1 , а заодно и остальные. Не надо про WiFi SSID, Ip, Мас и pass 

Про задачи того или иного устройства не обязательно знать, но бывает неприятно узнать посреди обсуждения что там 4к видео крутить нужно, или пинг 0,2мсек требуется. Так что лучше писать.

Подход при котором WiFi устройство при не обнаружении нужной точки доступа само становится точкой доступа с заранее известными атрибутами доступа хорошо известен, вам похоже нечто подобное нужно.

astwo
Offline
Зарегистрирован: 10.07.2019

Вот ТС утверждает что он ветеран армии (правда ВСУ). Теперь вопрос на засыпку : как организована эта армия и что из толпы народу делает армию как эффективный инструмент для решения этих вопросов. Теперь почему я это привёл. Если из группы отдельных элементов ТС не может организовать сеть подобной армии, то объяснять ему бессмысленно. Всё равно выйдет инструмент для высасывания денег из населения.

Logik
Offline
Зарегистрирован: 05.08.2014

А не могли бы Вы бред про армию, и высасывание денег в другом месте излагать?

sadman41
Offline
Зарегистрирован: 19.10.2016

В данном случае устройству мало стать точкой доступа, нужно ещё как-то искать "родственные сети" (по какому признаку они родственные - вообще никому неизвестно) и изображать из себя RIP-ноду, как минимум. Ну и всяких ещё штучек-дрючек с три короба.

Вопрос же "как сделать условие" сразу закрывает все вопросы по реальности реализации данного прожекта силами топикстартера. И это заключение вовсе не оскорбление - я тоже не затащил бы. А тратить время на глубочайшее изучение ресурсных возможностей ESP SDK для того, чтобы убедиться, что разработка займёт года три, если вообще реальна - желания не имею.

Было бы так всё просто - устройства от SonOFF давно бы уже по дому бегали стаей и мышей ловили.

astwo
Offline
Зарегистрирован: 10.07.2019

Logik пишет:

А не могли бы Вы бред про армию, и высасывание денег в другом месте излагать?


Если нет понимания то в любом деле это высасывания и денег и времени. А армия это и есть высочайший продукт цивилизации. Вот только армия мирного времени это скорее деградация. И да армия это организация и связь. То что надо для создания эффективных сетей. Вспомните с чего начался интернет - с военной разработки. :)

Logik
Offline
Зарегистрирован: 05.08.2014

ТО  sadman41

согласен кроме " глубочайшее изучение ресурсных возможностей ESP" тут как раз все довольно ясно. 

Не ясно с постановкой задачи. В терминах "всегда", "мгновенно" и "само" это не возможно. Нужно грамотно наложить ограничения. А так при отсутствии АР один из группы "центальных" (которые видит вся сеть) сам становится АР. Это по требованию "Необходимо чтобы все контроллеры были связаны постоянно между собой." Понятно что исчезновение АР и подхват его другим устройством даст разрыв, т.е. не совсем постоянно. Ну и плюс куча мелочей ;)

 

Logik
Offline
Зарегистрирован: 05.08.2014

astwo пишет:
Если нет понимания...

Если нет понимания, что тут это злосный флуд, то о чем  с дибилом  разговариват? Исчезни бля... 

astwo
Offline
Зарегистрирован: 10.07.2019

sadman41, вы будете удивлены но надо начинать с организации на низовом уровне. То есть найти соседа и организовать связь. Найти группу соседей и организовать ячейку, потом найти ответственного и организовать ответсенного по дому, к которому стекает я информация и который формирует коллективный запрос в жек или другие органы.