Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс авг 09, 2015 7:40 pm

и там выходит GET /objects/?object=analog01&op=m&m=update&v=31.12 HTTP/1.0 такой ответ,как понял "v" это температура а что такое "op" и "m" и как его отобразить на сервере MDM
analog01 – объект
update — метод
v - значение

Метод update — что-то вроде этого:

$v = round($params['v'], 1);
$this->setProperty('value',$v);
$this->setProperty('updated',time());
$this->setProperty('updated_',date("H:i",time()));

Потом с value делаете, что хотите.
в serial выводиться температура а как ее отобразить на веб страничке Сервера
Так с ходу не скажу, нужно писать целую статью на эту тему. Попробуйте посмотреть по аналогии, как другие параметры выводятся.
что это за ответ GET /objects/?object=contCLO&op=m&m=update&v=0
CLO это от слова клозет, это унитаз, подключённый к Интернету :)
как и где настроить время
Строка в модуле RTC

IPAddress timeServer(192, 168, 2, 8);

Это адрес MDM, с него и берётся время.
За это сообщение автора Alex поблагодарил:
ингвар (Вс авг 09, 2015 8:48 pm)
Рейтинг: 1.16%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс авг 09, 2015 8:13 pm

Чудо свершилось. Полностью «отвязанная» версия. Типичное время загрузки — 4 секунды. Иногда чуть больше. Простор для оптимизации большой, но уже вполне можно пользоваться.

Ну и с этого момента автономный режим будет основным, М только в экзотических и особо тяжёлых случаях.

Как приведу в порядок код - так выложу.
Вложения
one.png
one
one.png (58.42 КБ) 13581 просмотр
one2.png
one2
one2.png (22.05 КБ) 13581 просмотр
За это сообщение автора Alex поблагодарили (всего 2):
MACTEPyc (Вс авг 09, 2015 8:20 pm) • uni (Вс авг 09, 2015 9:35 pm)
Рейтинг: 2.33%
ингвар
Сообщения: 142
Зарегистрирован: Вт ноя 25, 2014 2:06 pm
Благодарил (а): 33 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение ингвар » Вс авг 09, 2015 8:51 pm

Alex писал(а):
как и где настроить время
Строка в модуле RTC
IPAddress timeServer(192, 168, 2, 8);
Это адрес MDM, с него и берётся время.
у меня там и прописан адрес MDM но время не обновляеться
Windows 10 + Raspberry Pi3 + ESP8266
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вс авг 09, 2015 9:14 pm

Трудно сказать. У меня работает, никто на время не жаловался. Причин может быть много, можно попробовать адрес какого-нибудь сервера времени в Интернет.
RusikOk
Сообщения: 91
Зарегистрирован: Чт июл 24, 2014 1:48 am
Откуда: Украина, Сумы
Благодарил (а): 43 раза
Поблагодарили: 6 раз

Re: Arduino Mega Server

Сообщение RusikOk » Пн авг 10, 2015 8:27 am

Alex писал(а):Сейчас это 4 потока по раз в секунду каждый. А при открытии 12 страниц (тест) получается 48 потоков. По 4 их не сгруппируешь (браузер решает и они обязательно пересекутся).
теперь то Вам дошло почему нет серверов на ардуино?
olehs писал(а):А для гейтов можно и вообще ENC28J60 использовать
более глючной микросхемы я не встречал. купил себе одну поковырять. почитал пару статей и желание отпало. но все же как нибудь по свободе займусь

а вобще в качестве web-сервера для такого навороченного контроллера как тут я бы взял роутер. БУ эго можно купить по цене ENC28J60 а ограничений с количеством потоков и прочей ерунды не будет. к тому же там линукс стоит. его ковырять проще. ну и памяти для страниц сайта там хватит если повыкидывать не нужные модули связанные с ADSL к примеру
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт авг 11, 2015 12:33 pm

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

На «больших» серверах этим занимается PHP (инструкция include), а у нас технология HTML imports. Эта технология всем хороша, кроме одного — она работает только в новых браузерах, а большинство пользователей ничего не увидит (что нас никак не устраивает).

Среди альтернативных технологий — фреймы и загрузка через JavaScript. Фреймы я протестировал и они меня не устроили, остаётся JavaScript или то, что вы предложите.

Нужен код на чистом яваскрипте, без jQuery, чтобы не грузить лишнюю библиотеку.
RusikOk
Сообщения: 91
Зарегистрирован: Чт июл 24, 2014 1:48 am
Откуда: Украина, Сумы
Благодарил (а): 43 раза
Поблагодарили: 6 раз

Re: Arduino Mega Server

Сообщение RusikOk » Вт авг 11, 2015 1:18 pm

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

PS
я так всегда делаю))))))))
За это сообщение автора RusikOk поблагодарил:
arturmon82 (Вт авг 11, 2015 1:33 pm)
Рейтинг: 1.16%
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Ср авг 12, 2015 5:08 pm

По поводу производительности ещё. Я посмотрел на скетч server_ajax.ino. Как по мне, я бы весь интерфейс взаимодействия (протоколы) сделал на основе json, как в сети принято. Куски html отдавать - это расточительно. Нужно отдавать только массивы с данными, а js на стороне клиента должен этот json обрабатывать. В jquery есть даже параметр при приёме/передаче данных - интерпретировать как json. Для скетча работу с json можно организовать при помощи этого исходника: jsmn.
Дошли руки до оптимизации и ускорения работы AMS. uni , вы можете оформить код с обеих сторон сервера и яваскрипта в виде простейшего примера, который я потом сам разовью и адаптирую для реальной работы?
Аватара пользователя
uni
Сообщения: 191
Зарегистрирован: Вс июл 26, 2015 9:21 pm
Откуда: Екатеринбург
Благодарил (а): 4 раза
Поблагодарили: 7 раз
Контактная информация:

Re: Arduino Mega Server

Сообщение uni » Чт авг 13, 2015 12:22 am

Ну, вообще-то пример есть, посмотрите тут: https://github.com/ViacheslavMezentsev/ ... er/main.js

Там используется post из jquery, искать по ключевым словам в исходниках: JSON. У меня в одном из репозиториев серверная часть (запрос) есть и без использования jquery. Серверная часть в общем примитивна если использовать библиотеку. Примеры есть вроде даже в хелпе к jquery.

А вот клиентская часть для мк будет чуток посложнее. Я не знаю как с заголовком работать, это уж самостоятельно, а вот с json есть такой исходник: https://github.com/ViacheslavMezentsev/ ... /json/jsmn

В c++ это я его переделал, в оригинале он на чистом C. Можно скетч сделать и потренироваться с разбором.

Запрос без jquery можно посмотреть здесь: https://github.com/ViacheslavMezentsev/ ... /modbus.js
Россия навсегда!
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Чт авг 13, 2015 8:50 am

Теоретический вопрос. В чём преимущества json перед xml? Если использовать короткие теги вроде <p1> <p2>, то разница в объёме передаваемого по сети будет минимальна и, судя по всему, практически несущественна.
Ответить