Arduino Mega Server
Модератор: Alex
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
И Вам Спасибо за казалось бы бредовую идею прикрутить сеть WiFi-Iot к AMS ! Я сам был сильно удивлён - оказывается Alex заранее всё предусмотрел ! Оставалось только скормить нужные данные.
Теперь сервер умеет слушать UDP , HTTP и распарсивать все что валится в сериал-порт. Это уже четвертая независимая сеть простых датчиков.
Теперь сервер умеет слушать UDP , HTTP и распарсивать все что валится в сериал-порт. Это уже четвертая независимая сеть простых датчиков.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Воткнул пример пинга из библиотеки. Вроде заработало!!!! Но там только одно устройство. Теперь надо думать как адаптировать для хотя бы десяти.....Это пинг рутера. Работающий комп в этой сети что то не видит.
- Reply[13] from: 192.168.2.100: bytes=64 time=3ms TTL=128
2018-09-21 14:15:35 1914 (23%)
2018-09-21 14:15:53 Host 192.168.2.108 not connected (GET /objects/?object=packPower2&op=m&m=update&u=51.91&p1=178.12&p2=172.42&p3=99.61&p4=100.57&p5=177.15&p6=97.80&p7=94.89&p8=96.79&p9=95.82&p10=96.10&p11=95.76&p12=96.1&p13=94.20 HTTP/1.0)
Reply[14] from: 192.168.2.100: bytes=64 time=3ms TTL=128
PS/ За два часа ни одного прокола. Можно пользоваться.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 136
- Зарегистрирован: Вс сен 02, 2018 8:03 am
- Благодарил (а): 2 раза
- Поблагодарили: 0
Re: Arduino Mega Server
Подключил геркон к AMS к пину 27.
На странице ports.htm на схеме портов при открытии/закрытии окна состояние пина меняется. Когда окно закрыто - OFF, открыто - ON.
А в шапке ничего не меняется - CN1 всегда красного цвета. Я думал, что должно быть типа закрыто - зеленый, открыто - красный.
На странице ports.htm на схеме портов при открытии/закрытии окна состояние пина меняется. Когда окно закрыто - OFF, открыто - ON.
А в шапке ничего не меняется - CN1 всегда красного цвета. Я думал, что должно быть типа закрыто - зеленый, открыто - красный.
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
А резистор с пин27 на +5 вольт ?? Неа ??? Замкни просто пин27 на землю а потом на +5 вольт. В даш-панели обновление пройдет через 3 секунды.
И кажется в дистибутиве был косяк . Может в 017 это исправили. Конкретно скажу только завтра вечером.
И кажется в дистибутиве был косяк . Может в 017 это исправили. Конкретно скажу только завтра вечером.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Мега на работе. Завтра вечером вышлю правильный код. И проверь на 31 пине.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
В 016 версии разница в коде - там был косяк.Кажется в ажаксе. ser009 исправил еще год назад. В 017 не проверял. Завтра посмотрю. А сейчас на Дуе.
На Дуе точно работает
Оригинал и исправленное.
На Дуе точно работает
Код: Выделить всё
/*
Module Contacts
part of Arduino Mega Server project
*/
/*
#ifdef CONTACTS_FEATURE
#define CONT1_PIN 27
#define CONT2_PIN 31
#define OPEN 1
#define CLOSE 0
char cont1object[] = "cont1";
char cont2object[] = "cont2";
char cont1openMess[] = "Open"; char cont1closeMess[] = "Closed";
char cont2openMess[] = "Down"; char cont2closeMess[] = "Norm";
// states
// 0 - open
// 1 - close
// 2 - not defined
// 3 - not defined and not contXstatus
byte cont1state = 2; byte old_cont1state = 2; byte cont1objectState = 2;
byte cont2state = 2; byte old_cont2state = 2; byte cont2objectState = 2;
void contactsInit() {
pinMode(CONT1_PIN, INPUT);
pinMode(CONT2_PIN, INPUT);
moduleContacts = MODULE_ENABLE;
started("Contacts");
}
void printContMess(char obj[], char mess[]) {
timeStamp(); Serial.print(obj); Serial.print(F(": ")); Serial.println(mess);
}
void contactsWorks() {
// cont1
cont1state = digitalRead(CONT1_PIN);
if (cont1state != old_cont1state) {
old_cont1state = cont1state;
if (cont1state == 0) {
cont1objectState = OPEN;
printContMess(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont1objectState = CLOSE;
printContMess(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
// cont2
cont2state = digitalRead(CONT2_PIN);
if (cont2state != old_cont2state) {
old_cont2state = cont2state;
if (cont2state == 1) {
cont2objectState = OPEN;
printContMess(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont2objectState = CLOSE;
printContMess(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
} // contactsWorks()
#endif // CONTACTS_FEATURE
*/
#ifdef CONTACTS_FEATURE
#define cont1pin 27 // HOM
#define cont2pin 31 // CLO
#define OPEN 1
#define CLOSE 0
char cont1object[] = "cont1";
char cont2object[] = "cont2";
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);
moduleContacts = MODULE_ENABLE;
started("Contacts");
}
void printContMess(char obj[], char mess[]) {
timeStamp(); Serial.print(obj); Serial.print(F(": ")); Serial.println(mess);
}
void contactsWorks() {
// cont1 (HOM)
cont1state = digitalRead(cont1pin);
if (cont1state != old_cont1state) {
old_cont1state = cont1state;
if (cont1state == 0) {
cont1objectState = OPEN;
printContMess(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
cont1objectState = CLOSE;
printContMess(cont1object, cont1closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, CLOSE);
#endif
}
}
if (cycle1m) {
old_cont1state = cont1state;
if (cont1state == 0) {
printContMess(cont1object, cont1openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont1object, OPEN);
#endif
} else {
printContMess(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;
printContMess(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, OPEN);
#endif
} else {
cont2objectState = CLOSE;
printContMess(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, CLOSE);
#endif
}
}
if (cycle1m) {
old_cont2state = cont2state;
if (cont1state == 0) {
printContMess(cont2object, cont2openMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, OPEN);
#endif
} else {
printContMess(cont2object, cont2closeMess);
#ifdef MAJORDOMO_FEATURE
sendRequestM(cont2object, CLOSE);
#endif
}
}
}
#endif // CONTACTS_FEATURE
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
-
- Сообщения: 2357
- Зарегистрирован: Пт апр 20, 2012 12:53 pm
- Благодарил (а): 42 раза
- Поблагодарили: 262 раза
Re: Arduino Mega Server
Этого ничего делать не надо — библиотека сама периодически синхронизирует время.Так и есть...только при старте. Я приводил пример как сделать синхронизацию периодической.
Друзья! После того, как на главной странице сайта исчез список последних сообщений на форуме, я стал пропускать ваши вопросы потому, что просто не вижу их. Поэтому ответы либо задерживаются, либо вы их не получаете вовсе. Я уже поднимал этот вопрос, ещё раз хочу обратить на это внимание: Сергей, верните список последних сообщений! (Тот список, который есть, слишком короткий и работает по неправильному алгоритму.)Alex , а модуль " Ping" хоть как то у Вас работал ?
По сути вопроса: Ping работал, хоть и плохо, но с переходом на какую-то версию совсем перестал, поэтому я его отключил.
Да, serghei молодец — сам учится и другим помогает.Огромную благодарность выражаю пользователю serghei за помощь
Вы не представляете сколько ещё и чего Alex предусмотрел. В отличие от прочей лабуды, АМС вещь СИСТЕМНАЯ (если вы понимаете о чём я).Я сам был сильно удивлён - оказывается Alex заранее всё предусмотрел !
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Arduino Mega Server
Это я уже понял очень давно , поэтому и стараюсь сделать его главным сервером в доме. И самое главное - он НЕ ГЛЮЧИТ !! Ни одна платформа ! И если что то не работает , то это ТОЛЬКО из - за кривых рук.
А напичкивание функционалом - так это коллективный процесс . Я только выступаю в роли подопытного... И все , чего добился - это благодаря трем моим учителям - форумчанам.
To schel4ok
Работа AMS состоит из 4-х частей:
1 Код
2 Вкладка Ажакс
3 СКРИПТ !!!!
4 Вывод в HTML.
И если на одной странице все работает правильно , а на другой нет - значит код не причем и косячит Scripts.js Ну или в проводных AMS это Dash.js Надо там ковыряться.
"Ping" у меня сейчас для W5500 . Почему то рутер видит , а любой другой сервер нет. Хотя просто меняю IP адрес.
Всё это нужно - что бы один сервер видел состояние остальных. Ну это очередная хотелка )).
PS / Самая большая награда для меня - это благодарность от таких же начинающих как и я....
PSS/ Банальный пример - в одном проекте для 8266 увидел , как со страницы попасть на любую другую. Цена вопроса - ОДНА строчка в HTM блоке. Теперь можно применить везде где это нужно....
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS