Управление отоплением в загородном доме (GSM)

Тема в разделе "Глядите, что я сделал", создана пользователем Вячеслав, 6 дек 2012.

  1. GSM73

    GSM73 Нуб

    Вот доделал! В следующие выходные на дачу поеду ставить!
     

    Вложения:

  2. YanTV

    YanTV Нерд

    Оригинально! Пины на GSM модуле смажь токопроводящей смазкой! Иначе очень быстро окислятся и пропадет контакт! Проверено на своих проектах.
     
  3. IvanUA

    IvanUA Гуру

    Я стараюсь колодки для подключения к реле поворачивать как можно ближе к краю платы, да и не только реле, вообще все колодки стараюсь выносить край (ребро) устройства и в идеале на один край. Тогда и внешние провода будет легче крепить и плата не будет похожа на паука в паутине))))))))))
     
  4. Все красиво, вижу аккумы, бесперебойник? Если да, то как работает, без перегруза ардуино?
     
  5. Alba

    Alba Нерд

    Всем привет! Вопрос есть такой!!! Хочу переделать ВАЛДАЙ на Теплицу. Что бы реле включалось при авто температуры свыше заданного порога,а не наоборт как тут на обогрев. Что тут меняем?
    Подскажите пожалуйста! Благодарность гарантирую!
     

    Вложения:

  6. scort

    scort Нерд

    Вы в код смотрели?
    Определитесь какой юнит соответствует теплице, похоже что первый.

    Дальше явно перевернуть знаки больше меньше, вот тут для юнит2, например:

    if (unit2status==true){
    if (t2 < autoTemp-delta){
    digitalWrite(unit2, HIGH); us2=0;}

    else if (t2 > autoTemp+delta)
    {digitalWrite(unit2, LOW);

    Что по русски если какой-то там статус активен и температура с датчика 2 меньше автотемпературы за минусом дельты тогда включить реле.
    Если больше то выключить реле.
    us2=0 какой-то флаг реле2, нужно мотреть где он используется.
     
  7. Alba

    Alba Нерд

    Смотрел,эх, и так и всяк менял.Фиаско одно, вот! Готов оплатить работу.
     
  8. Alba

    Alba Нерд


    Вот все то что нужно было поменять,ты прав был.Горит с меня;)

    if (unit1status==true){
    if (t1 > autoTemp+delta){
    digitalWrite(unit1, HIGH); us1=0;}

    else if (t1 < autoTemp-delta)
    {digitalWrite(unit1, LOW); us1=1;}
    }
     
  9. Alba

    Alba Нерд


    Баба Вера у меня не компилируется вот эта строка
    statusHome = String("Valdai")+ String(";")+int(u1st)+ String(";")+float(t1)+ String(";")+float(h1)+ String(";")+int(u2st)+ String(";")+float(t2)+ String(";")+float(h2)+ String(";")+int(u3st)+ String(";")+float(t3)+ String(";")+float(h3)+ String(";")+int(u4st)+ String(";")+float(t4)+ String(";")+float(h4)+ String(";")+int(unit5status)+ String(";")+int(isPerimetr)+ String(";")+int(autoTemp)+ String(";")+ String(bal)+ String(";")+float(t5)+ String(";")+int(svetsost);
    delay(3000);//дал задержку для успевания ловли счета
    sendTextMessage(statusHome);
     
  10. Потому что надо все инт которые связаны с температурой и влажностью поменять на флоат раньше
     
  11. Alba

    Alba Нерд

    Баба Вера отправь свой скетч,а то у меня в другом месте компиляция не проходит.
     
  12.  

    Вложения:

  13. Alba

    Alba Нерд

    Спасибо за скетч но баланс не кажет,куда смотреть ответ такой на запрос


    +CMT: "+7996*******","","18/05/23,21:26:21+12"
    Zapros
    Unit1status=0
    Unit2status=0
    Unit3status=0
    Unit4status=0
    Temperature street=nan

    ATD*100#

    OK

    +CUSD: 0,"041204300448002004310430043B0430043


    +CMGS: 28

    OK
     

    Вложения:

  14. Alba

    Alba Нерд

    На МТС работает. Тогда стояла Yota
     
  15. Ztepan

    Ztepan Нуб

    Всем привет, апну тему.
    Я тоже собрал контроллер на ардуинке, только для управления горелкой на отработанном масле.
    Все работает, но столкнулся с проблемой инерционности ситемы, т.е. пока теплоноситель и воздух холодный система включается в нагрев, теплоноситель греется, а воздух отстает. Далее когда воздух достигает нужной температуры, теплоноситель уже перегрет. Нагрев прекращаем, но температура воздуха продолжает расти, а теплоноситель уже остывает. И вот когда воздух остывает до температуры запуска нагрева теплоноситель уже конкретно остыл. И так по кругу прыгает температура, что совсем не хорошо, как для человека, так и системы отопления и дома в целом.
    Кто нибудь реализовывал подбор температуры теплоносителя контроллером?
    Нашел статью о пид-регулыторе http://we.easyelectronics.ru/Theory/pid-regulyatory--dlya-chaynikov-praktikov.html , но не пойму как в коде реализовать.
     
  16. yul-i-an

    yul-i-an Гик

    Вот мой ПИД
    Код (C++):

    //расчет мощности по ПИД закону регулирования
        //Параметры регулятора
        #define kP 6//коэффициент пропорциональности
        #define p_min 0.0//минимум П составляющей - не < 0
        #define p_max 100.0//максимум П составляющей - не > 100
        #define kI 0.100//коэффициент интегрирования
        #define i_min 0.0//минимум И составляющей
        #define i_max 30.0//максимум И составляющей
        #define kd 0//коэффициент диференциирования
        #define d_ctl 7.0//зона пропорциональности ust-d_ctl
        #define out_min 0//минимальный выходной %
        #define out_max 100//максимальный выходной %
       
        //Расчет управляющего воздействия
        //возвращает необходимое воздействие в %
        uint8_t PIDctl(float temp, float ust) {
            uint8_t out = 0;
            static float i = 0;
            static float ed = 0;
            float e, p;
            float d;
            e = (ust - temp); //ошибка регулирования
            p = (temp < ust - d_ctl) ? p_max : (temp > ust) ? p_min : (kP * e); //П составляющая
            i = (i < i_min) ? i_min : (i > i_max) ? i_max : i + (kI * e); //И составляющая
            d = kd * (e - ed); //Д составляющая
            ed = e;
            out = (p + i + d < out_min) ? out_min : (p + i + d > out_max) ? out_max : p + i + d;
        return out;
        }
     
    Но Вам предется придумать как будет осуществлено управление производительностью.
     
    Ztepan нравится это.
  17. Ztepan

    Ztepan Нуб

    Вот спасибо! Покурю с производительностью.
     
  18. Ztepan

    Ztepan Нуб

    yul-i-an, еще помощь нужна.
    Контроллер может зажигать и тушить горелку отслеживая температуру теплоносителя или воздуха.
    Аварийные значения задаются.
    Необходимая температура воздуха тоже задается.
    Если я правильно понял, то используя ваш код на выходе получаем процент на который нужно увеличить или уменьшить температуру теплоносителя?
     
  19. Оперировать температурой в процентах это что-то новенькое. ПИД обычно регулирует мощность.
     
    parovoZZ и Ztepan нравится это.
  20. Ztepan

    Ztepan Нуб

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