Arduino Mega Server
Модератор: Alex
Re: Arduino Mega Server
И под спойлер спрячте код, 5 экранов занимает )))), пожалуйста..Скомпилировали?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Re: Arduino Mega Server
Спрятал, скомпилировал, но что то долго отклик идет, думает сек. 2 потом открывает страницу )serghei писал(а):И под спойлер спрячте код, 5 экранов занимает )))), пожалуйста..Скомпилировали?
Re: Arduino Mega Server
Ребят а кто нибудь может написать скетч под мои задачи для arduino mega?
- nick7zmail
- Сообщения: 7573
- Зарегистрирован: Пн окт 28, 2013 8:14 am
- Откуда: Екатеринбург
Re: Arduino Mega Server
Задачи то озвучьте...и цену вопроса...тогда скажем - сможем/нет...Ultimo писал(а):Ребят а кто нибудь может написать скетч под мои задачи для arduino mega?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Re: Arduino Mega Server
В общем есть мысли по доработке AMS в плане работы с портами:
Я имею делаю дело с промышленными контроллерами и постараюсь изложить технологию работы с портами ввода/вывода промышленных контроллеров
Пример настроек дискретного входа:
Алгоритм на словах выгледит следующим образом:
Если Alex не против накидаю код. Только понадобиться помощь, чтобы не тратить время при интеграции в проект
Я имею делаю дело с промышленными контроллерами и постараюсь изложить технологию работы с портами ввода/вывода промышленных контроллеров
Пример настроек дискретного входа:
SPOILERSPOILER_SHOW
- Физические данные с каждого порта считываются пи складываются в переменную. DI_OUT
- Для каждого порта задается режим работы DI_MODE (0 - измерение, 1 - имитация)
- Переменная DI_IMIT лежит значение имитации
- Так же можно прикрутить и переменную в которой будет хранится время опроса канала (дребиск)
- Инверсия. Позволяет изменить входной сигнал 1 на 0. И наобарот.
- Также это позволит сохраняя данные а EEprom или на SD при перезагрузке контроллера загрузить данные во временную переменную DI_OUT
- Для каждого порта задается режим работы DI_MODE (0 - измерение, 1 - имитация)
- Переменная DI_IMIT лежит значение имитации
- Так же можно прикрутить и переменную в которой будет хранится время опроса канала (дребиск)
- Инверсия. Позволяет изменить входной сигнал 1 на 0. И наобарот.
- Также это позволит сохраняя данные а EEprom или на SD при перезагрузке контроллера загрузить данные во временную переменную DI_OUT
SPOILERSPOILER_SHOW
Считываем данные, проверяем режим и если режим измерения перекладываем данные в DI_OUT. Если режим имитации то считываемое значение отображаем, но для алгоритмов берем значение из переменной DI_IMIT. И проверяем и инверсию
Re: Arduino Mega Server
Почему Alex должен быть против? Разве я хоть раз кому-то запрещал что-то выдумывать и делиться кодом? Наоборот это всегда только приветствуется.Если Alex не против накидаю код. Только понадобиться помощь, чтобы не тратить время при интеграции в проект
Другое дело, что я из вашего сообщения ни слова не понял и в дистрибутив это включать навряд ли буду. Но если вы выложите это решение на форуме, то возможно оно кому-то понадобится.
А вообще я жду (начиная с первой страницы) когда наступит тот момент, когда народ соберётся, запустит народный проект на Гитхаб, выберет координатора и сможет сам формировать дистрибутив так, как считает нужным.
Re: Arduino Mega Server
Вопрос по авторизации в АМС кто разобрался.
АМС в связке с МД
если заходишь на АМС в браузере все норм запросило пароль и все дальше работаем.....
Хм а как с МД??? не будешь же каждый раз авторизоваться отдельно
http://адрес амс сервера/?rele4=1 к примеру стандартная команда включения реле....
по идее тут же нужно прикрутить имя и пароль что бы команда прошла...но где....
АМС в связке с МД
если заходишь на АМС в браузере все норм запросило пароль и все дальше работаем.....
Хм а как с МД??? не будешь же каждый раз авторизоваться отдельно
http://адрес амс сервера/?rele4=1 к примеру стандартная команда включения реле....
по идее тут же нужно прикрутить имя и пароль что бы команда прошла...но где....
Re: Arduino Mega Server
В связи с неактуальностью MajorDoMoВопрос по авторизации в АМС кто разобрался.
АМС в связке с МД
если заходишь на АМС в браузере все норм запросило пароль и все дальше работаем.....
Хм а как с МД??? не будешь же каждый раз авторизоваться отдельно
http://адрес амс сервера/?rele4=1 к примеру стандартная команда включения реле....
по идее тут же нужно прикрутить имя и пароль что бы команда прошла...но где....
Re: Arduino Mega Server
Но тут дело даже не в МД...По идее оставлять открытым АМС нежелательно и даже дусю если прикручивать в качестве голосового управления то нужны запросы содержащие строку авторизации....В связи с неактуальностью MajorDoMoничего не могу сказать по этому поводу. Но теоретически на стороне MajorDoMo нужно формировать запросы, содержащие строку авторизации. Я с этим не экспериментировал — может быть кто-то другой подскажет.
Re: Arduino Mega Server
Нашел небольшую незначительную ошибку.
При включении модуля дискретных входов не работал вход D31.
Перекопал весь проект!!! Но нашел.
Вкладка contacts
Вот исправленный код.
При включении модуля дискретных входов
Код: Выделить всё
#define CONTACTS_FEATURE Перекопал весь проект!!! Но нашел.
Вкладка contacts
Вот исправленный код.
SPOILERSPOILER_SHOW
Код: Выделить всё
/*
Modul Contacts
part of Arduino Mega Server project
*/
#ifdef CONTACTS_FEATURE
#define cont1pin 27 // HOM
#define cont2pin 31 // CLO
#define OPEN 1
#define CLOSE 0
char cont1object[] = "contHOM";
char cont2object[] = "contCLO";
char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";
char cont2openMess[] = "Open"; char cont2closeMess[] = "Closed";
// states
// 0 - open
// 1 - close
// 2 - not defined
// 3 - not defined and not contXstatus
byte cont1state = 2; byte old_cont1state = 3; byte cont1objectState = 2;
byte cont2state = 2; byte old_cont2state = 3; byte cont2objectState = 2;
void contactsInit() {
pinMode(cont1pin, INPUT);
pinMode(cont2pin, INPUT);
modulContacts = MODUL_ENABLE;
started("Contacts", true);
}
void printAndSend(char obj[], char mess[]) {
#ifdef EVENTS_CONTACTS
timeStamp();
Serial.print(obj);
Serial.print(": ");
Serial.println(mess);
#endif
}
void contactsWorks() {
// cont1 (HOM)
cont1state = digitalRead(cont1pin);
if (cont1state != old_cont1state) {
old_cont1state = cont1state;
if (cont1state == 0) {
cont1objectState = OPEN;
printAndSend(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont1objectState = CLOSE;
printAndSend(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
if (cycle1m) {
old_cont1state = cont1state;
if (cont1state == 0) {
printAndSend(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
printAndSend(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
// cont2 (CLO)
cont2state = digitalRead(cont2pin);
if (cont2state != old_cont2state) {
old_cont2state = cont2state;
if (cont2state == 0) {
cont2objectState = OPEN;
printAndSend(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, OPEN);
#endif
} else {
cont2objectState = CLOSE;
printAndSend(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, CLOSE);
#endif
}
}
if (cycle1m) {
old_cont2state = cont2state;
if (cont1state == 0) {
printAndSend(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, OPEN);
#endif
} else {
printAndSend(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, CLOSE);
#endif
}
}
}
#endif // CONTACTS_FEATURE