Arduino Mega Server

Модератор: Alex

Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Я пробовал :). Вообще-то логику работы можно проследить по коду, но перевожу на простой человеческий язык.

Код этого модуля кочует из версии в версию и берёт своё начало ещё с тех времён, когда АМС-а вообще не было. Работа ключа зависит от переменной goLight, которая раньше выставлялась посылками

rele4=0 или rele4=1

из MajorDoMo. Мной (по причине того, что я вообще забыл, как MajorDoMo выглядит :) ) и серее всего никем не используется, но вы можете подключить электронный ключ и в любом месте скетча управлять им, изменяя состояние переменной goLight.
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm

Re: Arduino Mega Server

Сообщение Sps »

Разбираясь в логике работы Keys с другими модулями АМС, определил, что он общается с Модуль Server Commands, а в коде Server Commands есть элементы управления LED я и подумал, что Keys и управление светом связаны.

Пытался через управление светом (Свет на кухне) запустить Keys – реакции нет, а оказывается тут MajorDoMo замешан, ну это не про меня, я тоже не знаю этого зверя.

Тогда вопрос, чем управляют кнопки (Свет на кухне) или на какой пин подключиться, чтобы срабатывало реле или эл. ключ. На АМС есть готовое решение или для моего случая придется доработать и как вариант, прикрутить кнопку (Свет на кухне) к переменной goLight.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Тогда вопрос, чем управляют кнопки (Свет на кухне)
Они управляют подключённой светодиодной лентой
На АМС есть готовое решение или для моего случая придется доработать и как вариант, прикрутить кнопку (Свет на кухне) к переменной goLight.
Замените кусок кода в модуле server_ajax

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

void setControl() {
  if (StrContains(HTTP_req, "light1=1")) {
    light1 = 1;
    red(led1, 127);
  } 
  else if (StrContains(HTTP_req, "light1=0")) {
    light1 = 0;
    black(led1);
  } 
на

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

void setControl() {
  if (StrContains(HTTP_req, "light1=1")) {
    light1 = 1;
    goLight = 1;
  } 
  else if (StrContains(HTTP_req, "light1=0")) {
    light1 = 0;
    goLight = 0;
  } 
и первая кнопка будет управлять ключом (писалось без проверки, но должно работать).
Sps
Сообщения: 45
Зарегистрирован: Вт окт 27, 2015 4:23 pm

Re: Arduino Mega Server

Сообщение Sps »

Да, все заработало, правда в таком исполнении при нажатии кнопки свет выключается, а кнопка показывает, что он включен и наоборот при выключении, но это уже детали, главное работает. Огромное спасибо за быструю помощь.
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

Да, все заработало, правда в таком исполнении при нажатии кнопки свет выключается, а кнопка показывает, что он включен и наоборот при выключении
Поменяйте goLight = 1 и goLight = 0 местами и всё заработает правильно.
elik745i
Сообщения: 17
Зарегистрирован: Сб окт 26, 2013 8:39 pm

Re: Arduino Mega Server

Сообщение elik745i »

1) Еле нашел эту ветку форума
2) почему сразу скачав версию скажем 016, хотя уверен и с другими версиями тоже самое не удается откомпиллировать и залить скетч, ругается вот на это:
'setSyncProvider' was not declared in this scope, помимо этого есть еще другие ругательства, но о них попозже. Наверное 95% наткнувшихся на эти грабли все бросят и даже не будут идти далее и искать к примеру где что спросить. Инструкцию читал, указал путь и всеравно тоже самое если что.
3) Проект отличный, понимаю, с этого и надо было начать, но надо устранить эти недочеты. Понимаю версия ардуины вероятно другая, у меня не пошло на самой актуальной сейчас на ардуино 1.6.11, вероятно библиотеки у вас другие, вероятно еще и кывырялись в системных файлах пока все как надо не заработало, но в таком случае в закачку и свой ардуино папку выкладывайте нет?

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

и на последок. Вот моя версия немного другого поля, нужна помощь в реализации некоторых ваших фич, к примеру авторизации (хотя изза ошибок так и не посмотрел как она работает)...

https://www.youtube.com/watch?v=2_oe7soNQ98

http://www.voltrans.az/?p=1720
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

Какая у Вас версия платы!? Мега или Дуя? Компилируйте в 1.6.5 r2 Скачайте с официального сайта АМС. Для Меги всё компилится без ошибок. С Дуей намного сложнее, но сейчас готовлю пост с " лекарством". Во всех остальных версиях могут быть ошибки компиляции.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm

Re: Arduino Mega Server

Сообщение Alex »

почему сразу скачав версию скажем 016, хотя уверен и с другими версиями тоже самое не удается откомпиллировать и залить скетч
Потому, что перед тем как компилировать, нужно читать документацию, где, в частности, неоднократно категорически рекомендуется использовать версию среды Ардуино 1.6.5 r2 и никакую другую.

Кроме этого, в документации описывается большое количество проблем и подводных камней, с которыми вы будете постоянно сталкиваться, пока не дадите себе труд изучить документацию.
Allar
Сообщения: 35
Зарегистрирован: Пн авг 22, 2016 9:22 am

Re: Arduino Mega Server

Сообщение Allar »

Такой вопрос,
Планируется ли поддержка LCD дисплея как было сделано в PowerMonitor?
Последний раз редактировалось Allar Ср сен 14, 2016 6:39 pm, всего редактировалось 1 раз.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв

Re: Arduino Mega Server

Сообщение serghei »

В ветке " Подключение железа к АМС " я расписал как подключить LCD 20*4 . Вообще можно стандартными библиотеками подключить любой экран - главное,чтобы памяти хватило. Критично на Меге ,на Дуе и ЕСП без проблем.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить