Arduino Mega Server

Модератор: Alex

ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm

Re: Arduino Mega Server

Сообщение ipz »

Установил AMS для целей обучения)))
Прикрутил Livolo, чтоб не простаивал почем зря.

Есть предложение пересмотреть формат команд (на усмотрение Алекса). Сейчас команды сервер воспринимает в формате

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

http://MEGA_IP/&rele4=1 
Если мега будет управлять более сложными процессами - я бы предпочел передавать отдельно команду, отдельно параметры. В моем случае это могла бы быть строка

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

http://MEGA_IP/livolo?id=xxxxx&key=Y 

Тогда парсинг бы выглядел следующим образом:

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

void parseCommands(EthernetClient cl) {
  int posBegin;
  int posEnd;
  int posParam;

  if (request.indexOf("/") >= 0) {
    posBegin = request.indexOf("/")+1;
    posEnd = request.indexOf("HTTP");

    if (request.indexOf("?") >= 0) {
       posParam = request.indexOf("?");
       command = request.substring(posBegin, posParam);              
       parameter = request.substring(posParam + 1, posEnd - 1);              
    } else {
        command = request.substring(posBegin, posEnd - 1);              
        parameter = "";
      }

    Serialprint("command: "); Serial.println(command);
    Serialprint("parameter: "); Serial.println(parameter);
          
    setKey();
    
    #ifdef LEDS_FEATURE
      setNightLed();
      setColorLed();
    #endif

    #ifdef LIVOLO_FEATURE
      livolo_switch();
    #endif
    
    // erase request
    request = "";
  } // if (url.indexOf("?") >= 0)
} // parseCommands
 
В результате в переменной command будем иметь livolo, а в переменной parameter id=xxxxx&key=Y. Вторая переменная будет уже парсится в соответствующей функции, если команда соответствует.

Я переделаю, конечно, свой модуль, чтобы он работал с парсингом из стандартной поставки. Но душа не лежит)))
ipz
Сообщения: 238
Зарегистрирован: Чт ноя 26, 2015 10:54 pm

Re: Arduino Mega Server

Сообщение ipz »

Как-то так.
В версии AMS 0.15 пин 8 занят модулем NRF24. Надо задать любой свободный (перечислены на закладке doc) в строке

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

Livolo livolo(8) 
PS: Проблема оказалась в том, что разные браузеры отправляют запрос по 3 - 5 раз в промежуток времени до 4 секунд. Для livolo это критично, т.к. одна и та же кнопка key=8 работает как переключатель. Поэтому свет включался/выключался по нескольку раз.
Пришлось запоминать для каждого id время, когда ему отправлялась какая-нибудь команда.
Массив идентификаторов предполагает 4 значения (можно поменять)
Задержка, в течении которой новая команда не будет отправлена, установлена в 4 секунды, т.к. мой SmartTV пойман на том, что отправлял 5-й запрос на 3899 миллисекунде.

UPD: Мне кажется, что клиенту нужно что-то отвечать после обработки команды, чтоб он не бомбил запросами, но что отвечать не знаю))
Вложения
livolo.7z
(1.45 КБ) 265 скачиваний
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

Добрался до AMS 0.15. Загрузил, посмотрел...На страничке сети попытался записать ip-адрес в eeprom, выдало сообщение - что это всего лишь альфа)) Где зашиты примеры работы с eeprom?

Проапгрэйдил код своего "урезанного" AMS до 0.15 версии. Теперь медитирую на точки в мониторе порта =D.

Так же запилил рекомендации от alexsis_76 в серверную часть. Кэширование однако тащит)) Раза в 3-4 быстрее стало перещелкиваться между страничками. Однако когда заходишь по ip-адресу (без указания страниц) такое ощущение, что кэширование не работает. alexsis_76, у тебя так же? Есть идеи как заставить и в этом случае из кэша грузить? А то там грузится из кэша только какой-то sovetnik-co.js (кстати что это?)

UPD: с sovetnik разобрался - эт одно из добавлений, про остальное - вопрос остаётся.
Вложения
22.jpg
22.jpg (226.69 КБ) 13358 просмотров
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

nick7zmail писал(а):..... Раза в 3-4 быстрее стало перещелкиваться между страничками....... А то там грузится только какой-то sovetnik-co.js (кстати что это?)
У меня такого файла нет. Когда первый раз захожу на страницу-чесно грузит с карты секунды 3-5. Потом из кеша мгновенно.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

serghei писал(а): У меня такого файла нет. Когда первый раз захожу на страницу-чесно грузит с карты секунды 3-5. Потом из кеша мгновенно.
С файлом разобрался - это одно из дополнений хрома. Если на дуе грузит 3-5 сек, то на меге - это 10-15...в лучшем случае 8. Было бы неплохо, если бы первое обращение тоже кэшировалось.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Так на то оно и первое! Мега и W5100 да,секунд 10 грузится.Потом выставляешь время,в течение которого браузер помнит страницу.Причем ХР + хром = пустые HTML страницы, то есть вообще никак.7 + опера все летает на дуе, мега очень тяжело и не может нормально открыть полноэкранное демо- картинки есть,но нет значений. Сейчас на дуе вывел полноэкранный вольтметр, уже день бьюсь ,чтобы вывести температуру сенсора, замучался с индификаторами
градусника. Хотя на LCD без проблем. В общем не одно так другое- Мега отлично работает с электро,так не рисует демо. У дуи всё летает,так не работает электро))) Жесть. (похоже,всетаки спалил А1, хотя на других скетчах как то работает...)
P.S. Не подскажите мне что-же надо подставить в FULL2 чтобы вывести значение температуры сенсора? HTML на фоне картинки есть....
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

serghei писал(а):Так на то оно и первое! Мега и W5100 да,секунд 10 грузится.Потом выставляешь время,в течение которого браузер помнит страницу.
Ну дак кэш то на компе храниться, он не обновляется при повторном входе, если время не вышло. По идее из кэша может (как я думаю) и заход по ip-адресу грузиться. Вопрос - как это сделать?))
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Тут ничем помочь не могу. Из-за хитрого провайдера захожу пока по локалке
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

serghei писал(а):Тут ничем помочь не могу. Из-за хитрого провайдера захожу пока по локалке
Дак я тоже по локалке)) из инета доступен только MD... и то не по ip, а по ddns.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

я пробросил порт в АМС и захожу на работе удаленно.Дома так не получается
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить