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

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

  1. parovoZZ

    parovoZZ Гуру

    перепиши библиотеки под себя. Места освобидится - целая гора.
     
  2. parovoZZ

    parovoZZ Гуру

    имеется в виду защита от помех.
     
  3. MESS

    MESS Гик

    1.Если Ваш котел автоматичекий, то он сам должен защищать от разморозки - это прописано в его алгоритме. Однако защита не срабатывает, если внешний терморегулятор блокирует работу внутреннего при неверном подключении.
    Какой у Вас котел и есть ли ИБП? Где стоят рабочие датчики температуры?
    2. А визуальный контроль проще всего организовать автономной камерой WI-FI IP CAM
    Снимок экрана 2019-02-11 в 14.23.07.png
     
  4. spamaway

    spamaway Нерд

    Смейся-смейся. Оставлял на ночь пока без котла (с лампочкой) - полет нормальный. Термостат регулирует как надо. СМС шлет и принимает. Еще и загрузку температуры на свой сайт устроил по GPRS - лог пишется в файл на сервере каждую минуту. Потом на MySQL переделаю, чтобы проще выборки было делать за нужные периоды, и отдельный лог для ошибок нужно сделать. Ну а ты лампочками мигай и релехами щелкай...

    От датчика отказался. MQ-9 вроде нормальный был, а MQ-2 неважно реагирует и на сжиженный, и на природный. Специально на кухне открыл газ, уже неприятно стало дышать, а датчик едва изменился с 5% на 6%. Нафиг он нужен такой -всё взорвется быстрее, чем он среагирует. Если прямо над конфоркой держать - то да, что-то видит, но в реальности так же никто не делает... Ну и 120 мА - жалко мне на него :) Так что пока без датчика газа.

    Котел включается сам в +7, причем независимо от того, разрешает ему термостат или нет (и это правильное решение). Но проблема была в том, что когда было -20 градусов на улице, он не захотел включиться или не смог расжечь огонь,или подумал, что огонь есть, когда его не было (странный глюк, толком нигде не описан). Когда никого не было, вышла ошибка F03, "Неисправна горелка. Необходимо проверить ионизационный электрод, и соединительные кабели.", котел встал, вода во вторичном теплообменнике замерзла (воду не сливали, так как раньше проблем не было), теплообменник распух, тогда из него вылелся и антифриз, давление в системе упало, пошла ошибка 6 "нет давления", котел окончательно встал... Думаю, если бы приехать до ошибки 6 и перезагрузить котел, он бы пошел. Но из-за того, что никто не знал, одна небольшая проблема вызвала большую. Поэтому термостат, который своевременно информирует о проблемах, сейчас уже кажется необходимостью.
     
  5. parovoZZ

    parovoZZ Гуру

    Надо магистраль смотреть - где-то промёрзла. В-20 газ не зажжешь от искры.
     
  6. parovoZZ

    parovoZZ Гуру

    Когда котёл физически выключен. В любом другом случае котёл обязан работать при околонулевых температурах.
     
  7. spamaway

    spamaway Нерд

    Собственно, по сабжу пару вопросов хочу поднять.
    1) идея топикстартера выводить смс в сериал без сохранения на модеме и постоянно читать сериал ардуиной в loop вроде как работает, но только до того момента, как мы пытаемся общаться с модемом для каких-либо целей, помимо отлова "+CMT". Даже добавление простой проверки "модем еще жив?" требует отправлять в модем "АТ" и некоторое время читать вывод, ожидая "ОК". Понятно, что "АТ" выполняется быстро, и вероятность, что в эти пару десятков-сотен миллисекунд придет СМС - крайне мала. Но если мы используем долгие АТ команды, такие как установка GPRS соединения, отправка данных на сервер и чтение данных из интернета, время ожидания ответа от этих команд - уже несколько секунд. Если за это время придет SMS, насколько я понимаю, функция ожидания ответа от АТ команды просто проглотит +CMT, и SMS не будет обработана. Вот я и думаю, если установить сохранение входящих СМС в модем, будет ли оно выполняться в бэкграунде, когда модем, например, шлет GPRS данные? Потом, когда модем нам будет не нужен, в loop прочитаем имеющиеся в памяти СМС, пропарсим, выполним указанные действия, удалим СМС. Конечно, это больше геммора в коде, но вероятность пропуска СМС во время взаимодействия с модемом должна сойти в ноль. Кто пробовал? Имеет это какой-то смысл, или смириться и надеяться, что во время периодической обработки AT команд никто СМС не пришлет?

    2) Обнаружено странное поведение модема. Отправка данных в интернет требует выполнять несколько долгих AT команд с ожиданием ответа (чтобы знать, когда переходить к следующей команде, так как разброс времени от 150 мс до десятка секунд). Так вот, если позвонить на модем, когда он занимается этой деятельностью, звонок скетчем не регистрируется (это понятно, так как ардуина занята другим делом), но, что хуже, передача данных начинает тупить. Все последующие АТ команды, относящиеся к GPRS выдают ошибку, и нормальная работа с интернетом восстанавливается только через 1-2 полных попытки отправить данные. Если слать данные каждую минуту, с этим можно смириться, но если отсылка данных будет раз в 10 минут, это не очень хорошо, так как мы не получим данные за длительный промежуток времени. Я думал, может RING вторгается в алгоритм функции ожидания ответа от AT команды и сводит ее с ума, сделал вывод модема в терминал, но ничего странного не обнаружил! Или может опсос закрывает сессию во время звонка? Так и не понял, что это. Такое впечатление, что при поступлении звонка, модем на своем уровне отрубает работу с интернетом. Буду еще разбираться, но если кто-то уже наступал на эти грабли - расскажите, что это, и как с этим бороться?

    3) Кто-нибудь пытался выгадать пользу от EEPROM 24C32N, который на модуле DS1307? Вроде обещают 32 килобита, но в инете не нашел восторженных статей о том, как их использовать, а у меня не сильно мозгов пока хватает на низкоуровневую работу с памятью. Было бы интересно посмотреть образцы считывания и записи float, тогда можно было бы сделать лог последних температур. Например, циклично заносить в память текущие значения температуры каждый час, а по команде выдавать последние значения в терминал или в смс. Когда память закончится, продолжать с начального адреса, затирая самые старые значения. А адрес последней сохраненной температуры хранить, например, по нулевому адресу. Ресурса памяти при 100000 циклах записи должно хватить на 11 лет, если сохранять каждый час... обычно девайсы столько не используются, так что приемлемо, да и если память накроется, ее можно заменить на новую или игнорировать ошибки, так как с основным функционалом девайса она не связана. Понятно, что это не сильно нужно, но если уж все равно память есть, нужно ей какое-то применение найти, да и опыт работы с внешней памятью не помешает :) Для встроенной в ардуину EEPROM годную библиотеку сделали - там вопросов нет, а для внешней памяти - тишина...

    4) Кто как детектирует наличие 220 вольт? Если прибор работает от обычной розетки - это понятно - пропало напряжение на блоке питания - значит и в сети 220 вольт нет. Но так и ардуина вырубится, что недопустимо. Но если сделать для нее самодельный ИБП на 5-9 вольт, то вход на ардуину будет постоянно под напряжением (иначе она не сможет работать). Если же ардуина питается от ИБП 220 вольт для котла, то в теории она всегда будет под напряжением. Неужели самый "красивый" способ - вставить бесполезный (неиспользуемый ни для чего) адаптер в незащищенную ИБП розетку и считывать напряжение с него? У меня есть непроверенная идея использовать раздельное питание, например 220->9в в круглый разьем ардуины, и 5в от аккумулятора через USB. Предположительно ардуина должна отдвавть приоритет 9 вольтам, и аккумулятор 5 вольт не будет высаживаться? Если же 220 вольт отключат, ардуина /вероятно/ перейдет на питание от USB 5в, а мы сможем детектировать отсутствие 9в на входе. Работает такая схема? Или есть уже проверенные варианты?
     
  8. parovoZZ

    parovoZZ Гуру

    По памяти - идея записи в нулевую ячейку текущего адреса для увеличения ресурса ни к чему не приведёт - нулевая ячейка накроется первой из-за постоянной перезаписи
    По детекции наличия сетевого 230 - в сети очень много разных детекторов нуля - можно на них сделать.
     
  9. spamaway

    spamaway Нерд

    В даташите AMTEL вообще миллион операций записи обещают:
    High Reliability
    – Endurance: 1 Million Write Cycles
    – Data Retention: 100 Years

    Нулевая ячейка - просто для удобства, чтобы хранить там адрес последней записи. А остальные - пойдут по циклу, типа 1,2,3,4,5,1,2. Сейчас нулевая ячейка ссылается на 2, значит для показа последних температур выводим значения 2,1,5,4,3. Впрочем, это уже под вопросом. Лимит памяти в 32 кб просто добивает, уже не знаю, что удалять. Сам файл скетча 29553 байт, из библиотек
    #include <SoftwareSerial.h>
    #include <LiquidCrystal_I2C.h>
    #include <RTClib.h>
    #include <DallasTemperature.h>
    #include <EEPROM.h>

    Пробовал отключать RTClib.h, выиграл 9 байт! Все время ругал производителей оборудования, которые выводят на экран что-то вроде "E6" вместо подробного описания ошибки, теперь и я таким же стал. Я прям теперь сочувствую тем, кто в 60-е программировал.
     
  10. parovoZZ

    parovoZZ Гуру

    Скажет мне кто - возможно ли к аттини13 прикрутить OLED? Но не просто прикрутить, а ещё и выводить на него циферки?
     
  11. parovoZZ

    parovoZZ Гуру

    Тогда программировали доценты, доктора, академики, а не школота.
     
  12. spamaway

    spamaway Нерд

    Дело не в научных степенях, а в изначальном ограничении платформы. Ведь и академики тоже были школотой, учились и научились, а не из космоса им знания в голову инопланетяне положили. Только вот если академикам дают ламповый шкаф с 64 байтами памяти и говорят, мол, напишите прогу для рассчета баллистической траектории ракеты, профессора начинают чесать репу, два года оптимизируют код, а потом выдают на партсобрании золотую фразу "Наши исследования показали, что никакая оптимизация не позволяет уместить нужный код в 64-х байтах памяти и требуется никак не меньше 84 байт", ну а партбюро дает распоряжение сделать новый ламповый компьютер с 84 байтами памяти... вот ведь компьютерная романтика. Так и мы, в век террабайтовых HDD оптимизируем код, урезая длины строк, чтобы тот уместился в 32 килобайта. Не знаю, как хобби может и прикольно, но для серъезных дел, имхо, нужно смотреть в сторону меги, или сразу переходить на что-то типа распберри... Когда полон идей, и идеи эти реализованы и работают, но не все сразу, потому что памяти не хватает - это уже не весело. Попробую еще отказаться от либы термометра и часов в пользу своего кода, но это уже какой-то изврат - куча времени тратится не на полезную работу, а на оптимизацию. Это я две уны и одну нану купил, теперь нужно им применение найти, а вообще, кто будет делать навороченный gsm термостат - берите сразу мегу. Цена может на пару сотен рублей дороже уны, но 256 килобайт памяти и куча пинов позволят реализовать все пожелания без оптимизаторского геммора...
     
  13. parovoZZ

    parovoZZ Гуру

    на абдурине? Ежики плакали и кололись, но всё равно жрали кактус?
     
  14. MESS

    MESS Гик

    Зимой котел не может быть выключен - абсурд. А если включен, то при температуре обратки в 6 гр принудительно включается горелка - это по алгоритму. Однако, если при этом в цепь управления включен контакт внешнего нештатного термостата и он не сработал ( по любой причине) до этого момента - то наступает пи... Потому как это не по алгоритму. Как называется котел так и не увидел????
    Что касается замерзания газа - я прошел это в первый год эксплуатации, пришлось даже греть газовую трубу. Но после очистки газопровода от воды это прекратилось
    лед в трубе.jpg утепл.jpg
     
  15. parovoZZ

    parovoZZ Гуру

    Моему котлу похер на внешний термостат. Более того, если он постоял без включения горелки более 3 дней - он включает насос на контур отопления.
     
  16. spamaway

    spamaway Нерд

    Аналогично. В +7 котел включится, даже если термостат ножницами отрезать (я это проверил в первый же день,когда подключил термостат). Если котел не включает антизаморозку при глючном термостате - это уже недоработки ПО котла. Человек, который приезжал ремонтировать котел, высказал мнение, что такое может быть из-за намерзания сосулек на выхлопной трубе (типа сосульки перекрыли приток/отток воздуха и датчики котла это заметили и не дали котлу работать), но, исходя из описания ошибки в мануале, я подозреваю, что просто глюконул датчик розжига, так как перед розжигом котел с закрытой камерой сгорания засасывает воздух с улицы, а если температура -20, может там эти электроды ионизации, проверяющие наличие пламени, и заглючили (фиг знает какая там ионизация воздуха в -20). Это же немцы, они при таких температурах ничего не испытывают. Говорят, некоторые мерседесы в -20 тоже не заводятся, нужно держать в теплом гараже... То, что котел не смог расжечь газ из-за холода - вероятность меньше, так как на этот случай припасено другое сообщение об ошибке, которое обычно показывается, если включать котел с перекрытым газом. Но это уже оффтоп. Суть темы не о глюках котлов, а о девайсе, который позволяет вовремя их выявить с целью предотвратить замораживание помещения и последующий ремонт.
     
  17. MESS

    MESS Гик

    При таком неуважении к котлу ардуина не поможет! Сначала котел следует проверить и настроить:(
    Я через все это прошел несколько лет назад. Контролирую температуру в комнатах и на обратке. (NodeMcu). Использую два внешних термостата. Один настраивается удаленно.
    Контроль пламени с помощью фотодиода пробовал - ненадежно. Поставил видео камеру. Заодно смотрю на счетчик - зимой не бываю.
    Контроль сети ( сейчас стоит ИБП) делал на реле 220В. Напруга пропала - реле откл и подает "1" на вход.
     
    Последнее редактирование: 17 фев 2019
  18. spamaway

    spamaway Нерд

    А что я могу поделать. По ошибке, которую показал котел, в интернете - тишина. То есть она не типичная. Приезжали люди из компании, которая устанавливала котел, все смотрели. Предположили, что наросла сосулька и перекрыла ток газа или воздуха, поэтому сработал датчик (когда приехали, было уже +2, сосулек не было, но уезжали в -20, сосулька небольшая была). В "душевной" беседе рассказали, что они котлы этой марки ставят уже 9 лет, но те, которые ставили 9 лет назад - работают до сих пор, и практически ничего с ними не случается (нет вызовов на ремонт, только осмотр и чистка), а те, которые стали делать 3 года назад под этим же названием - с ними постоянно что-то случается. Многие узлы, которые были из металла, заменили пластиком, теплообменник в "новой" версии стал значительно легче, чем в той, которая была раньше, насос был grundfos, заменили на более дешевый wilo. Короче, название - то же самое, а содержимое удешевили до максимума, чтобы держать конкурентные цены. Но это не только с котлами - сейчас во всем так. Фирме-производителю не выгодно делать то, что служит 10 лет, а если каждый год менять какой-то датчик за 5 тысяч или лопнувшую латунную хрень из "фольги" за 8 тысяч, то и производитель доволен, и сервисные центры без работы не сидят. Один потребитель только в проигрыше... Мастер даже то-ли в шутку, то-ли в серъез предложил купить второй такой же котел в качестве "донора" запчастей на будущее, потому что он в сборе стоит столько же, сколько 3-4 детали из него, если покупать их по-отдельности.

    Теперь просто перед отъездом будем сливать воду с котла и смесителей, чтобы снова не попасть на 8-10 тысяч, ну и SMS информирование о температуре в доме. Практика показала, что смесители не держат даже кратковременной заморозки при -2 градусах, а трубы даже с водой нигде не лопнули, так что если приехать даже через день после сигнала, можно их вполне спасти.
     
  19. MESS

    MESS Гик

    Все Ваши "приключения" и предположения типичны. Однако, котел, при правильной профилактике, может работать достаточно долго и без приключений( тьфу, тьфу).
    У каждого типа котла есть кроме общеизвестных, еще и свои собственные "скелеты в шкафу" и их надо "собрать в кучу" и просто следить. Ваши сервисмены озвучили не все возможные причины. В сильные морозы бывают провалы в минимальном давлении газа и автоматика котла после трех попыток поджига может уйти в аварию с ошибкой, которую немцы не предвидели.
    Кроме того, котел нельзя отключать - из-за этого и страдает насос. Если двухконтурный, то каждые три года нужно менять трехходовой клапан - очень узкое место. Про сосульки - это весело. На дымод обычно ставят мелкую сетку - чтобы птицы гнезда не вили. и так далее....
    А разомкнутый контакт внешнего термостата ( если нештатный), если включен ВМЕСТО перемычки генерации, не дает включиться котлу по сигналу внутреннего датчика температуры.
    Так что сами изучите свой котел, не доверяйте заинтересованным спецам.
    Тогда ардуино или ESP станут помощниками.
     
  20. parovoZZ

    parovoZZ Гуру

    у меня 6-ой год - полет нормальный. Но таки да - на кой там этот кран...