Arduino Mega Server

Модератор: Alex

Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

ser009 писал(а): Вс июл 29, 2018 12:11 pm Привет всем.
Появилась необходимость доработать код для входов и выходов AMS.
Дело в том, что есть скажем пример для дискретного входа "contacts". Там код для 2 входов (HOM, CLO). Все хорошо и понятно написано.
2 входа - 2 похожих куска кода по ~ 40 строк каждый. Ну да для двух входов нормально, ну а если этих входов 40? Это же какой длины портянка получится. Поэтому необходимо допилить код...
У меня давно переписано на for (i=1, i<количество входов, i++) {и тут повторяющийся код}
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am

Re: Arduino Mega Server

Сообщение ser009 »

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

Re: Arduino Mega Server

Сообщение serghei »

Можно попробовать через массив сделать по примеру 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
Откуда: Екатеринбург

Re: Arduino Mega Server

Сообщение nick7zmail »

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

Re: Arduino Mega Server

Сообщение ser009 »

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

Re: Arduino Mega Server

Сообщение svetozar161 »

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

Re: Arduino Mega Server

Сообщение alexsis_76 »

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

Re: Arduino Mega Server

Сообщение serghei »

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

Re: Arduino Mega Server

Сообщение ser009 »

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

Re: Arduino Mega Server

Сообщение serghei »

Вот и я к тому же. Единственное возможное применение - это когда нет возможности дотянуться до датчиков по проводам. Одно дело, когда так управляем вытяжкой по датчику влажности , а с котлом надо иметь дополнительные условия - что бы была вода в системе, нормальное давление , проток воды ( завелся насос или нет )...... Два раза так взрывал печку , больше не хочу ))).
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить