Arduino Mega Server
Модератор: Alex
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
-
- Сообщения: 113
- Зарегистрирован: Пн окт 19, 2015 8:27 am
- Благодарил (а): 9 раз
- Поблагодарили: 21 раз
Re: Arduino Mega Server
Alex, как тебе удобнее выкатывать замечания/предложения по коду?
Пока буду писать подробно по каждому:
почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Пока буду писать подробно по каждому:
Код: Выделить всё
// timers
unsigned long timeSec; // time in seconds
unsigned long timer1s; boolean cycle1s = false;
unsigned long timer4s; boolean cycle4s = false;
unsigned long timer20s; boolean cycle20s = false;
unsigned long timer30s; boolean cycle30s = false;
unsigned long timer1m; boolean cycle1m = false;
unsigned long timer3m; boolean cycle3m = false;
unsigned long timer5m; boolean cycle5m = false;
int startSendTime = 10;
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Подробно по каждому это отлично.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
э-э... Что-то я не соображу...почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
-
- Сообщения: 113
- Зарегистрирован: Пн окт 19, 2015 8:27 am
- Благодарил (а): 9 раз
- Поблагодарили: 21 раз
Re: Arduino Mega Server
10 сек окно?Alex писал(а):Подробно по каждому это отлично.
Для меня и для всех других, лучше, чтобы каждое замечание представляло собой нечто логически законченное, чтобы чётко было понятно о чём идёт речь и понятно, как это вставить в код, чтобы не потерялась работоспособность и не нарушились связи. Это в идеале.
э-э... Что-то я не соображу...почему при инициализации все циклы в Ложь?
если поставить Истина, то startSendTime не нужен, и все приборы отработают при первом проходе
Во-первых так «системнее»
Во-вторых, если сделать «истина», то отработает каждый цикл, а нужен не каждый, а только в определённой ситуации.
Точно не помню, но кажется требуется не не единственное срабатывание, а именно «окно» срабатываний. Хотя тут не уверен — давно проводил эксперименты.
Истина при инициализации нужна, чтоб отработали все функции при первом проходе в loop. В конце loop идёт проверка временных диапазонов(кода перед глазами нет, но вроде так).
-
- Сообщения: 113
- Зарегистрирован: Пн окт 19, 2015 8:27 am
- Благодарил (а): 9 раз
- Поблагодарили: 21 раз
Re: Arduino Mega Server
У меня и с Ethernet идёт "проглатывание". Но для меня сейчас главное другое:Alex писал(а):Кстати, SpbDima, вы, судя по всему, человек активный и квалифицированный, было бы неплохо, если бы вам удалось решить проблему с Ethernet библиотекой, сокетами и медленной и некорректной сетевой работой АМС.
Судя по всему, дело в Ethernet библиотеке. Туда же идёт проблема с «проглатыванием» файлов Ethernet2 библиотекой.
Вот это было бы реально круто и ценно для проекта и пользователей.
1. Работа температурных датчиков с конф-файлом, логами и управляющими командами на выход из рабочего диапазона температуры для ds18x20, DHTxx и скоро какой-то новый датчик придёт. Плюс вывод информации на ВЕБ-страницу.
2. Работа с картой памяти с ВЕБ-страницы(upload/download)
3. Доработка библиотеки dallastemperature, либо отказ от неё, т.к. она использует Delay - тем самым подвешивая систему по 1 секунде с каждого датчика.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Да, там были какие-то заморочки с M, и меньше 10 что-то иногда не срабатывало. Уже не помню что, но причина была.10 сек окно?
да, это тоже важный пункт2. Работа с картой памяти с ВЕБ-страницы(upload/download)
Но всё-таки сеть и сокеты это проблема №1, это фундамент на котором всё стоит и он должен быть правильным.
Re: Arduino Mega Server
Здравствуйте, уважаемые коллеги!
Я установил AMS на Arduino Mega + Ethernet Shield 2 (W5500). Вещь замечательная, как оказалось. Вопрос в количестве одновременных пользователей. Начиная с 2-х клиентов, система тормозит, некоторые элементы перестают прогружаться. В чем суть вопроса: можно ли сделать сервер-парсер, который бы брал информацию (лучше, полностью весь интерфейс) с Arduino, а конечным пользователя возвращал некоторую кэшированную версию страницы (например, обращение к плате проводить раз в 5 секунд)?
Если есть наработки по этому вопросу - пишите, буду рад выслушать.
P.S. Вроде, MajorDoMo умеет что-то подобное, но я так и не смог разобраться, что к чему.
Я установил AMS на Arduino Mega + Ethernet Shield 2 (W5500). Вещь замечательная, как оказалось. Вопрос в количестве одновременных пользователей. Начиная с 2-х клиентов, система тормозит, некоторые элементы перестают прогружаться. В чем суть вопроса: можно ли сделать сервер-парсер, который бы брал информацию (лучше, полностью весь интерфейс) с Arduino, а конечным пользователя возвращал некоторую кэшированную версию страницы (например, обращение к плате проводить раз в 5 секунд)?
Если есть наработки по этому вопросу - пишите, буду рад выслушать.
P.S. Вроде, MajorDoMo умеет что-то подобное, но я так и не смог разобраться, что к чему.
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Так, тут нужно пояснить. Ещё в первой статье про АМС
http://geektimes.ru/post/259248/
я написал, цитирую
«Необходимое пояснение. В названии присутствует слово «сервер» и речь в первой части статьи идёт о серверных функциях системы. Это может ввести вас в заблуждение и создать впечатление, что основным назначением системы является хостинг файлов и сайтов и раздача контента. Это не совсем так... ...заменить микроконтроллером настоящий веб-сервер конечно не удастся.
Смысл системы несколько в другом. Вместе с Arduino Mega Server вы получаете возможность удобного управления своим устройством при помощи веб-интерфейса и просто роскошного (в визуальном смысле) выведения результатов его работы при помощи всей мощи современных технологий (HTML5, CSS3, THREE.js и т.п.). Будь то система управления умным домом, теплицей, автоматом по продаже напитков, метеостанцией или чем угодно, на что у вас хватит фантазии.»
Конец цитаты
Два клиента это уже неплохо, с оптимизацией или на более мощной Due будет 4-5 (активных!, пассивных могут быть десятки). Большего из микроконтроллера выжать очень трудно, но то, что есть уже очень неплохо.
По поводу технических вопросов. Страничка собирается совместными усилиями контроллера и браузерных скриптов, поэтому создать её на стороне контроллера скорее всего не удастся. Если кто-то думает иначе — интересно было бы послушать.
И вопрос к вам — на сайтах партнёров с обилием графики теряются ли картинки (на главных страницах)?
http://geektimes.ru/post/259248/
я написал, цитирую
«Необходимое пояснение. В названии присутствует слово «сервер» и речь в первой части статьи идёт о серверных функциях системы. Это может ввести вас в заблуждение и создать впечатление, что основным назначением системы является хостинг файлов и сайтов и раздача контента. Это не совсем так... ...заменить микроконтроллером настоящий веб-сервер конечно не удастся.
Смысл системы несколько в другом. Вместе с Arduino Mega Server вы получаете возможность удобного управления своим устройством при помощи веб-интерфейса и просто роскошного (в визуальном смысле) выведения результатов его работы при помощи всей мощи современных технологий (HTML5, CSS3, THREE.js и т.п.). Будь то система управления умным домом, теплицей, автоматом по продаже напитков, метеостанцией или чем угодно, на что у вас хватит фантазии.»
Конец цитаты
Два клиента это уже неплохо, с оптимизацией или на более мощной Due будет 4-5 (активных!, пассивных могут быть десятки). Большего из микроконтроллера выжать очень трудно, но то, что есть уже очень неплохо.
По поводу технических вопросов. Страничка собирается совместными усилиями контроллера и браузерных скриптов, поэтому создать её на стороне контроллера скорее всего не удастся. Если кто-то думает иначе — интересно было бы послушать.
И вопрос к вам — на сайтах партнёров с обилием графики теряются ли картинки (на главных страницах)?
Re: Arduino Mega Server
Есть ли в планах API, с помощью которого стороннее веб приложение или любой другой сервер сможет получить данные в удобном виде для дальнейшего использования?
В односокетном режиме прогружается 2-3 картинки на странице, изредка не прогружается CSS файл, среднее время загрузки одного изображения - 300-330 мс
В двухсокетном режиме ситуация несколько лучше: 6-7 картинок, среднее время загрузки одного изображения - 170-190 мс
В многосокетном режиме соединение нестабильно - достаточно часто "Страница недоступна". Грузится 1-2 изображения, а иногда и nil изображений
В односокетном режиме прогружается 2-3 картинки на странице, изредка не прогружается CSS файл, среднее время загрузки одного изображения - 300-330 мс
В двухсокетном режиме ситуация несколько лучше: 6-7 картинок, среднее время загрузки одного изображения - 170-190 мс
В многосокетном режиме соединение нестабильно - достаточно часто "Страница недоступна". Грузится 1-2 изображения, а иногда и nil изображений
