Сеть из ESP-8266

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Кто может видел как реализовать сеть из ESP

Тоесть - одна ESP опрашивает другие (штук 10 к примеру)

Тоесть главная ESP кидает запрос - (тут уже вопрос или по IP или по MAC) - те отвечают как у них зашито.

Всё что пока нашел это бесполезные видео и всякие серверы...

Но одно но. Главная ESP еще должна быть одновременно и клиентом - тоесть к ней чтобы с браузера например обратиться..

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

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

MaksMS
Offline
Зарегистрирован: 11.03.2013

Имется ввиду одна ESP и к ней подключаются напрямую без роутера остальные ESP ? Тут будет облом - к одной ESP максиум подключений возможно не более 4, а никак 10.

Если знаний по программированию маловато, то можно воспользоваться готовым проектом https://wifi-iot.com/ , где реализован опрос одной ESP других ESP.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Немного переформулирую. 

Есть ESP8266 и несколько других с датчиками и т.п.

Одна работает как вебсервер и наверное как  AP (на ней микроCD с HTML) и она должна опрашивать другие которые типа модулей (соответственно отвечать)

Будет ли главная подключаться к маршрутизатору например(для вывода в голобульную сеть) незнаю.

Просто какие существуют варианты - нигде нет нормальных описаний... А изучать все библиотеки и т.п. как то многовато.

MaksMS
Offline
Зарегистрирован: 11.03.2013

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

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

MaksMS пишет:

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

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

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

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Теоретически - можно, но есть нюансы:

1. На одной ESP надо поднимать AP;

2. ESP-клиенты должны знать, куда коннектится;

3. Кол-во слотов для коннекта - 4 максимум, надо на клиентах разруливать ситуацию с неудачным коннектом;

То есть алгоритмически всё как бы просто: ESP-клиент коннектится к ESP-серверу, и инициирует обмен инфой. ESP-сервер делает, что надо. Различать, запросили из браузера или с другого ESP - да тупо по виду запроса.

Если же нужна полноценная самонастраивающаяся сеть - это вопрос намного сложнее, но тоже реализуем: сканирование сети, попытка коннекта и обмена информацией, при успешнмо коннекте - поддержание локального пула адресов в сети, при обмене информацией - обмен новыми адресами в сети. P2P, в общем, вполне реализуемо, только секса много.

nevkon
Offline
Зарегистрирован: 20.01.2015

А если реализовать задачу в обратном направлении: на ESP с датчиками будет поднят АР, а сервер будет подключаться поочередно к каждому и запрашивать данные. Если подключение неудачно, то датчик в ауте. Будут правда большие проблемы с эфиром :), но зато нет ограничения на количество подключений. Так же и на внешний коннект проще будет перейти - просто указал нужный АР и передал данные.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

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

Вот и смотрю все варианты. Уже подумываю одну задачу снять - заменить езенрет шилдом (тоесть что главная будет с шилдом и он уже будет вещать в интернет..)

Тоесть оставить только одну точку и к ней пусть конектятся модули.. А вот как их различать и опрашивать по очереди???

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

p.masyukov пишет:

Тоесть оставить только одну точку и к ней пусть конектятся модули.. А вот как их различать и опрашивать по очереди???

Что значит - как? Вариантов - вагон и тележка. Раз мы решили, что модули сами будут коннектиться к точку доступа, в роли которой также выступает ESP, то:

1. При успешном коннекте модуля к AP он отсылает пакет со своим идентификатором, если идентификатора не выдано - то вместо него строка с нулями, например;

2. AP смотрит - есть идентификатор? Нет - выдаём, запоминаем у себя. Есть - проверяем, есть ли он у нас? Если нет - запоминаем у себя. В обратку клиенту выдаём пакет с ответом, содержащим идентификатор;

3. Клиент сохраняет идентификатор у себя.

Т.е. любой сеанс связи начинается с обмена пакетами идентификаторов. А опрашивать по очереди, если мы говорим в терминах "одна AP - много клиентов" - не совсем правильно: клиенты сами коннектятся к AP, когда надо. И должны сами разруливать невозможность соединения (например, когда все 4 слота AP сейчас заняты).

Или я опять чего не понял в постановке вопроса?

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

Насчет вагон и тележка -вот и попробуй найти иголку в стоге...

А вот - "Т.е. любой сеанс связи начинается с обмена пакетами идентификаторов. А опрашивать по очереди, если мы говорим в терминах "одна AP - много клиентов" - не совсем правильно: клиенты сами коннектятся к AP, когда надо. И должны сами разруливать невозможность соединения (например, когда все 4 слота AP сейчас заняты)."

Вот это и надо походу!

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

Ещеб найти как езернет к есп прилепить, вообще былоб всё самое то.

Ладно буду разбираться потихоньку.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Ещё вспомнилось, что можно на UDP попробовать построить общение, в принципе ;) Там проще, без подтверждения доставки, броадкастовый адрес в сети есть всегда - туда и срать пакетами ;)

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

DIYMan пишет:

Ещё вспомнилось, что можно на UDP попробовать построить общение, в принципе ;) Там проще, без подтверждения доставки, броадкастовый адрес в сети есть всегда - туда и срать пакетами ;)

Это однозначно не пойдет - даже не рассматриваю - необходима полноценная двусторонняя связь.

nevkon
Offline
Зарегистрирован: 20.01.2015

Можно на сервере сделать планировщик подключений и при соединении датчика указывать через какое время ему подключиться в следующий раз. В этом случае будет проще разруливать проблему с 4 соединениями и перегрузкой сервера. При первом подключении сервер разрулит датчики, а дальше уже пойдет штатный режим работы. Интервалы подключений соответственно надо будет подбирать в зависимости от возможностей. Если какой-то датчик вовремя не вышел на связь значит он неисправен - сразу и ловля будет алармов.

fsdb
Offline
Зарегистрирован: 24.10.2015

не правильная постановка задачи.

1. все есп должны подключаться все к роутеру.

2. если хочешь опросить все еспишки главной то нужно послать броадкаст пакет,

2.1 не зная айпи пакет полчат все есп.

2.2. что бы не засорять эфир одновременными ответами есп нужно в броадкаст пакет посылать имя еспишки которая должна ответить

нечто вроде zal getdata.
2.3 еспишка получив броадкаст пакет по заголовку понимает нужно ли ей отвечать на пакет UDP. имя указывается непосредственно в прошивке.

2.4 еспишка отвечает на запрос - главная еспишка собирает данные.

 

 

nevkon
Offline
Зарегистрирован: 20.01.2015

Чтобы все есп подключить к роутеру надо не любой роутер уже. Вдруг у него будет 100-1000 датчиков. У большинства роутеров тоже есть ограничение на количество одновременных подключений.

fsdb
Offline
Зарегистрирован: 24.10.2015

все остальное это уже детали.

вариантов тут нет - у любого роутера по любому чип будет лучше

я такую схему реализовывал. только опрашивал я не с еспишки все другие а с телефона - я на телефоне выводил данные с разных espшек на одном экране. все работает очень быстро

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

fsdb пишет:

не правильная постановка задачи.

1. все есп должны подключаться все к роутеру.

2. если хочешь опросить все еспишки главной то нужно послать броадкаст пакет,

2.1 не зная айпи пакет полчат все есп.

2.2. что бы не засорять эфир одновременными ответами есп нужно в броадкаст пакет посылать имя еспишки которая должна ответить

нечто вроде zal getdata.
2.3 еспишка получив броадкаст пакет по заголовку понимает нужно ли ей отвечать на пакет UDP. имя указывается непосредственно в прошивке.

2.4 еспишка отвечает на запрос - главная еспишка собирает данные.

 

 

Я передал смысл. В любом случае всё плохо.

И есп не годится... тоесть для опросов возможно, но придется идти дальше...

Вебсервер на есп работает даже медленнее чем с w5100 и enc...

Так что пойду разбираться с A10, так как нет ни одной распбери под рукой..

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

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

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

Ссылка http://arduino.ru/forum/apparatnye-voprosy/kak-proshit-devboard

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

p.masyukov пишет:

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

Купите роутер TP-LINK и прошейте на него openWRT. На роутере - веб-сервер, бд, все дела, шоколад. А к нему уже - обращайтесь с ESP, гоняя туда/сюда мелкие пакеты данных.

Это как вариант, конечно.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

DIYMan пишет:

p.masyukov пишет:

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

Купите роутер TP-LINK и прошейте на него openWRT. На роутере - веб-сервер, бд, все дела, шоколад. А к нему уже - обращайтесь с ESP, гоняя туда/сюда мелкие пакеты данных.

Это как вариант, конечно.

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

Я так вот прикинул схему:

Есть одна есп - она как точка доступа к ней цепляется куча других слейвов типа. ну и главная их спокойно неспеша опрашивает и собирает огромные массивы данных (места хватает, не то что в ардуинках).

Отдельный версервер (тему вторую создал - там как раз с линуксом придется разбираться, на нем будет и вебморда и если запрос с приложения то ответ JSON) - ну и этот сервер посредством либо UART либо по радиоканалу опрашивает ту самую точку на есп и забирает огромный массив.

Тоесть все распределено на два блока: Веб сервер и контроллер для опроса еспешек в сети.

Есть ссылки на примеры опроса клиентов вайфай в сети  посмотреть варианты реализаций?

*Писал уже выше что как вебсервер есп медленная до ужаса, ну а как в варианте точки вечером буду пробовать.(если ссылки дадите - сам конечно поищу, но найду ли что нужно!?)

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

p.masyukov пишет:

Есть ссылки на примеры опроса клиентов вайфай в сети  посмотреть варианты реализаций?

А вот ХЕЗ, честно скажу. Но сам я сделал именно так, как описывал: пока вебморда крутится на ноуте, потом перетащу её на openWRT и роутер, и через n времени опрашивает ESP, которая подключена к контроллеру теплицы. На вебморде по факту хранятся полученный данные, строятся графики, настраивается сам контроллер, короче - удобняк.

В принципе, при таком подходе не надо даже держать промежуточную ESP - достаточно в вебморду вбить адреса всех ESP в сети (ну или сканер какой присобачить), поставить скрипт в cron и дёргать со всех данные, когда надо.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

смотри. есть мк с вебсервером (готовое может и хорошо но если это постепенно будет превращаться в любой вид комерческого продукта....тут уже маршрутизатор придется сменить) - на нем например юарт!

и по юарт подключается - есп она маленькая прилепил ее поверх... всё.

вот и грубо говоря сервер управления гаражем теплицей, квартирой и т.п. - только меняй немного приложение и части кода... 

а опрос и т.п. остается прежний.

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

fsdb
Offline
Зарегистрирован: 24.10.2015
p.masyukov - 
 
Веб сервер работает очень быстро. 112500 скорость должна быть в скетче
a5021
Offline
Зарегистрирован: 07.07.2013

p.masyukov пишет:
С линуксом не дружу совсем.

Кто-нибудь может мне объяснить, как можно поднять и настроить хоть какой-нибудь сервер, в свете вышеотквоченного?

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

fsdb пишет:

p.masyukov - 
 
Веб сервер работает очень быстро. 112500 скорость должна быть в скетче

Это скорость чего???

Я так подозреваю Serial - он мне не нужен.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

a5021 пишет:

p.masyukov пишет:
С линуксом не дружу совсем.

Кто-нибудь может мне объяснить, как можно поднять и настроить хоть какой-нибудь сервер, в свете вышеотквоченного?

https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%B1-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80

Иди делай уроки. без тебя забот хватает.

a5021
Offline
Зарегистрирован: 07.07.2013

p.masyukov пишет:
Иди делай уроки. без тебя забот хватает.

Я вопрос задал и хамить мне не нужно.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

a5021 пишет:

p.masyukov пишет:
Иди делай уроки. без тебя забот хватает.

Я вопрос задал и хамить мне не нужно.

Ты первый начал и нажил себе...

Почитай тему про нрф-ки и если не только буквы прочтешь но и смысл поймешь и найдешь истину!!!

(можешь посмотреть другие любые темы - ты один выделился, я бы написал в личку - но таковой нет тут)

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

fsdb пишет:

все остальное это уже детали.

вариантов тут нет - у любого роутера по любому чип будет лучше

я такую схему реализовывал. только опрашивал я не с еспишки все другие а с телефона - я на телефоне выводил данные с разных espшек на одном экране. все работает очень быстро

Не осталось программы для примера?? Это тоже подошлоб.

В конечном варианте писал как хотел --- и то что там будет приложение андроид (можно выводить например данные с разных еспшек на разных экранах например)

fsdb
Offline
Зарегистрирован: 24.10.2015

p.masyukov -

вот мое приложение в плей маркете.но это только инструментарий. https://play.google.com/store/apps/details?id=com.embarcadero.PanelControlToolKit

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

если надо сбросить настройки замыкаем рх и тх на старте.... так сделал что бы не выпаявать мк из схемы - ну например ты к rx и tx подключил еще и arduino nano к rx tx . ну и ноги не трогаются другие . удобно.

так мы подготовили к работе

далее

тут есть 2 варианта. 1- как я уже писал просто через броадкаст слать общий пакет конкретному девайсу. тут айпи не нужны. второй варинт - обращаться по ip через протокол http. грубо говоря браузер. но тогда надо в роутере указать что ip никогда не должны меняться. это есть во всех роутерах.

ну далее после  того как определился как тебе лучше.. просто пишем приложение на андройде которое опрашивает. тут тоже очень просто. лично я предпочитаю http. просто много запросов делаю паралельно на разные ip espишек и сразу со всех получаю данных. с броадкастом примерно тоже самое но там надо парсить все ответы как бы в куче.   с браузера http тестить удобно . и через интернет можно обращаться к esp за роутером.

 

a5021
Offline
Зарегистрирован: 07.07.2013

p.masyukov пишет:
Ты первый начал и нажил себе...

Какая прелесть! Запоминаем.

Цитата:
Почитай тему про нрф-ки и если не только буквы прочтешь но и смысл поймешь и найдешь истину!!!

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

Цитата:
(можешь посмотреть другие любые темы - ты один выделился, я бы написал в личку - но таковой нет тут)

Я прекрасно представляю, что вы можете написать. Можете считать, что даже написали, а я не ответил, если от осознания этого факта вам станет легче.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

"Это вольная фантазия дядюшки Ляо на тему "Если бы я был фирмой Nordic Semiconductor".  --- Это от фонаря!!! 

https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D1%81%D1%85%D0%B5%D0%BC%D0%B0 а во что она зилита хоть вазелином хоть компаундом -- хоть чем. Здесь люди ни писюнами мерются а решают определенные задачи.

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

 

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

fsdb пишет:

p.masyukov -

вот мое приложение в плей маркете.но это только инструментарий. https://play.google.com/store/apps/details?id=com.embarcadero.PanelControlToolKit

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

если надо сбросить настройки замыкаем рх и тх на старте.... так сделал что бы не выпаявать мк из схемы - ну например ты к rx и tx подключил еще и arduino nano к rx tx . ну и ноги не трогаются другие . удобно.

так мы подготовили к работе

далее

тут есть 2 варианта. 1- как я уже писал просто через броадкаст слать общий пакет конкретному девайсу. тут айпи не нужны. второй варинт - обращаться по ip через протокол http. грубо говоря браузер. но тогда надо в роутере указать что ip никогда не должны меняться. это есть во всех роутерах.

ну далее после  того как определился как тебе лучше.. просто пишем приложение на андройде которое опрашивает. тут тоже очень просто. лично я предпочитаю http. просто много запросов делаю паралельно на разные ip espишек и сразу со всех получаю данных. с броадкастом примерно тоже самое но там надо парсить все ответы как бы в куче.   с браузера http тестить удобно . и через интернет можно обращаться к esp за роутером.

 

+++ посмотрю. но все же тут уже не будет вебсервера, придется его рядом строить... 

Обмозгую, надо всю инфу как то переварить.

fsdb
Offline
Зарегистрирован: 24.10.2015

веб сервер в каждой еспишке. простенькой. подключаем датчик прямо к еспишке если получается. если не получается к еспишке - то еспику соединяем с ардуиной нано через rx и tx . аппаратные порты. лишь они обеспечат должную скорость обмена. при этом после сборки нельзя будет прошить ардуинку нано без разрыва ног.

 

веб сервер еспишки будет показывать примерно вот так

https://new.vk.com/photo46345751_417650273?rev=1

 

a5021
Offline
Зарегистрирован: 07.07.2013

p.masyukov пишет:
Научитесь выставлять себя не доктором околовсяческих наук а человеком с определенными знаниями и будут к вам люди нормально относиться.

Не хотите с себя начать?

Я вам совершенно конкретно сказал, что купленые вами модули к NRF24L01 не имеют никакого отношения. Что вас там смутило?

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

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

a5021 пишет:

p.masyukov пишет:
Научитесь выставлять себя не доктором околовсяческих наук а человеком с определенными знаниями и будут к вам люди нормально относиться.

Не хотите с себя начать?

Я вам совершенно конкретно сказал, что купленые вами модули к NRF24L01 не имеют никакого отношения. Что вас там смутило?

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

Так и надо было писать!!! И не было бы споров.

p.masyukov
p.masyukov аватар
Offline
Зарегистрирован: 14.11.2015

fsdb пишет:

веб сервер в каждой еспишке. простенькой. подключаем датчик прямо к еспишке если получается. если не получается к еспишке - то еспику соединяем с ардуиной нано через rx и tx . аппаратные порты. лишь они обеспечат должную скорость обмена. при этом после сборки нельзя будет прошить ардуинку нано без разрыва ног.

 

веб сервер еспишки будет показывать примерно вот так

https://new.vk.com/photo46345751_417650273?rev=1

 

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

fsdb
Offline
Зарегистрирован: 24.10.2015

мой вк. https://new.vk.com/ehomesmart

 м.б. кто будет читать эту тему и будет полезно. 

могу оказать определенные услуги....... на эту теу

 

a5021
Offline
Зарегистрирован: 07.07.2013

p.masyukov пишет:
Так и надо было писать!!! И не было бы споров.

Так я вам и написал, что это не NRF24L01, а "вольная фантазия дядюшки Ляо на тему "Если бы я был фирмой Nordic Semiconductor".

Что вы мне на это ответили? Вы понесли полную пургу с голословными обвинениями меня в полной некомпетентности. Я что-ли виноват, что вы простое предложение прочитать не можете?