Re: Arduino Mega Server
Добавлено: Ср янв 18, 2017 5:55 pm
И под спойлер спрячте код, 5 экранов занимает )))), пожалуйста..Скомпилировали?
Спрятал, скомпилировал, но что то долго отклик идет, думает сек. 2 потом открывает страницу )serghei писал(а):И под спойлер спрячте код, 5 экранов занимает )))), пожалуйста..Скомпилировали?
Задачи то озвучьте...и цену вопроса...тогда скажем - сможем/нет...Ultimo писал(а):Ребят а кто нибудь может написать скетч под мои задачи для arduino mega?
Почему Alex должен быть против? Разве я хоть раз кому-то запрещал что-то выдумывать и делиться кодом? Наоборот это всегда только приветствуется.Если Alex не против накидаю код. Только понадобиться помощь, чтобы не тратить время при интеграции в проект
В связи с неактуальностью MajorDoMoВопрос по авторизации в АМС кто разобрался.
АМС в связке с МД
если заходишь на АМС в браузере все норм запросило пароль и все дальше работаем.....
Хм а как с МД??? не будешь же каждый раз авторизоваться отдельно
http://адрес амс сервера/?rele4=1 к примеру стандартная команда включения реле....
по идее тут же нужно прикрутить имя и пароль что бы команда прошла...но где....
Но тут дело даже не в МД...По идее оставлять открытым АМС нежелательно и даже дусю если прикручивать в качестве голосового управления то нужны запросы содержащие строку авторизации....В связи с неактуальностью MajorDoMoничего не могу сказать по этому поводу. Но теоретически на стороне MajorDoMo нужно формировать запросы, содержащие строку авторизации. Я с этим не экспериментировал — может быть кто-то другой подскажет.
Код: Выделить всё
#define CONTACTS_FEATURE Код: Выделить всё
/*
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