Arduino Mega Server

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Вс июл 29, 2018 1:19 pm

Можно попробовать через массив сделать по примеру PowerMonitor-a.

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

#ifdef CONTACTS_FEATURE
#define MAX_CONTACT_SENSORS 30 // max 30
byte pinsCONT[] = {0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15.....};// Перечисляем пины 
byte START_PIN = 1;
byte END_PIN = MAX_CONTACT_SENSORS;
---------------------
/* тут обработка срабатывания /*.
----------------------------
  if (STT == START_PIN && STP == END_PIN) {
    sprintf(buf,"GET /objects/?object .................. // сливать оптом статусы в МД

Я сам вряд ли напишу код правильно , но получилось одним залпом отдать все термо датчики .
Другой вопрос - как это привязать к массиву реле. ( реле работают). Типа если сработал 5 контакт - включи на 30 секунд 4-е реле.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург
Благодарил (а): 121 раз
Поблагодарили: 2010 раз

Re: Arduino Mega Server

Сообщение nick7zmail » Вс июл 29, 2018 1:27 pm

ser009 писал(а):
Вс июл 29, 2018 12:51 pm
код в студию

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

// pins (объявление переменных вначале вкладки)

const byte PIRNUM=6;
byte PIRPIN[PIRNUM] ={39,41,43,45,47,49};
// states
byte PIRSTATE[PIRNUM];
char* PIRNAME[PIRNUM]={"LIV","BED", "KID", "KUH", "WCR", "PRH"};
byte CONNREL[PIRNUM] ={0,2,4,5,6,7}; //реле, связанные с датчиками (основные)
byte PIR[PIRNUM];

// works
void pirsWorks() {
  for(byte i=0; i<PIRNUM; i++) {
  PIR[i] = digitalRead(PIRPIN[i]);
  if (PIR[i] == HIGH) {
     rel_timer_refrash(CONNREL[i]); if(CONNREL[i]==0||CONNREL[i]==2) rel_timer_refrash(CONNREL[i]+1);
     if (PIRSTATE[i] == LOW) {
         detect(PIRNAME[i]); 
         pir_on(CONNREL[i]); ; if(CONNREL[i]==0||CONNREL[i]==2) pir_on(CONNREL[i]+1);//включаем привязанное реле в автоматическом/эко режиме.
         PIRSTATE[i] = HIGH;
          #ifdef MAJORDOMO_FEATURE
            sendRequestM(PIRNAME[i], 1);
          #endif
     }
  } else {
    if (PIRSTATE[i] == HIGH){
      endMmotion(PIRNAME[i]);
      PIRSTATE[i] = LOW;
      #ifdef MAJORDOMO_FEATURE
        sendRequestM(PIRNAME[i], 0);
      #endif
    }
  }
  }
} // pirsWorks()
Вот похожий код для пиров. Для контактов примерно так же делается.

А это отправка в server_ajax

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

#ifdef PIRS_FEATURE
  String makePirs() {
    String s = "";
    for(byte i=0; i<PIRNUM; i++) {
      s += makeTag(BASE_PIR, String(i), String(PIR[i]));
    }
    return s;
  }
#endif
Код с 0.16 версии, 0.17 ещё не смотрел пока.
Кстати тут же ответ на вопрос предыдущего поста))) прочитал его позже, чем этот ответ писал.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server

Сообщение ser009 » Вс июл 29, 2018 1:34 pm

Отлично
svetozar161
Сообщения: 72
Зарегистрирован: Пт янв 13, 2017 11:48 pm
Благодарил (а): 6 раз
Поблагодарили: 3 раза

Re: Arduino Mega Server

Сообщение svetozar161 » Вс авг 05, 2018 11:08 pm

Приветствую. Поставил по всей квартире датчики на основе ESP12 на прошивке Макса. Датчик температуры/влажности и индикатор сегментный. В мажордомо они видятся так как там есть модуль ESP8266. Теперь, хочу сделать контроллер отопления на AMS - сейчас жду SD шилд с али - но не пойму как сделать так, чтобы мои датчики, которые висят на роутере видел контроллер AMS и на основе них принимал решение об термостатировании? Кто-нибудь делал термостат на AMS с датчиками температуры на ESP?
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пн авг 06, 2018 6:20 am

да без проблем,связываете ваш новоявленный девайс с вашими датчиками каким нибудь протоколом,HTTP например и вперед.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн авг 06, 2018 7:37 am

svetozar161 писал(а):
Вс авг 05, 2018 11:08 pm
Кто-нибудь делал термостат на AMS с датчиками температуры на ESP?
Вплотную подхожу к этому вопросу. Пока реально получилось увидеть сеть MySensors на AMS_ESP32 по протоколу UDP. На Меге что то не взлетело. Надо скетч основательно перерабатывать.
Но тут возникает куча не решенных проблем. Что бы эта связка работала , нужны идеальные условия -
Что будет с ESP12 если не будет работать роутер ?
Что будет с регулированием в AMS , если он не увидит ESP12 ?
.......
Без локальной сети Мега сама запустится. Веба конечно не будет.

Сделать термостат на AMS очень просто. Но он сам должен мерить температуру и щелкать реле.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server

Сообщение ser009 » Пн авг 06, 2018 7:42 am

Реализовать не проблема. Появляются дополнительные "звенья" , что неизбежно ведет в уменьшению надежности системы
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн авг 06, 2018 8:04 am

Вот и я к тому же. Единственное возможное применение - это когда нет возможности дотянуться до датчиков по проводам. Одно дело, когда так управляем вытяжкой по датчику влажности , а с котлом надо иметь дополнительные условия - что бы была вода в системе, нормальное давление , проток воды ( завелся насос или нет )...... Два раза так взрывал печку , больше не хочу ))).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server

Сообщение alexsis_76 » Пн авг 06, 2018 9:18 am

Да самый лучший вариант это сокет, устройство всегда будет знать живой датчик или нет,http этого не может,сокет tcp либо udp в локальной сети без разницы.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server

Сообщение serghei » Пн авг 06, 2018 10:51 am

Тогда остался не ясным вопрос. Что бы увидеть UDP пакеты , надо приконнектиться к устройству. В моём случае IP MySensors гейта задан жестко и AMS сначала коннектится к гейту , а затем слушает все ответы. Распарсивать значения уже дело десятое.
А тут предлагают слушать кучу ESP12 с непонятно каким протоколом. И как тогда просто слушать весь траффик без привязки к конкретному устройству ?
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить