Страница 267 из 326

Re: Arduino Mega Server

Добавлено: Вт авг 07, 2018 2:34 pm
ученик
Есть кто воспользовался новой 17 версией АМС для Меги?
Хотел обновится и заодно добавить реализацию управления реле
1 вопрос возможность передавать и принимать данные MD?
2 вопрос
в АМС контакт D3 отдан для подключение реле
как управлять этим реле со стороны MD?
Какие изменения необходимо внести в новой версии
такие-же как и в предыдущей?
присваиваемый IP,Адрес MD.

Re: Arduino Mega Server

Добавлено: Вт авг 07, 2018 3:32 pm
serghei
Пока только запустил с W5500. Слишком много надо переносить кода. И после ESP32 даже 8 сокетов не спасают.
1 Все то же самое , Что и в 016. Только статус дописать надо

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

#ifdef MAJORDOMO_FEATURE


char majorMegaObject[] = "ncMega02";
char majorCommObject[] = "comm_mega02";

byte MAJOR_IP[] = {192, 168, 2, 108};// Адрес Алисы
#define MAJOR_PORT 80
EthernetClient mclient;
2 Реле можно прицепить на любой пин. Если воспользоваться рекомендациями Vladragor, то и управлять можно со сцены.

Re: Arduino Mega Server

Добавлено: Вт авг 07, 2018 4:09 pm
ученик
Я сравнил один скетч Contacts, который задействован у меня, старю версию и новую.
К нему привязан дверной звонок.
И вот в старой версии было явно прописано передача в MD изменение состояния кнопок, а в новой версии того нет
И вот надо изменять новую версию скетча Contacts, или так оставить и он будет отправлять состяние кнопок?

Re: Arduino Mega Server

Добавлено: Вт авг 07, 2018 4:21 pm
serghei
Вышли обе версии кода. Лучше в ветку про прикручиванию железа. Будем сравнивать и сам использую. По управлению реле есть три варианта:
1 Доделать вкладку Keys на 5 реле. Тогда можно ими управлять со страницы AMS вручную и автоматически с МД.
2 Взять тестовый скетч для реле и управлять им по датчику. Надо только размножить на необходимое количество. Статус реле мгновенно отражается на странице.
3 Самый навороченный из серии " Садо-мазахизма" от ser009. Тогда со страницы можно задавать режим в ручную, по времени или по датчику. Опять же только для одного реле. Работает на Дуе.
С логированием на Меге не баловался. Может банально не хватить памяти.
На скрине выше виден статус реле текстом.

Re: Arduino Mega Server

Добавлено: Сб авг 18, 2018 11:41 pm
prapor
Здравствуйте!
Не смог найти в документации и коде AMS 0.16 Arduino, как можно задать нестандартную (не сети класса С) маску для сервера - мне надо 255.255.255.224
Можно ли это сделать и если да, то как?

Re: Arduino Mega Server

Добавлено: Вс авг 19, 2018 12:12 am
serghei
Что бы появилась у меня синхронизация времени , пришлось добавить DNS. Попробуй так же добавить и маску.

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

/*
  Modul Ethernet
  part of Arduino Mega Server project
*/

// Ethernet settings
byte SELF_MAC[] = {0x00, 0x2A, 0xF5, 0x12, 0x67, 0xFE};
byte SELF_IP[] =  {192, 168, 2, 36};
byte DNS[] = {8, 8, 8, 8 };// DNS Гугла
byte GATEWAY[] = {192, 168, 2, 100}; // поставь свой 
byte MASK[] = {255, 255, 255, 224}; // попробуй добавить 

void ethernetInit() {
  Serial.println("Modul Ethernet...");
  Ethernet.begin(SELF_MAC, SELF_IP, DNS, GATEWAY, MASK); // Вызов
В библиотеке есть строки про subnetMask.
Может проскочит ? ))

Код компилируется , но не заливал.

Re: Arduino Mega Server

Добавлено: Вс авг 19, 2018 7:09 pm
prapor
Пасиб! Отрабатывает!

Re: Arduino Mega Server

Добавлено: Вс авг 19, 2018 8:16 pm
serghei
+5. Академический встречный вопрос - а на что это влияет? И что это вообще такое ? :?:

Re: Arduino Mega Server

Добавлено: Вс авг 19, 2018 9:06 pm
prapor
Маска сети или маска подсети - это способ разбиения IP-адреса на 2 части - адрес сети, и адрес собственно узла в сети. Маска может состоять лишь из непрерывной последовательности единиц (в двоичном представлении), единицы отсчитываются с крайнего левого разряда (из 32 из которых и состоит IP-адрес 4 версии), не занятые маской разряды заполняются нулями. Основное назначение маски - определять относиться ли адрес куда нужно отправить данные к локальной или удаленной сети. перед отправкой пакета производится операция "Логическое И" над адресом узла назначения - куда уходит пакет и маской, а также над собственным адресом узла и маской, если результаты равны, то это та же сеть и никаких лишних телодвижений не надо, а если не равны - то надо пакет отправить на адрес маршрутизатора (шлюза, роутера, гейтэвея) и пусть он разбирается дальше с этим пакетом.
Второе назначение маски - разбиение одной сети на более мелкие фрагменты - подсети. Весь диапазон доступных адресов можно пореазть на 2, 4, 8 и тд (степень двойки) частей, что и было в моем случае - одна сеть с 245 действительными адресами был разбита на 8 частей по 30 действительных адресов. Это мне нужно было для того чтобы иметь возможность на маршрутизаторе блокировать доступ к определенным адресам и/или сетям с определенных адресов/сетей.
Вообще, про маски адреса, подсети и пр можно рассказывать долго, лучше всего это описано, на мой взгляд, это про IPv4, у Олиферов в книге "Компьютерные сети", лучше 3 издание во следующих они все испортили в попытке упрощения

Re: Arduino Mega Server

Добавлено: Сб сен 08, 2018 9:31 pm
simprint
svetozar161 писал(а): Пн авг 06, 2018 7:42 pm
Вот к чему я буду стремиться. А то в голове каша полная.