Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
Можете поделиться вторым изданием книги Виктора Петина?
Re: Arduino Mega Server
Низкий поклон и огромное спасибо товарищу Alex'y за великий труд, как и Сергею!
Я начал освоение АМС с 0.13 версии.
0.13 версия была крайне нестабильной, "работая" с сервером МД.
Перечитал всю ветку форума (более 100 страниц) в поисках стабильности, но только откомпилировав 0.14 увидел огромную разницу между ними.
0.14 версией я вообще не нарадуюсь, стабильно отправляет данные на сервер МД, но заметил тормоза при одновременном обращении с разных девайсов. Насколько я понимаю проблема в таймерах и сокетах сохранилась.
По мере возможности постараюсь помочь...
Я начал освоение АМС с 0.13 версии.
0.13 версия была крайне нестабильной, "работая" с сервером МД.
Перечитал всю ветку форума (более 100 страниц) в поисках стабильности, но только откомпилировав 0.14 увидел огромную разницу между ними.
0.14 версией я вообще не нарадуюсь, стабильно отправляет данные на сервер МД, но заметил тормоза при одновременном обращении с разных девайсов. Насколько я понимаю проблема в таймерах и сокетах сохранилась.
По мере возможности постараюсь помочь...
Re: Arduino Mega Server
Дело в том, что в W5100 всего 4 аппаратных сокета и родная библиотека так работает с ними, что задержки интерфейса АМС достигают 40 секунд, что совершенно неприемлемо. Одновременно, она корректно обслуживает множественные единичные соединения.но заметил тормоза при одновременном обращении с разных девайсов. Насколько я понимаю проблема в таймерах и сокетах сохранилась.
Модифицированная библиотека захватывает все 4 сокета для интерфейса, но не оставляет их для других сетевых сервисов. Что тоже неприемлемо.
В качестве временного компромиссного варианта было принято решение захватывать 3 сокета, а 1 оставлять для всех прочих нужд. Свободный остаётся всего 1 и поэтому тормозят множественные обращения.
Это ненормальная ситуация и она требует решения и, видимо, для этого нужно переделать библиотеку Ethernet. Мне это пока не удалось.
В качестве ещё одной временной меры пробовал организовать динамический захват сокетов — и тоже безуспешно. С 3 на 4 переходит корректно, а с 4 на 3 — виснет.
Решение этой проблемы было и остаётся главной задачей.
Re: Arduino Mega Server
w5500
8 сокетов.
8 сокетов.
Re: Arduino Mega Server
Прочитал всю тему, Автору спасибо огромное за проект, проект стоящий, планирую использовать его в постройке умного дома, только конечное видение немного отличается от видения автора
Но это так сказать нормально, каждый видит по своему, у меня возник вопрос, третий день ищу способ реализации, может вы кто нибудь подскажите.
В каждой комнате планирую по небольшому контроллеру с ЛСД экраном и всеми датчиками, на котором будет допустим температура, время, ну и управление светом, температурой в комнате или еще какой либо автоматикой причем само управление будет идти с AMS, и мне нужно как то передавать данные на АМС, и вот тут самая огромная проблема, это либо ethernet, либо rs485 либо еще что то. По локалке все понятно, из минусов относительная дороговизна 200р за ENC28J60, занятие 4 пар витой пары, отдельный коммутатор, из плюсов гибкость, огромный запас по пропускной способности, возможность обновлять скетчи по сети, по rs485 опять же избыточность только в другом, куча запросов от мастера к слейвам что тоже не очень нравится, из минусов сложный мастер, односторонняя инициация запросов, можно воспользоваться допустим флагом изменения что уменьшит количество запросов но увеличит число необходимых проводов с 2(3) до 3(4), из плюсов дешевизна, надежность теоретически, так же есть возможность заливать скетчи удаленно(теоретически). i2c не хватит по расстояниям на сколь я понял, вайфай использовать не хочется, больше варантов нет, может кто еще какие варианты посоветует?
В каждой комнате планирую по небольшому контроллеру с ЛСД экраном и всеми датчиками, на котором будет допустим температура, время, ну и управление светом, температурой в комнате или еще какой либо автоматикой причем само управление будет идти с AMS, и мне нужно как то передавать данные на АМС, и вот тут самая огромная проблема, это либо ethernet, либо rs485 либо еще что то. По локалке все понятно, из минусов относительная дороговизна 200р за ENC28J60, занятие 4 пар витой пары, отдельный коммутатор, из плюсов гибкость, огромный запас по пропускной способности, возможность обновлять скетчи по сети, по rs485 опять же избыточность только в другом, куча запросов от мастера к слейвам что тоже не очень нравится, из минусов сложный мастер, односторонняя инициация запросов, можно воспользоваться допустим флагом изменения что уменьшит количество запросов но увеличит число необходимых проводов с 2(3) до 3(4), из плюсов дешевизна, надежность теоретически, так же есть возможность заливать скетчи удаленно(теоретически). i2c не хватит по расстояниям на сколь я понял, вайфай использовать не хочется, больше варантов нет, может кто еще какие варианты посоветует?
Re: Arduino Mega Server
поясните пожалуйста,что за другие сетевые сервисы? я видел это так,пришел запрос,обработали его,отдали страничку или что там еще,все,ждем запрос,будь то на страничку или ajax,не важно...какие еще сервисы?Alex писал(а):
Модифицированная библиотека захватывает все 4 сокета для интерфейса, но не оставляет их для других сетевых сервисов. Что тоже неприемлемо..
Re: Arduino Mega Server
Само-собой. Но у народа на 99.9% w5100. Кстати w5500 уже официально поддерживается 0.14 версией, но у неё другая проблема.w5500
8 сокетов.
http://hi-lab.ru/arduino-mega-server/de ... -ethernet2
Да моя концепция немного нестандартнаяможет кто еще какие варианты посоветует?
Это вопрос насколько интересный, настолько и мутный. Тут имеется в виду, что если мы работаем с 4 сокетами, то запросы на М уже не отправляются и сетевые функции, кроме интерфейса, уже не работают.поясните пожалуйста,что за другие сетевые сервисы? я видел это так,пришел запрос,обработали его,отдали страничку или что там еще,все,ждем запрос,будь то на страничку или ajax,не важно...какие еще сервисы?
Начинаем работать с 3 сокетами - запросы на М уже работают.
Я имел в виду под сервисами любую сетевую работу, кроме интерфейса.
Если вы можете прояснить этот момент или решить эту проблему то благодарность всех пользователей АМС (и моя тоже) не будет иметь границ.
Re: Arduino Mega Server
Она более экономичная по ресурсам и более надежная так как все на одном контроллере, и поэтому тоже весьма оправдана, но я просто вижу совсем по другому, и теперь пытаюсь найти реализацию моего видения.Alex писал(а):Да моя концепция немного нестандартная![]()
Пока что планирую заказать для rs485 платы, ну и 5500ка с ENC28J60 едет с ENC28J60 правда граблей тоже немало
Re: Arduino Mega Server
Alex, это проблема выбранной архитектуры приложения.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Re: Arduino Mega Server
Если использовать АМС в роли (отвязанного) самостоятельного контроллера, то естественно 4-х да и 8-ми соединений мало! Как правило для управления я бы использовал любой подручный девайс (IPad, Iphone, iMac и тд), коих в доме может быть довольно много.alex946 писал(а):Alex, это проблема выбранной архитектуры приложения.
Допустим, к "сокетам" подцепится два-три "интерфейса" - что будет? А если пять?
Я развлекался с telnet доступом на 5100 - да, оно работает, но... 4 коннекта и всё.
В этом смысле, вас спасёт только отказ от "сокетов" вообще.
Если гнать все через МД, то на данный момент я проблем не испытываю. Данные передаются на сервер стабильно, с сервера команды отправляются и обрабатываются АМС тоже без нареканий.
Конечно с момента аптайма прошло около суток и много чего еще может вылезти, но по сравнению с 0.13 просто космос!
to Alex
Если уклон больше делается на "самостоятельность" контроллера, то я бы на Вашем месте начал дополнять его "разумом", а еще лучше программируемым "разумом".
Я года два назад реализовывал 2-х стороннюю связь между Мегой и МД, то есть гарантированную доставку команд как из МД к Меге, так и обратно, Работало без сбоев.
Если кому нужно будет, смогу поделиться кодом для Меги.