Контроль температуры воды в газ. колонке

    Я очень люблю проводить время в ванной, даже очень люблю.
    Ничего нет лучше взять пивка, жареных пельмешек, айпадик и быдлокодить лежа в горячей водичке.

    Но эту идилию нарушает ужасное существо, и зовут его «Газовая колонка».


    Суть проблемы:

    Дом у нас старый, трубопроводы соответственно тоже старые, и давление в водянном стояке просто отвратительное.

    Если вы включите воду из крана и настроите колонку крутилками на 40 градусов, то она вам будет выдавать 40 градусов… но недолго. Стоит вам включить душ как температура резко взлетит до 50, а то и выше. Также взлет зависит от дня недели(в выходные график температуры воды при неизменной настройке колонки выглядит как визуализация какого-либо дабстепа).

    Причина проста, при включении душа т.к. диаметр душевого шланга меньше чем диаметр трубы то через теплообменник в колонке проходит меньшее количество воды при одинаковом пламени. Соответственно вода греется сильнее. Такойже эффект наблюдается в выходные когда все принимают водные процедуры и давление в общей системе падает еще сильнее, также данный эффект может наблюдатся от чего угодно в плоть до фазы луны и положения Сатурна.

    План мести я вынашивал очень давно, но поскольку я очень далек от схемотехники — то никак не решался.
    Но вот час расплаты наступил и я решился.

    Поехали©

    Итак мне потребовалось:
    — Ардуино Уно
    — простенький сервопривод
    — проводочки, резисторы и прочая мелочевка
    — кот который постоянно утаскивает эту самую мелочевку

    Колонка у меня Oasis 20RG
    image

    Что меня толкнуло на создание девайса, так это то что колонка показывает текущую температуру воды, а значит есть датчик который можно прочитать.



    Как видно из фотки — левая ручка-крутилка отвечает за высоту пламени, ей то и рулится температура, её то и будем крутить.



    Все добро заказал на сайте амперка.ру, да, с ебея былобы в разы дешевле и стоило бы копейки. Но жажда мести не могла ждать.

    Итак сняв лицевую панель был обнаружен датчик температуры на выходе горячей воды

    который представляет собой обычный термистор.
    Включением его в делитель напряжения и воткнув данные в аналоговый вход я получил аналоговое значение, которое путем нехитрых манипуляций и функции map было переведено в температуру.

    На самом деле тут я долго мучался потому, что напроч забыл видеоурок Джереми Блума о делителях напряжения, но посмотрев еще раз быстро все схватил, дело оставалось за малым.

    Температуру я получал, осталось разместить серву и придумать механику которая будет крутить ручку шпильки.

    Серву разместил четко под шпилькой


    думал как ее закрепить, сначала просверлил дырочки под крепление, но металл колонки оказался прочнее метала болтов на которых моментально сьелась резьба.
    Был взят незамениемый материал — нейлоновые стяжки. Зафикисровалось намертво.


    дальше меня заклинило, не знаю что на меня нашло но я никак не мог придумать как механически соеденить серву со шпильеой, в голове крутилась идея про коромысло, но никак не материализовалась. Слава богу в Q&A подсказали, в итоге из текстолита было вырезано коромысло такойже длины как на серве, и наклеено на шпильку.
    Тяги были сделаны из гибкой проволоки(потом заменены).

    Далее, я сделал так чтобы при включении колонки — включался весь процесс, незачем пытатся повысить температуру когда колонка выключена. Для этого монитрю провод питания экранчика(который работает только при включеной колонке) на предмет напряжения. И если оно есть — запускаю процесс.

    Также я написал т.н. «разогрев» — контроллер ждет 10 секунд после вклюения колонки а только потом начинает работать. Сделано для того чтобы теплообменник успел нагрется.

    В итоге родилась альфа-версия контроллера (извиняюсь за плохое видео, дальше — лучше):



    После пары тестов были замечены следующие баги:

    Ну во первых очевидный баг с тягами, они мягкие и не натянутые, соответсвенно существует люфт который мешает быстрому выставлению температуры.
    В закромах был найден кусок медной проволоки и нехитрыми манипуляциями сделаны тру-тяги.

    Замеряем:


    Получилось:


    Следующий баг был в том что датчик температуры внезпано показывал на 20 градусов меньше, но через несоклько секунд возвращался в нормальное состояние. Долго я это ловил и в итоге понял в чем дело.
    Датчик я запитал от 3.3в выходна на ардуино, незнаю почему но эти самые 3.3 скакали, тем самым меняя показания датчика. Запитав датчик от 5В все стало нормально.

    В итоге получился бета тест:

    К сожалению незнаю как соденеить два видео в одно поэтому:
    Логи ардуинки:


    Серва с новыми тягами:


    Ну вот в принципе и все, далее привожу листинг программы, после написания статьи программа была еще немного дотюнена дабы настроить ее на максимально бстрое выравнивание температуры.

    Листинг:
    #include <Servo.h>
    int termalPin=A5;
    int enablePin=8;
    int ledPin=7;
    int temp;
    int lastTemp=0;
    boolean enabled=false;
    static int minAngle=5;
    static int maxAngle=100;
    static int needTemp=40;
    Servo myservo;
    
    void setup()
    {
    
    //включаем сериал
      Serial.begin(9600); 
    //устанавливаем режимы пинов
      pinMode(enablePin,INPUT);
      pinMode(ledPin,OUTPUT);
    }
    
    void loop()
    {
    //мапим показания датчика на температуру
     temp = map(analogRead(termalPin),800,635,31,51);
     if(digitalRead(enablePin)==HIGH)
      {
    //колонка включена
        if(!enabled)
        {
    //если до этого не была включена
    
    //атачим серву
          myservo.attach(9);
    //ставим на середину
          myservo.write(50);
         Serial.println("WARMING UP BOILER.");
    //ждем пока колонка разогреется
          delay(10000);
          Serial.println("BOILER READY!");
          
        }
    //поехали
        enabled=true;
    //зажигаем светодиод
        digitalWrite(ledPin,HIGH);
        Serial.print("BOILER ONLINE. CURRENT TEMP: ");
        Serial.print(temp);
        Serial.println(" C");
    //смотрим на температуру и куда ее крутить
          if(temp>needTemp) decTemp();
          if(temp<needTemp) incTemp();
       
        delay(300);
      }
      else
      {
        if(enabled)
        {
    //выключение
          Serial.println("BOILER OFFLINE. GOOD LUCK!");
    //ставим серву посредине
          myservo.write(50);
    //детачим чтоб не жужжала
          myservo.detach();
          enabled=false;
        }
    //гасим лампочку
        digitalWrite(ledPin,LOW);
      }
     
    }
    
    void incTemp()
    {
      int p=needTemp-temp;
      Serial.print("Increasing TEMP. P=");
      Serial.println(p);
      int pos=myservo.read();
      int newpos=pos-p;
      for(int i=pos;i>=newpos;i--)
      {
        if(i>minAngle) myservo.write(i);
        if(i<minAngle) myservo.write(minAngle);
        delay(50);
      }
      if(p>5)
      {
      delay(p*1000);
      }
      else
      {
        if(p<=3) delay(p*3000);
        else
      delay(p*2000);
      }
    
    }
    
    void decTemp()
    {
     int p=temp-needTemp;
      Serial.print("Decreasing TEMP. P=");
      Serial.println(p);
      int pos=myservo.read();
      int newpos=pos+p;
      for(int i=pos;i<=newpos;i++)
      {
        if(i<maxAngle) myservo.write(i);
        if(i>maxAngle) myservo.write(maxAngle);
        delay(50);
      }
      if(p>5)
      {
      delay(p*1000);
      }
      else
      {
         if(p<=3) delay(p*3000);
         else
      delay(p*2000);
      }
     }
    
    
    


    ну вот собственно и все, ардуино была помещена в саму колонку рядом с родным блоком управления. Питание внешнее по блоку питания найденому в закромах.

    Кстати родной экранчик я тоже вернул на место, и он также работает, гости частенько пугаются видя как ручка на колонке сама крутится)

    Это моя первая статья на хабре, прошу строго не судить, понять и простить :)
    С радостью отвечу на все вопросы.
    Поделиться публикацией
    Похожие публикации
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 134
      +7
      Колонка с круиз-контролем, забавно)
        +18
        точнее сказать «климат-контролем»
        +4
        Это безумно круто!) У меня тоже колонка и такие же проблемы в давлением в трубах, эх не хватает у меня мозгов и смелости такое повторить)
          +10
          Ну раз не хватает смелости купите себе термостатический смеситель.
            +6
            Смеситель-термостат не будет нормально работать с газовой колонкой, так как у нее температура горячей воды зависит от расхода. Температура случайно поднялась — термостат прикрывает вентиль горячей воды. Её расход падает, температура растет еще сильнее. Получилась положительная обратная связь. В итоге, скорее всего, термостат перекроет горячую воду совсем, и сработает отсечка пламени в колонке.
            Если допилить термостат так, чтобы он регулировал только подачу холодной воды, может, будет работать.
              +1
              оО а как они по вашему мнению работают? Если я не ошибаюсь там достаточно хитрая механика которая весьма сильно зависит от температуры уже смешанной воды, таким образом если в итоге вода слишком холодная, то приоткроется вентиль с горячей водой. Единственная проблема которая может возникнуть как мне кажется — это с давлением.
                +6
                Все правильно сказали, там механика. Если температура на выходе ниже нормы, она прикрывает холодную воду и приоткрывает горячую, и наоборот. Только такой смеситель рассчитан на магистральное ГВС, при котором температура воды в трубах хоть и плавает, но не зависит от того, насколько открыт вентиль. В случае с газовой колонкой появляются две обратные связи:
                1) чем больше расход горячей воды, тем ниже ее температура на входе в смеситель (да еще с задержкой, пропорционально длине трубы от колонки до смесителя);
                2) чем больше расход холодной воды, тем ниже давление горячей (лечится прокладыванием отдельной трубы для холодной воды от стояка к колонке).
            +1
            дык все примитивно, если заинтересуетесь могу подсказать как и где заказать и что куда припаять)
              +1
              Кажется мне что вариант с своим баком и насосом решение лучше, если есть место конечно.
            +1
            В колонке ведь уже есть термостат (правая ручка). Не получается так, что он и ваше устройство «тянут одеяло каждый на себя»?
              +5
              правая ручка контролирует кол-во воды проходящее в теплообменник(напор короче говоря).
                +1
                Понятно, то есть штатная электроника колонки всего лишь отображает температуру на экранчике и ничего не регулирует…
                  +1
                  к сожалению именно так.

                  Штатная только показывает темпратуру, ну и следит за тягой, наличием пламени и давления воды.
                    +1
                    У меня похожая колонка.
                    Штатно там сделан электроподжиг и датчики пламени и температуры. Еще таймер есть, кажется, через 20 минут тушит её (иногда при плохом давлении ванна набраться не успевает)

                    Правая ручка, отвечающая за расход воды, заклинила намертво. Во всяком случае не свернул даже пассатижами. Больше силы прекладывать не стал, побоялся испортить клапан.
                      +1
                      у меня она тоже с трудом крутится, возможно клинит ржавчиной или еще каким либо мусором
                +1
                А не проще купить смеситель с термостатом?
                  +3
                  не проще к сожалению, если например убрать устройство, выставить 40 градусов, и включить душ, температура скакнет до 50-55, прибавлением холодной воды в смесителе мы понижаем общее давление. Колонка имеет защиту от минимального давления и в определенный момент просто выключится. И вы испытаете непередаваемые ощущения ледяной воды когда вы все в мыле)
                    +1
                    Может если есть место лучше поставить поставить бак с насосом, нужное давление обеспечите сами. Ведь в случае «час пик» давление просядет ниже допустимого уровня.
                  +2
                  Обалденно, спасибо, что поделились свои планом =) Очень полезная вещь
                    –4
                    Исправьте кучу ошибок, пжлста :)
                      +18
                      Маньяк-извращенец, дайте пожму вашу руку =)
                      Не боитесь баловаться с газовым оборудованием?
                        +5
                        ну честно говоря страшненько было конечно. но я все предусмотрел и собственно гвооря в колонку по сути никаких изменений то и не вносил. Крутилка тоже ограничивается в угле поворота, да и силы у сервопривода не хватит если-что свернуть ручку.
                          +9
                          > но я все предусмотрел
                          Не боитесь так говорить? :)
                            –1
                            > «Я все пеРдусмотрел» ©
                            +1
                            А вдруг «run time error», в самый неподходящий момент? Код написан хорошо, но, может быть есть вероятность хотя бы возникновения ошибок ввода/вывода в файле Servo.h? Может добавить try...catch для полной надёжности?
                              0
                              ошибок? в хидере? О_о
                                0
                                Имеется ввиду слинкованый код, для которого хидер. ;)
                          +2
                          Есть колонки с модуляцией пламени, они сами поддерживают температуру. Это дороже, конечно.
                          Ваше решение может быть небезопасно, все таки газ, горячая вода на чью-то спину — приятного мало. Если потухнет горелка, если что-то глюканет и из крана потечет максимально горячая вода? Но это так, типичное нытье :)

                          Чтобы получить максимально короткое время реакции — используйте ПИД. Тогда вообще будет счастье :)
                            +1
                            колонки с модуляций пламени стоят чуууток дешевле моего ипада, при средней зарплате в 8 тысяч в городе сами понимаете что этот вариант выгоднее)
                              +1
                              Я больше для тех, кто предлагает ставить смеситель с термостатом. Ну а цена… функция ответственная, тут при ожоге на одном только пантеноле можно разориться.
                              +2
                              по поводу потухания горелки это все колонка контролит, и потухание, и нагрев выже 70 градусов. При всех этих сбоях она просто перекрывает газ.
                              +4
                              И не забывайте, что длительное воздействие «горячей водички» на мужское хозяйство настоятельно не рекомендуется.
                                +1
                                я не люблю горячуюю воду, как правило выше 37-38 градусов мне некомфортно.
                                Зато жена в крутом кипятке моется и недоумевает почему вода холодная.
                                  +1
                                  А есть какой-то регулятор поддерживаемой температуры, дабы вам была 37-38, а жене 40 и более?
                                +1
                                А если измерять поток и температуру входящий воды, то можно регулировать еще точнее и быстрее :). Там тогда можно вообще не измерять температуру на выходе, а рассчитывать на сколько надо открыть газ. Но это в теории, на практике давление газа тоже скачет.
                                  +2
                                  А на практике применяют обе петли управления: и по возмущению, и по выходной величине. Первая для скорости отработки, вторая — для точности. Правда подбор коэффициентов для такой АСУ — немалый геморрой. Особенно, если система вносит задержку (время протекания воды через змеевик) и имеет гистерезис (люфт ручки и качалок). Можно легко свалиться в автоколебательный режим и получить внезапный контрастный душ :)
                                    +1
                                    Да ну, все можно отстроить, если есть время. Если система идет вразнос это сразу видно.
                                      +1
                                      Кто ж спорит. Просто чем больше контуров управления, тем сложнее их настраивать.
                                        +2
                                        Это факт. Но чего только не сделаешь ради собственного комфорта :)
                                        Почитал я эту статейку и стал задумываться — не сэкономить ли и себе. Тоже нужна будет колонка, как бы не вышло дешевле взять попроще да апгрейдить. Делал бы скорее всего похожим способом, датчик бы только ставил свой, не использовал встроенный, чтобы не повредить защиты и размещал его ближе к горелке, чтобы уменьшить задержку.
                                        Хотя может эта задержка и незначительна на самом деле и все это уже ловля четверти градуса.
                                          +1
                                          датчик бы только ставил свой, не использовал встроенный, чтобы не повредить защиты и размещал его ближе к горелке, чтобы уменьшить задержку.

                                          Почему к горелке, а не к теплообменнику!? Мне вот кажется что датчик стоит там где и должен — на выходе из теплообменника.
                                            +1
                                            Да, я именно это и имел ввиду. Я ратую за сокращение задержек.
                                  +1
                                  Очень круто. Но вот коромысло не оставляет меня в покое, мне кажется можно было использовать шестерни, т.к. от коромысла ограничен ход ручки или весь диапазон регулировки легко вмещается в +- ~90 градусов?
                                    +1
                                    угол на самом деле там около 85 градусов, а шестерни пришлось бы заказывать, ждать, чертить…
                                      +3
                                      Ясно спасибо. Ну и еще не нашел, результатом то вы теперь довольны? Колонка оставила вас в покое? :) Или хочется что-то улучшить?
                                        0
                                        ну я уже пишу вторую статью о второй версии данного девайса, с ПИДом, подробными схемами и т.д.
                                        Учел всю критику так сказать.
                                          0
                                          но на данный момент я более чем доволен
                                      +1
                                      Но ведь речь идет о ГАЗОВОЙ колонке, с газом вообще шутки плохи… я бы 10 раз подумал прежде чем…
                                        +3
                                        а с газом по сути никто и не шутил, изменений в конструкцию не вносилось :)
                                          –3
                                          я часто видал как из смесителя начинали выбулькивать кипящие брызги от того что температуру воды пытались регулировать расходом. в какой то момент вода просто вскипала.
                                            +4
                                            ну у меня реулирование пламенем это раз, а во вторых при температуре в 70 — газ отключается
                                            –2
                                            я видел как бабахала колонка от того что опять же воду то убавляли то снова добавляли…
                                              +3
                                              угу, а я видел как начинался дождь от того, что шаман стучит в бубен.
                                              но с автором в одном доме я бы не хотел жить, да >__<
                                                +1
                                                ну в кино я много чего видел, а когда бабахала колонка было жутковато…
                                          +2
                                          Меня смутило следующее:
                                          Ничего нет лучше взять пивка, жареных пельмешек, айпадик и быдлокодить лежа в горячей водичке.

                                          Вы не опасаетесь за своё здоровье? Долго находиться 40-градусной воде это вам не шутки. Спросите у любого терапевта. Тем более попивать при этом пивас, который градусов на 30 холоднее.
                                          А вот регулятор прикольный. Кстати, чтобы колебания сглаживались мягче можно реализовать в коде ПИ или даже ПИД регулирование ;)
                                          Добро пожаловать на хабр!
                                            +1
                                            осталось узнать что такое ПИ или ПИД регулирование и я непременно это реализую)
                                              +1
                                              вики говорит что
                                              Пропорционально-интегрально-дифференциальный (ПИД) регулятор — устройство в управляющем контуре с обратной связью. Используется в…
                                                +1
                                                проще говоря замапить температуру на положение сервы?
                                                  +1
                                                  Не совсем. Это более сложный регулятор, который реагирует в несколько разных способов — пропорционально (грубо говоря маппинг), на изменение входящего параметра (дифференциально) и выравнивая накопившуюся ошибку (интегрально). Это самое простое объяснение, которое приходит на ум, поправьте если не прав.
                                                      +1
                                                      спасибо, почитаю, может даже переделаю
                                                        +1
                                                        Да там не переделывать. Все ваше железо останется как было, надо будет только поправить код. Получите минимально возможную задержку, это приятно.
                                                          +4
                                                          Вот именно! Блин, для меня даже как-то странно незнание автором базовой теории. Не перевелись кулибины в нашей стране! Без базовых знаний взять и запилить регулятор в железе. Смело и достойно восхищения. Главное, что человек готов к самообразованию :)
                                                          Я вот имея профильную вышку по автоматизации химико-технологических процессов и точно такие же проблемы дома с газовой колонкой хрен бы такую штуку замастырил :) Респект. Жаль нельзя дважды плюсануть новичка на хабре.
                                                            +2
                                                            Теория это хорошо. Но при работе с железяками, увы, теория в стороне. Можно сколько угодно рассказывать человеку как правильно держать напильник, но без практики все это бесполезно. Так что вы можете досконально знать что и как, почему так, а не эдак, но для воплощения в железе этого мало.
                                                            В общем надо брать и делать. Тем более, что железо для всего этого недорогое, а результат имеет вполне реальные последствия. Это не какие-то там процессы, которые тебя лично не касаются, тут водичка из душа. Куда уж ближе? :)
                                                      +1
                                                      С наскоку понять сложно, но проще говоря — ПИД регулятор учитывает инерцию системы (интегрально-дифференциальная составляющая), и стремиться минимизировать время достижения заданного результата. Вот например, включили вы колонку зимой, температура воды — 10 градусов, а вам надо 40. При чем ~40 получиться допустим, через минуту, если газ открыть на 30%. А если газ открыть на 100%, то 40 получиться через 10 секунд, но еще через 10 будет уже 80, что нам явно не надо, т.е. газ надо начать убавлять через какое-то время, получится колебательный процесс, который более менее устаканится через какое-то время. Но вы свои 40 градусов получите куда быстрее.
                                                        +1
                                                        Почитай книгу Стюарт Болл, аналоговые интерфейсы МК. Там очень хорошо ПИД на пальцах разжеван. Как раз на примере инерционного нагревателя.
                                                    +2
                                                    кстати о температуре, находится на улице в +35 с ветром и пить холодный пивас(без пельмешек!!!) ни чуть для здоровья не полезнее, такчто все это двояко)
                                                    +1
                                                    Здорово! Получилась такая себе система автоматического управления :) Единственное что, я думал, современные колонки уже все оборудованы подобными системами… Хотя бы в первом приближении. У меня дома стоит Beretta, там температура не отображается, но если выставил на глаз определенную, то она держиться при любых манипуляциях и падении(очень часто)/повышении(крайне редко) давления.
                                                      +2
                                                      у нас в городе таких колонок даже в самых крупных центрах нету, а если на заказ то цены там космические просто. Да и самому сделать интереснее
                                                        +1
                                                        Модель не озвучите? А вообще сильно зависит от географии и качестве работы сетей водоснабжения. У меня с беретами и бошами до недавнего времени был примерно такой же опыт. А потом как отрезало — начали шалить водопроводчики и колонки перестали справляться, температура скачет, защита периодически срабатывает.
                                                          +1
                                                          Beretta Idrabagno не то 14, не то 17…

                                                          Стоит в квартире на 5-м этаже — там иногда летом, когда частный сектор поливает огороды, бывают проблемы с включением. Но если включается — то держит нормальную температуру даже при очень низком — уже, сколько же это прошло? 4 года получается. И в частном доме стоит — так как первый этаж, то проблемы очень редко. Там уже 6 лет. Из всего, что было — два раза чистили поджигающие сопло (качество газа не очень) и поджиг работает иногда не очень хорошо.
                                                            0
                                                            А чтобы лучше держали температуру, ищите по словам «модуляция пламени» (с помощью трубки вентури там осуществляется контроль).
                                                          +1
                                                          Насколько я понял, колонка довольно старая, аналоговая. Так?

                                                          У меня есть похожая проблема, но со сравнительно современной колонкой (Neva Lux с каким-то номером, не помню). Она электронная, но своей тупостью может довести меня до бешенства. Есть объективные сложности управления, вызванные резкими изменением расхода, но в ней, похоже, ПИД (или какой там регулятор есть) дефектный по дизайну. Есть цифровой индикатор и пара кнопок для задания желаемой температуры. Градусником я не проверял, но вроде бы показания индикатора довольно точно соответствуют выходной температуре. Так вот, фигня наступает, если просто открыть кран и ждать, пока температура устананится. Этот процесс может длиться минуту, причем осцилляции очень размашисты и запросто могут достигать максимума (после 70 градусов газ выключается). Если после стабилизации что-нибудь пошевелить (расход воды), то опять проходит несколько осцилляций, хотя меньшего масштаба.

                                                          В связи с этим я давно задумывался о том, как бы прикрутить свою систему управления. Но, поскольку ее собственный блок управления наверняка контролирует и поджиг, и аварийное отключение, то в своей поделке придется это тоже реализовывать, что вообще-то опасно. В общем, не знаю пока, что делать… Ваша же система вроде бы достаточно безопасна — хоть можно обжечься, но по крайней мере утечки газа не будет.
                                                            +1
                                                            ну у вас похоже проблема которую описывали выше пользователем Ocelot
                                                            А именно — автоколебательный режим
                                                              +1
                                                              Да, положительная обратная связь имеет место. Но меня больше раздражает скорость, с которой эти процессы протекают. Если бы все колебания проходили за несколько секунд, то проблем бы не было. Я смотрю на показания индикатора и пламя и вижу, что температура уже превысила заданное значение и продолжает стремительно расти, а пламя не только не убавляется, но даже продолжает добавляться. Уж не знаю, в каком пусть неправильно настроенном ПИДе или другом регуляторе такое возможно. По-моему, очевидный баг.
                                                              +1
                                                              а колонка далеко не старая, куплена в этом году, самая распространенная модель в ценовом сегменде до 6000р
                                                                +1
                                                                Я думал, что с верньерами уже не делают, обозвал ее аналоговой. ;) Моя, оказывается, постарше будет и почти попадает в тот же ценовой диапазон (кажется, 3 года назад за 8к). Я ошибся в оценках требуемой мощности, когда выбирал, и заказал едва ли не самую мощную в данном классе. (Измерил максимальный расход из крана и начальную температуру, но почему-то решил, что на выходе нужно иметь до 60 градусов, а оказалось, что такая горячая вода никогда не нужна.) В частности, из-за этого она плохо работает при малом расходе — чаще гаснет и устаканивается дольше.
                                                              –13
                                                              Буду заминусован, но это именно то, о чём была статья вчера. Просто посмотрите в код, это же ужас! Сильно напоминает сайты, сделанные в фронтпейдже или даже в ворде лет так 10 назад.

                                                              Автор, ну хоть немножечко потрудитесь и изучите, что такое ПИД регулирование, сделайте конечный автомат на таймере вместо этих ужасных delay(10000). Да, я понимаю, что вы сделали это быстро и оно работает, но надо же пытаться учиться. Если моих минимальных познаний программирования под avr хватает на то, чтобы понять, на сколько в коде всё плохо…
                                                                +12
                                                                для меня с нуля для рабочего контроллера — это обучение, чтобы вы не говорили. Я доволен и собой и контроллером и полученным скилом. Никто не говорит что я на этом остановлюсь.
                                                                  +1
                                                                  а в целом могу вам противопоставить данный коментарий habrahabr.ru/post/146190/#comment_4932514
                                                                    0
                                                                    Собственно я фразы о том, что продолжение будет, в заключении статьи и не увидел.

                                                                    Ну и вообще, мне кажется правильным сначала прочитать в инете о том, как другие решают подобные проблемы (а очевидно, что регулирование температуры — это соооовсем не новая штука), осмыслить и потом уже реализовывать. Это те самые основы, которые преподают в институтах, и которые, возможно, скучны. Но без основ очень сложно нормально развиваться, многие навсегда застревают на уровне «слепить эти несколько кусков кода в один».
                                                                      +2
                                                                      Я сторонник иного подхода. Если знать как у других то это не тру DIY
                                                                        +1
                                                                        Это называется велосипедизм.

                                                                        Вот мне всегда интересно читать посты BarsMonster, он делает крутые штуки и у него действительно тру DIY. При этом он пользуется опытом, накопленным человечеством. Это нормальный инженерный подход: изучить, выбрать лучшее, ещё улучшить/подправить под свои реалии, реализовать в своём девайсе.
                                                                          +3
                                                                          Повторюсь — мне интересно изобретать. Пусть даже велосипед
                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                    +1
                                                                    Я бы не сказал, что код такой уж ужас. Довольно даже приличный. В delay нет ничего ужасного — до тех пор, пока во время задержки не требуется делать что-либо еще, но это не тот случай.
                                                                      +1
                                                                      Ага, захочется автору (или тому, кто возьмёт себе код, это ведь ардуино) добавить кнопочки, чтобы желаемую температуру регулировать — и фигу, надо переписывать ВСЁ. Ну либо будет каша с делеями, либо будет криво поправка применяться. Отличный код, да.
                                                                        +1
                                                                        Ну, допустим, кнопочки еще добавить можно, но с повышением количества параллельных задач сложность будет очень резво расти и вынудит перейти на более продвинутую организацию рабочего цикла программы. Впрочем, при таких размерах это еще не страшно.
                                                                        Ну и в принципе, на голом МК начинают с аналогичного построения. Оно простое и позволяет быстро получить хоть как-то работающий девайс, который потом можно перевести на вменяемые рельсы (а с накоплением опыта — так и сразу начинать на них). Один из первых уроков того же DIHALT'а этому и посвящен.
                                                                        А так еще можно отметить написание программы «в стиле бейсика» (спасибо хоть без goto-лапши) и практически идентичные incTemp и decTemp.
                                                                        Но зато код относительно прилично оформлен и довольно понятен. А то я однажды глянул на сорец в несколько раз длиннее с кучей глобальных переменных вида i, ii, k, j, m, n (и так десятка два-три) — так желание попытаться в нем понять хоть что-то сразу отпало.
                                                                    +1
                                                                    Супер идея! У меня центральное ГВС, но проблема такая же, правда с холодной, 9 этаж, тупо не хватает давления всегда, а если кто-то еще и моется ниже этажом это вообще пипец, думаю поставить какой-нить самодельный накопитель на 30л из нержавейки, сделаю не глубоким и высоким (компенсировать маленькую площадь помещения, объема должно хватить для ровного набора ванны)
                                                                    И хоть еще один человек понимает вкус жаренных пельменей =) Жена у меня любит их тоже, но всегда ворчит — как можно такое есть и брыньк вилкой в тарелку =) а если еще тертым сыром посыпать за 5 мин до конца готовки… ммм…
                                                                      +2
                                                                      Для решения проблем с давлением можно попробовать поставить насосную станцию. Там накопитель и насос.
                                                                        +1
                                                                        проще поставить повышающий насос бытовой.
                                                                          +1
                                                                          Это оно и есть. Только с небольшим гидроаккумулятором и реле давления. Два патрубка и никаких проблем.
                                                                          +1
                                                                          спасибо, возможно так действительно будет проще, возможно так и поступлю
                                                                          +2
                                                                          >накопитель на 30л из нержавейки
                                                                          >объема должно хватить для ровного набора ванны
                                                                          не стыкуется…
                                                                            0
                                                                            Стыкуется, эти 30л будут быстро возобновляться
                                                                              0
                                                                              Хм… Не понимаю. При наборе ванны (200-250л) колебания температуры горячей воды особой роли не играют, как мне кажется, все равно можно вывести на нужную весь объем довольно быстро, добавив горячей или холодной. Да и из описания показалось что бачок должен компенсировать отсутствие напора когда расход через соседей увеличивается. тогда логично было бы предположить, что объем бака должен быть сопоставим с объемами ванн, но это никак не три ведра. Видимо я просто не понимаю чего именно нужно добиться в результате.
                                                                                0
                                                                                Я люблю лежать в ванне пока она набирается, поэтому для меня важно постоянная температура, вы правы, общая температура компенсируется, просто когда дома был 20л нагреватель (каждое лето выключали воду) — его было достаточно, для равномерного набора ванны
                                                                          +5
                                                                          Главное, чтобы про ваше усовершенствование не узнали работники горгаза :) Попробуй им докажи, что это безопасно…

                                                                          Приложение 3 к Федеральному закону «Технический регламент «О безопасности домового газового оборудования».

                                                                          1. В целях предотвращения аварий и несчастных случаев в многоквартирных и жилых домах при газоснабжении природным газом и сжиженными углеводородными газами потребителем газа запрещается:

                                                                          5) вносить изменения в конструкцию газоиспользующего оборудования
                                                                          ...
                                                                            +1
                                                                            внешне контроллер никак не заметен, да и наши газовщики тока и могут как духовку за 20т.р. подключить
                                                                              +2
                                                                              Это ты им будешь рассказывать, что ты изменения не вносил. А так какая то инородная хрень в колонке налицо. А еще они любят деньги. В общем, придет контроль ты попал.
                                                                                +1
                                                                                никакого «налицо» тут нету, асболютно. Пока не откроеш лицевую панель — не увидиш
                                                                                  0
                                                                                  Они у вас чтоль внутрь не заглядывают? Наши газовщики придут, заглянут, проверят все, анализатором еще потыкают иной раз.
                                                                                    0
                                                                                    тю… анализатор? я вас умоляю, если снизойдет мана небесная то тягу спичкой проверят, и то не проверяли уже несоклько лет. Единственное что делают, пузырят вентили губкой, И ВСЁ!
                                                                                      0
                                                                                      Все когда нибудь бывает в первый раз. Мой брат вот тоже был уверен, что контроллеры челябэнерго глядят только циферки на счетчике и зафигачил обходной провод, замаскировал все тщательно, фиг найдешь. А они возьми как то раз да проверь. Вкатили ему такой штраф, что всю его «экономию» на 50 лет вперед обосрало.
                                                                                  0
                                                                                  Какой еще контроль???
                                                                                    0
                                                                                    Горгаз раз в два три года ходит по квартирам/домам проверяет газовое оборудование. Плиты, котлы. Вносит штампы поверки в газовые книжки.
                                                                                      0
                                                                                      Какой город?
                                                                                      На моей памяти ко мне и моим знакомым в квартиру никто с проверкой не приходил.
                                                                                        0
                                                                                        Челябинск, Копейск
                                                                              +1
                                                                              Прям идея для стартапа. Можно развести все это на отдельной плате, добавить ПИД и продавать как дополнение к нашим колонкам. Правда не забыть добавить надпись в инструкцию, типа «оборудование не сертифицировано, пользователь устанавливает приблуду на свой страх и риск». Может кто и польстится…
                                                                                +2
                                                                                Ну все. Теперь буквы ПИД будут мне снится, пошел читать и допиливать)
                                                                                  +1
                                                                                  Кстати, у вашей коромысловой системы наверняка есть какой-то люфт, который и играет как раз роль интегральной составляющей, наче бы у вас поддержание температуры сопровождалось колебаниями ручки регулировки около какого-то положения
                                                                                    +1
                                                                                    Ну там совсем маленький люфт
                                                                                  +1
                                                                                  Ага, до первого заинтересовавшегося из горгаза.
                                                                                  +2
                                                                                  Вроде не хватает датчика наличия метана, датчика температуры (платы), электрического предохранительного клапана для газа.

                                                                                  www.geeetech.com/methane-gas-sensor-mq4-p-193.html
                                                                                  www.geeetech.com/dht11-digital-humidity-temperature-sensor-p-376.html

                                                                                  Безопасность, в таких штуках — первоочередное дело.
                                                                                    +1
                                                                                    датчик температуры был куплен сегодня а датчик газа есть в самой колонке.
                                                                                    +1
                                                                                    А меня сильнее всего раздражают 2 вещи:
                                                                                    1. Если оставить включенным фитиль при закрытой воде — получается неиллюзорный кипяток при открытии крана.
                                                                                    2. После установки положения газа кран расширяется, уменьшая поток воды, от чего она нагревается еще сильнее, от чего кран расширяется еще сильнее…

                                                                                    Мне универсальное решение проблемы представляется в виде смесителя со встроенным ПИД-регулятором. Смеситель по тому, что первую проблему можно решить только путем добавления холодной воды к стекающей. Вообще, наверное, если наладить серийное производство, таких девайсов, можно будет даже заработать. Только сразу всплывает проблема отсутствия возможности регулировать газ…
                                                                                    Короче должна быть колонка — 2 трубы на вход, одна на выход, 2 крутилки — температура и выходной напор. Надо думать, что такие девайсы уже есть :)
                                                                                      +1
                                                                                      сначала была идея прикрутить к этому всему вафлю и рулить с компа температурой, но это уже для отдельной статьи)
                                                                                        +1
                                                                                        Да! С 2мя трубами на вход я отжег :) Конечно же смеситель должен быть внутри колонки.
                                                                                        +1
                                                                                        ​Вы молодец… пару советов, чтоб статья была оформлена до конца. Косметических так сказать.
                                                                                        На видео, где сама ручка крутиться, проситься график изменения температуры. Надо немножко заморочиться, но результат того стоит. И второе… не достаёт финального фото с пивом пельменями и йпадом, ваше присутствие по желанию )
                                                                                        Так держать!
                                                                                          +1
                                                                                          Хм, лучше было вырезать отверстие в качалке по форме верхней части ручки (со срезом). Клей может растрескаться со временем)
                                                                                            +1
                                                                                            Кстати, а какой там клей? Подозрительно напоминает цианакрилат.
                                                                                              +1
                                                                                              цинаклират не держится на таком, пробовал, это самая обычная эпоксидная смола
                                                                                                +1
                                                                                                А, ну эпоксидка это норм. А цианакрилат если бы и прилип — быстро б отвалился, он не держит нагрузки на сдвиг.
                                                                                              +1
                                                                                              тогда лицевая панель не оденется
                                                                                                +1
                                                                                                Тогда просверлить насквозь штифт мелким сверлом, чтобы клею было за что держаться.
                                                                                                  +1
                                                                                                  Это не так просто сделать как кажется)
                                                                                              +3
                                                                                              Ох и не хотелось бы мне оказаться в душе в тот гипотетический момент, когда с датчика температуры analogRead() вернёт 0.
                                                                                                +1
                                                                                                Да, проверки на соответсвие поведения системы желаемому не помешали бы. Впрочем, защиты есть в родной аппаратуре колонки. Хотя 70С тоже не айс.
                                                                                                +2
                                                                                                Статья и девайс отличные, но я немного позанудствую.
                                                                                                На чем вы программируете помимо Ардуино? У вас там тоже все в глобальных переменых, а функции без параметров?
                                                                                                  +1
                                                                                                  Классная штука!
                                                                                                    +1
                                                                                                    Несколько вопросов:

                                                                                                    1. Вы использовали датчик, установленный в колонке? Подключили его через делитель напряжения к ардуине, а значит, таперь экран колонки температуру не показывает?

                                                                                                    2. Вы стабилизируете температуру грячей воды? То есть, до смесителя? Не влияет ли на стаблизацию конечная температура воды, выставленная на смесителе?
                                                                                                      +1
                                                                                                      1. экран показывает, только теперь данные не из датчика берет а с ардуины.
                                                                                                      2. нет, смеситель же не влияет на колонку.
                                                                                                      +1
                                                                                                      А для чего ручка регулировки температуры на колонке? Разве она не должна делать то же самое?
                                                                                                        +1
                                                                                                        делает, но только руками, сама она этого не делает)
                                                                                                        0
                                                                                                        Автору, настоятельно рекомендуются осуществить фильтрацию показания датчика температуры цифровым фильтром, хоть обычным скользящим средним. Это особенно важно при реализации ПИД-регулятора.
                                                                                                        Общая структура системы управления видится такой:
                                                                                                        image
                                                                                                        где Tвх, Qвх — температура и объемный расход воды на входе в теплообменник; Tвых, Qвых — температура и объемный расход воды на выходе из теплообменника.
                                                                                                        Осуществлять компенсацию возмущения (любого, хоть по расходу воды на выходе/входе, хоть по температуре), стоит лишь в том случае если не будет хватать быстродействия данной системы управления, по трем причинам:
                                                                                                        1. Потребность в установке новых датчиков, в основном расходомеров: дорогая вещица + может порядочно врать, поэтому требует обязательной поверки и эффективной фильтрации показаний
                                                                                                        2. Усложнение динамики основного контура управления, может привести к неустойчивости основного контура управления;
                                                                                                        3. Скорее всего увеличиться количество перемещений привода что приведет к его ускоренному износу

                                                                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                        Самое читаемое