Arduino Mega Server

Модератор: Alex

dkhv
Сообщения: 12
Зарегистрирован: Пт янв 29, 2016 3:07 am
Благодарил (а): 0
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение dkhv » Вт фев 02, 2016 2:58 pm

теперь, далее скопировал в маджордомо файлы. где и что далее запускать? маджордомо запущен. там видно только его. с сервера пингуется амс (192.168.2.8). что запустить чтоб получить картинки амс?
Pilot63
Сообщения: 5
Зарегистрирован: Ср дек 23, 2015 10:51 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Pilot63 » Вт фев 02, 2016 3:35 pm

Спасибо Alex и Gorokhov. Запустил на версии IDE 1.7.8. Возникла другая проблема: роутер не видит подключение. Грешил на W5100, все мограет но не пингуется даже, но на работе на другом оборудовании проверил, все работает. Итог: Alex писал выше, на Zyxel не видит шилд 5100. Если сверху подключить древний свич типа D- link, все поднимается. Будем думать.
allexmak1
Сообщения: 12
Зарегистрирован: Пт дек 18, 2015 8:28 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение allexmak1 » Вт фев 02, 2016 4:25 pm

Всем привет, у меня вопрос: я хочу уже использовать платфому меги и 014 скетч, поменять полностью интерфейс веба, получать и отправлять данные по нескольким пинам, и мне интересно, стабильно ли все будет работать, или лучше дождатся последующих версий?
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Arduino Mega Server

Сообщение Alex » Вт фев 02, 2016 4:57 pm

но это все таки ваше была ошибка. зачем было _013 выставлять?
А я то думаю почему пользователи так активно скачивают 0.13 версию, когда есть 0.14. Оказывается они не видят разницы.

Там же написано

0.14 — последняя актуальная версия
0.13 — архивная версия

Куда уже понятнее?
теперь, далее скопировал в маджордомо файлы. где и что далее запускать? маджордомо запущен. там видно только его. с сервера пингуется амс (192.168.2.8). что запустить чтоб получить картинки амс?
В меню «настройки» АМС есть галочка — тандемный режим. Нажимаете и АМС начинает использовать файлы на MajorDoMo. Этот режим нужен только для разработки — вам, наверное, рановато.
Если сверху подключить древний свич типа D- link, все поднимается. Будем думать.
Вот-вот скорее всего это проблема Зукселя.
Всем привет, у меня вопрос: я хочу уже использовать платфому меги и 014 скетч, поменять полностью интерфейс веба, получать и отправлять данные по нескольким пинам, и мне интересно, стабильно ли все будет работать, или лучше дождатся последующих версий?
0.14 это лучшее и очень достойное из всего, что было и ждать нет смысла — делайте на основе этой версии. Хотя прогресс неостановим и следующие могут быть лучше.
Xseon
Сообщения: 51
Зарегистрирован: Ср сен 18, 2013 12:21 am
Благодарил (а): 9 раз
Поблагодарили: 7 раз

Re: Arduino Mega Server

Сообщение Xseon » Вт фев 02, 2016 9:22 pm

SPbDima писал(а):Парсинг get запроса:

Код: Выделить всё

(не тестировал, но должно работать)
  else if (StrContains(HTTP_req, "GET /renamefile&")) {
    sendXmlAnswer(cl);
    strtok(HTTP_req, "GET /&");
    renameFile(cl, String(strtok(NULL, "GET /&")), String(strtok(NULL, "GET /&")), String(strtok(NULL, "GET /&")));//каталог, старый файл, новый файл
  } 
Второй вариант с отдельной процедурой

Код: Выделить всё

void procedure(EthernetClient cl) {
  String monthCount=strtok(HTTP_req, "GET /&"); //первый параметр отвечает за количество запрашиваемых месяцев
  char* numSensor=strtok(NULL, "GET /&"); //второй параметр - порядковые номера запрашиваемых сенсоров через запятую
  for(String nSensor=strtok(numSensor, ","); nSensor!=NULL; nSensor=strtok(NULL, ",")) {
    byte num=nSensor.toInt();//число месяцев в формате int       
А можно увидеть строку запроса ко второму примеру? Хотя насколько я понял, то это выглядит примерно так?

Код: Выделить всё

.../&10/&1,3,5
Совсем не читабельно. Конечно когда это "твое детище", можно хоть азбуку морзе внедрить, вопрос про юзабилити.
SPbDima писал(а): По поводу передачи параметра через "имя=значение", не забывайте что размер буфера запроса и команды 128 и 64 символов соответственно, поэтому использовать "имя" желательно только при острой необходимости.
Я помню, когда Сергей только первые скетчи под W5100 выкладывал, там ограничения на размер передаваемых параметров был ограничен 32-мя символами. Вполне хватало, а сейчас вообще ЖИР в 64))) В реалиях запросов МД действительно хватит и 32 символов, если переменные указывать не "red, green, blue" а "r, g, b" например.
SPbDima писал(а):МД не использую, поэтому нюансов не знаю.
Ммм...хотите сказать AMS полностью реализует Ваши фантазии? Настроить его на автономную работу конечно не плохо...но как же плюшки проекта Сергея?
SPbDima писал(а): Если необходимо использовать "имя", можно сделать функцию разбивающая строчку "имя=значение" по "=" и возвращающая отдельно "имя" и "значение".

В моей функции это и реализовано, структура добавлена только для удобства обращения.
SPbDima писал(а):Использовать ".substring(0,buffer1.indexOf('='));", насколько я понимаю, не лучший вариант по скорости.
Спорить не буду, тестов не проводил.
SPbDima
Сообщения: 113
Зарегистрирован: Пн окт 19, 2015 8:27 am
Благодарил (а): 9 раз
Поблагодарили: 21 раз

Re: Arduino Mega Server

Сообщение SPbDima » Ср фев 03, 2016 2:47 pm

СпойлерПоказать
Xseon писал(а):
SPbDima писал(а):Парсинг get запроса:

Код: Выделить всё

(не тестировал, но должно работать)
  else if (StrContains(HTTP_req, "GET /renamefile&")) {
    sendXmlAnswer(cl);
    strtok(HTTP_req, "GET /&");
    renameFile(cl, String(strtok(NULL, "GET /&")), String(strtok(NULL, "GET /&")), String(strtok(NULL, "GET /&")));//каталог, старый файл, новый файл
  } 
Второй вариант с отдельной процедурой

Код: Выделить всё

void procedure(EthernetClient cl) {
  String monthCount=strtok(HTTP_req, "GET /&"); //первый параметр отвечает за количество запрашиваемых месяцев
  char* numSensor=strtok(NULL, "GET /&"); //второй параметр - порядковые номера запрашиваемых сенсоров через запятую
  for(String nSensor=strtok(numSensor, ","); nSensor!=NULL; nSensor=strtok(NULL, ",")) {
    byte num=nSensor.toInt();//число месяцев в формате int             
А можно увидеть строку запроса ко второму примеру? Хотя насколько я понял, то это выглядит примерно так?

Код: Выделить всё

.../&10/&1,3,5
Совсем не читабельно. Конечно когда это "твое детище", можно хоть азбуку морзе внедрить, вопрос про юзабилити.
У меня была задача запросить с сервера логи за N-месяцев с температурных датчиков с номерами указанными в массиве M, т.к. запрос LogTSensor уникален, то какой смысл делать проверку на имя параметра?
запрос получается: GET /LogTSensor&10&1,3,5&nocache=3333
Разве юзабилити будет лучше у запроса GET /LogTSensor&n=10&m=1,3,5&nocache=3333 ?

Если рассмотреть твой запрос:
GET /rgb=1&r=10&g=110&b=100&a=40
то, ответь на вопросы:
1. результаты запросов GET /rgb=1&r=50&g=0&b=100&a=40 и GET /rgb=1&a=40&r=50&g=0&b=100 будут аналогичны?
2. Разве менее читабельно GET /rgbа=1&50&0&100&40, либо GET /rgbа=50,0,100,40, либо GET /rgbа&50,0,100,40?
со следующим парсингом color(led1, strtok(NULL, "GET /&"), strtok(NULL, "GET /&"), strtok(NULL, "GET /&"));// n-led, red, green, blue
СпойлерПоказать
Xseon писал(а):
SPbDima писал(а): По поводу передачи параметра через "имя=значение", не забывайте что размер буфера запроса и команды 128 и 64 символов соответственно, поэтому использовать "имя" желательно только при острой необходимости.
Я помню, когда Сергей только первые скетчи под W5100 выкладывал, там ограничения на размер передаваемых параметров был ограничен 32-мя символами. Вполне хватало, а сейчас вообще ЖИР в 64))) В реалиях запросов МД действительно хватит и 32 символов, если переменные указывать не "red, green, blue" а "r, g, b" например.
SPbDima писал(а):МД не использую, поэтому нюансов не знаю.
Ммм...хотите сказать AMS полностью реализует Ваши фантазии? Настроить его на автономную работу конечно не плохо...но как же плюшки проекта Сергея?
У меня аквариум на рабочем месте. При помощи ардуино и роутера йоты я контролирую температуру в аквариуме и на рабочем месте. Как при помощи МД, не имея в выходные работающего компьютера и роутера на работе, получать/смотреть логи/графики работы системы за выходные? У МД есть файловый менеджер для работы с СД-картой ардуино?
Алекс, при помощи АМС, позволил использовать весь потенциал ардуино через веб-интерфейс, так что МД, для меня, стало ненужным костылем.
Логи, графики, управление? - пожалуйста!
А, если =), допишу файловый менеджер, то уже АМС...
СпойлерПоказать
Xseon писал(а):
SPbDima писал(а): Если необходимо использовать "имя", можно сделать функцию разбивающая строчку "имя=значение" по "=" и возвращающая отдельно "имя" и "значение".

В моей функции это и реализовано, структура добавлена только для удобства обращения.
SPbDima писал(а):Использовать ".substring(0,buffer1.indexOf('='));", насколько я понимаю, не лучший вариант по скорости.
Спорить не буду, тестов не проводил.
Я вижу что есть строки кода использующие substring, что является тяжелым кодом. Говоря про "функцию разбивающая строчку" я имел ввиду отдельную функцию с "strtok(<ссылка|NULL>,"=")", т.к. внутри цикла strtok невозможно использовать strtok для подстроки.

P.S.: я с большим удовольствием буду писать код с хорошим юзабилити, но только если в нём будет смысл, а просто перегружать маленькую ардуинку громоздким и никому не нужным кодом я не собираюсь.
Pitti
Сообщения: 3
Зарегистрирован: Пт янв 29, 2016 7:41 pm
Благодарил (а): 2 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение Pitti » Ср фев 03, 2016 4:29 pm

Подскажите, рассматривался вопрос о отправки смс (даже лучше эл.письма) на телефон? На пример при превышении заданного порогового значения сенсоров. Если нет, то как можно его реализовать.
pastry777
Сообщения: 81
Зарегистрирован: Пт окт 02, 2015 7:47 pm
Благодарил (а): 7 раз
Поблагодарили: 4 раза

Re: Arduino Mega Server

Сообщение pastry777 » Ср фев 03, 2016 6:24 pm

Pitti писал(а):Подскажите, рассматривался вопрос о отправки смс (даже лучше эл.письма) на телефон? На пример при превышении заданного порогового значения сенсоров. Если нет, то как можно его реализовать.
смотрите мое сообщение по теме выше на пару страниц...я сделал это с помощью сервиса temboo.com..
других рабочих вариантов я пока не нашел уже за более чем год поисков...
allexmak1
Сообщения: 12
Зарегистрирован: Пт дек 18, 2015 8:28 pm
Благодарил (а): 4 раза
Поблагодарили: 0

Re: Arduino Mega Server

Сообщение allexmak1 » Ср фев 03, 2016 8:20 pm

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

Re: Arduino Mega Server

Сообщение Alex » Ср фев 03, 2016 8:21 pm

Алекс, при помощи АМС, позволил использовать весь потенциал ардуино через веб-интерфейс, так что МД, для меня, стало ненужным костылем.
Во-во и я об этом. Сколько ни пытаюсь донести эту мысль, народ в своей массе никак не «врубится» в эту фишку. Правда для меня М стал костылём на 80%, а на 20 всё-таки без него не обойтись.
Ответить