1 2 3 4 5 6 7 8 9 10 9/10 9,00оценок: 6

"Народный контроллер" для теплового насоса - 2

Тема в разделе "Геотермальные тепловые насосы", создана пользователем kmvtgn, 13.03.18.

Статус темы:
Закрыта.
  1. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Я вернул флаг. Время странное. Но уже вроде как все ок.
     
  2. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Собрался тут делать небольшую плату для Arduino DUE. Сначала хотел по мельче контроллер, что-то типа ESP32 c wifi, но полазив, почитав про глюки, сырость и потребление в несколько раз больше DUE+W5500 вернулся к DUE, тем более библиотеки уже наработаны.
    Мне это нужно для системы водоподготовки (аэрация, дозирование, промывка, включение насосов, включая насосную станцию, контроль сухого хода, протечек и т. п.).
    Чтоб удаленно через веб лазить и сигнализатор аварий был.
    В принципе подойдет и для ТН.

    Чтобы меньше паять решил основные внешние компоненты (сеть, часы+флеш, SD) в виде китайских готовых плат ставить вертикально:
    upload_2019-5-24_14-30-57.png upload_2019-5-24_14-32-59.png upload_2019-5-24_14-34-56.png
    Будет место под ULN2003, подключение текстового дисплея LCD2004 и нескольких кнопок (планирую 3):
    upload_2019-5-24_14-46-45.png
    Может у кого какие мысли еще есть?
     
  3. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Подойдет к любой станции? Я сейчас в выборе станции.
     
  4. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    @vad711, может куда воткнешь
    Экран по мощнее понравился такой
    На нем, что то и Павел собирал.
     

    Вложения:

    • 01_129ehd2n3uiwefhuie-1024x538.png
    Последнее редактирование: 24.05.19
  5. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    @Pskovsat, видел эту плату, отличная плата, только на ней нет стабилизаторa с 12V и стоит плата в 1.5 раза дороже. Зато уже епром распаян.

    Дисплей графический 12864 по проводам влезет, только мне он не нравится. Если уж графический цеплять, то гораздо лучше варианты есть. У меня завалялась куча 1602 и 2004 - нужно использовать, чтоб зря не пропадали.
     
  6. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    С интелектуальной паузой попрощались?
     
  7. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Что это значит?
     
  8. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Да, мне тоже интересно.
     
  9. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Код:
    // "Интелектуальная пауза" для перекидывания на "ходу" 4-х ходового
    // фактически останов компрессора и обезпечение нужных пауз, компрессор включается далее в vUpdate()
    void HeatPump::ChangesPauseTRV()
    {
      journal.jprintf("ChangesPauseTRV\n");
      #ifdef EEV_DEF
      dEEV.Pause();                                                    // Поставить на паузу задачу Обновления ЭРВ
      journal.jprintf(" Stop operate EEV\n");
      #endif
      if (is_compressor_on()) {  COMPRESSOR_OFF; stopCompressor=rtcSAM3X8.unixtime(); }                             // Запомнить время выключения компрессора
      #ifdef REVI
       checkEVI();                                                     // выключить ЭВИ
      #endif
        journal.jprintf(" Pause for pressure equalization . . .\n");
      _delay(Option.delayTRV*1000);                                   // Пауза 120 секунд для выравнивания давлений
      #ifdef EEV_DEF
      lastEEV=dEEV.get_StartPos();                                     // Выставление ЭРВ на стартовую позицию т.к идет смена режима тепло-холод
      #endif
    }
    я спрашиваю, удобно было в ней сделаны разные части разморозки
    Код:
    // "Интелектуальная пауза" для перекидывания на "ходу" 4-х ходового
    // фактически останов компрессора и обезпечение нужных пауз, компрессор включается далее в vUpdate()
    void HeatPump::ChangesPauseTRV()
    {
      journal.jprintf("ChangesPauseTRV\n");
      #ifdef EEV_DEF
      dEEV.Pause(); journal.jprintf("Stop operate EEV\n");     // Поставить на паузу задачу Обновления ЭРВ
      if(get_modWork()==pDEFROST) { dEEV.set_EEV(EEV_CLOSE_STEP); journal.jprintf(" EEV closed\n"); } // Pskovsat пока не остановился компрессор, затыкаем ЭТРВ, откачивается оставшаяся жидкость из испарителя.
      #endif
      if (is_compressor_on()) {  COMPRESSOR_OFF; stopCompressor=rtcSAM3X8.unixtime(); }   // Запомнить время выключения компрессора
      if(get_modWork()==pDEFROST) command_completed = rtcSAM3X8.unixtime();               // поменялся режим
    
      if(!dRelay[PUMP_OUT].get_Relay()) { dRelay[PUMP_OUT].set_ON();             // Pskovsat Возможно идем из super бойлера или
      _delay(DELAY_AFTER_SWITCH_RELAY); }                                        // просто насос СО неработает, ВКЛЮЧИТЬ!!!
      Pump_OutSpeed(false);
      #ifdef RSUPERBOILER
      if (dRelay[RSUPERBOILER].get_Relay()) { _delay(DELAY_AFTER_SWITCH_RELAY); dRelay[RSUPERBOILER].set_OFF(); }  // Pskovsat Возможно лучше не отключать зависит от местоположения предконденсатора!!!
      #endif
      #ifdef REVI
       checkEVI();                                                     // выключить ЭВИ
      #endif
      journal.jprintf("Pause pressure equalization . . .\n");
    
      while (rtcSAM3X8.unixtime() - stopCompressor < Option.delayTRV)        // пауза для выравнивания давлений
      {
      _delay(1000);
      if((get_State() == pOFF_HP) || (get_State() == pSTARTING_HP) || (get_State() == pSTOPING_HP)) break; // Pskovsat Если попали в эти условия, возможно ошибка идет выключение выскакиваем.
      }
      #ifdef EEV_DEF
      if ((get_errcode()==OK) && (get_modWork()!=pDEFROST) && (get_State() != pSTOPING_HP) && (get_State() != pOFF_HP)) // Pskovsat Не: ошибока, разморозка, стоп, выключен.
      lastEEV=dEEV.get_StartPos();                                           // То ЭРВ на стартовую позицию.
      #endif
    }
     
  10. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Функция переименовалась и называется теперь по другому - Switch_R4WAY().
    Делать разморозки в функции переключения реверсивного клапана так себе затея, но если тебе хочется, то можешь туда свой код перенести.
     
  11. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    Я так понял Switch_R4WAY() делает, то что делал
    Код:
    // Поставить 4х ходовой в нужное положение для работы в заваисимости от Prof.SaveON.mode
    // функция сама определяет что делать в зависимости от режима
    // параметр задержка после включения мсек.
    #ifdef RTRV    // Если четырехходовой есть в конфигурации
    void HeatPump::set_RTRV(uint16_t d)
    {
      if(get_modeHouse() == pHEAT)         // Реле переключения четырех ходового крана (переделано для инвертора). Для ОТОПЛЕНИЯ надо выключить,  на ОХЛАЖДЕНИЯ включить конечное устройство
      {
        dRelay[RTRV].set_OFF();            // отопление
      } else                               // во всех остальных случаях
      {
        dRelay[RTRV].set_ON();             // охлаждение
      }
      _delay(d);                           // Задержка на 2 сек
    }
    #endif
    а основные задержки выполняются при переключении насосов.
     
  12. vad711
    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964

    vad711

    Живу здесь

    vad711

    Живу здесь

    Регистрация:
    30.04.14
    Сообщения:
    5.267
    Благодарности:
    4.964
    Адрес:
    МО
    Эта вообще не использовалась.
     
  13. Romanmp
    Регистрация:
    23.03.12
    Сообщения:
    97
    Благодарности:
    65

    Romanmp

    Живу здесь

    Romanmp

    Живу здесь

    Регистрация:
    23.03.12
    Сообщения:
    97
    Благодарности:
    65
    Адрес:
    Харьков
    Всем привет!
    предлагаю несколько исправлений в код:

    файл WebServer. ino
    строка 884 привести к виду
    Код:
    } else if (strcmp(str,"COUNT")==0) // Команда RESET_COUNT
    
    иначе не работает сброс сезонных счетчиков
    Вэб морда, файл lan. html
    Код:
      <td>Аппаратный mac адрес</td>
           <td nowrap><input id="get_network-mac" type="text" ><input type="submit" value=">" onclick="if (validmac('get_network-mac')) setParam('get_Network(MAC)');"></td>
    
    включить проверку на валидность МАС адреса
    и функцию validmac в scripts. js привести к виду:
    Код:
    function validmac(valimac) {
       var re = /^[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}:[0-9a-fA-F]{2}$/;
       var valimac = document.getElementById(valimac).value;
       var valid = re.test(valimac);
       if(!valid) alert('Аппаратный mac адрес введен неверно!');
       //document.getElementById('message').innerHTML = document.getElementById('message').innerHTML+'<br />'+output;
       return valid;
    }
    отправку уведомлений переписал без лишних переменных, обновленные файлы по ссылке. Тестировалось в версии 1.017

    https://drive.google.com/open?id=1tfPLo2qAHGtA6WGxkl-xyxFGVnkZ2Ltp
     
    Последнее редактирование: 26.05.19
  14. Pskovsat
    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231

    Pskovsat

    Живу здесь

    Pskovsat

    Живу здесь

    Регистрация:
    04.12.12
    Сообщения:
    2.497
    Благодарности:
    1.231
    Адрес:
    Псков
    При компиляции, в моей конфигурации ругается на 384 строчку if (dSDM.get_readState (3) = OK) {
    в heatpump. ino
    'dSDM' was not declared in this scope
     
  15. dimex2015
    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372

    dimex2015

    Живу здесь

    dimex2015

    Живу здесь

    Регистрация:
    25.10.15
    Сообщения:
    1.947
    Благодарности:
    372
    Адрес:
    Минск
    Это какая версия?
     
Статус темы:
Закрыта.